阅读量:0
Ubuntu环境下Hadoop与Spark集成步骤
1. 环境准备
在集成前需确保系统满足以下基础条件:
- 操作系统:Ubuntu 20.04 LTS及以上(推荐);
- Java环境:安装JDK 8或更高版本(Spark 3.x兼容JDK 8/11/17),通过
java -version验证安装; - Hadoop版本:选择3.x系列(如3.3.1),需与Spark版本兼容(如Spark 3.2.0支持Hadoop 3.2+);
- Spark版本:选择3.2.0及以上稳定版,下载时需指定Hadoop版本(如
spark-3.2.0-bin-hadoop3.2.tgz),确保兼容性。
2. 安装Hadoop
- 下载与解压:通过wget下载Hadoop压缩包(如
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz),解压至/usr/local目录并重命名为hadoop; - 配置环境变量:编辑
~/.bashrc文件,添加以下内容:执行export HADOOP_HOME=/usr/local/hadoop export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinsource ~/.bashrc使变量生效; - 核心配置:修改Hadoop配置文件(位于
$HADOOP_HOME/etc/hadoop):- core-site.xml:设置HDFS默认文件系统地址,例如:
<property> <name>fs.defaultFSname> <value>hdfs://localhost:9000value> property> - hdfs-site.xml:配置NameNode和DataNode数据存储路径及副本数,例如:
<property> <name>dfs.replicationname> <value>1value> property> <property> <name>dfs.name.dirname> <value>file:///usr/local/hadoop/dfs/namevalue> property> <property> <name>dfs.data.dirname> <value>file:///usr/local/hadoop/dfs/datavalue> property>
- core-site.xml:设置HDFS默认文件系统地址,例如:
3. 安装Spark
- 下载与解压:通过wget下载Spark压缩包(如
wget https://archive.apache.org/dist/spark/spark-3.2.0/spark-3.2.0-bin-hadoop3.2.tgz),解压至/usr/local目录并重命名为spark; - 配置环境变量:编辑
~/.bashrc文件,添加以下内容:执行export SPARK_HOME=/usr/local/spark export PATH=$PATH:$SPARK_HOME/bin export HADOOP_HOME=/usr/local/hadoopsource ~/.bashrc使变量生效; - 配置Spark与Hadoop集成:编辑
$SPARK_HOME/conf/spark-env.sh(若不存在则复制模板cp $SPARK_HOME/conf/spark-env.sh.template $SPARK_HOME/conf/spark-env.sh),添加:创建export SPARK_DIST_CLASSPATH=$(hadoop classpath)$SPARK_HOME/conf/spark-defaults.conf文件(若不存在则复制模板),添加:spark.master local[*] spark.hadoop.fs.defaultFS hdfs://localhost:9000
4. 启动Hadoop集群
- 格式化HDFS:首次启动需格式化NameNode,执行:
hdfs namenode -format - 启动HDFS:运行
start-dfs.sh启动NameNode和DataNode,通过jps命令验证进程(应看到NameNode、DataNode); - 启动YARN(可选):若需使用YARN作为资源管理器,运行
start-yarn.sh启动ResourceManager和NodeManager,通过jps验证进程(应看到ResourceManager、NodeManager)。
5. 启动Spark集群
- 本地模式:直接运行
spark-shell即可启动本地Spark交互式Shell; - YARN模式:若Hadoop启用了YARN,可通过以下命令提交Spark作业到YARN集群:
其中spark-submit --master yarn --deploy-mode client --class org.apache.spark.examples.SparkPi $SPARK_HOME/examples/jars/spark-examples_2.12-3.2.0.jar 10--master yarn指定资源管理器为YARN,--deploy-mode client表示客户端模式(方便查看日志)。
6. 验证集成
- 向HDFS上传数据:使用HDFS命令上传测试文件,例如:
hadoop fs -put ~/test.txt /user/root/input - 用Spark读取HDFS数据:启动Spark Shell,执行以下代码:
若能正常读取并显示HDFS中的文件内容,则说明集成成功。from pyspark.sql import SparkSession spark = SparkSession.builder \ .appName("Hadoop-Spark Integration Test") \ .config("spark.hadoop.fs.defaultFS", "hdfs://localhost:9000") \ .getOrCreate() df = spark.read.text("hdfs://localhost:9000/user/root/input/test.txt") df.show()
常见问题排查
- 版本兼容性问题:确保Spark与Hadoop版本匹配(如Spark 3.2.0支持Hadoop 3.2+),避免因版本冲突导致启动失败;
- 环境变量未生效:执行
source ~/.bashrc重新加载环境变量,或重启终端; - HDFS权限问题:若上传文件时报权限错误,可修改HDFS目录权限(如
hadoop fs -chmod -R 777 /user/root); - 端口冲突:若HDFS或Spark端口被占用,可修改
core-site.xml中的fs.defaultFS端口(如9001)或spark-env.sh中的SPARK_MASTER_PORT。
以上就是关于“Ubuntu Hadoop与Spark如何集成”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm