1 环境

hadoop-2.7.7 (为方便提交任务到远程hadoop集群)

hadoop伪分布式环境:

centos7.6

hadoop-2.7.7

jdk-1.8

2 scala-2.11.11部署

2.1 scala-2.11.11 下载

Scala 2.11.11 | The Scala Programming Language

2.2 scala 压缩包解压

# 压缩包放入安装目录
cp scala-2.11.11.tgz /root/software/
# 解压
cd /root/software/
tar xzvf scala-2.11.11.tgz
# 软连接 方便版本管理
ln -s scala-2.11.11 scala

2.3 scala 环境变量修改

# 修改profile文件
vi /etc/profile
# 新增如下配置

# scala env
export SCALA_HOME=/root/software/scala
export PATH=$PATH:$SCALA_HOME/bin

# 使配置生效
source /etc/profile

2.3 scala 验证

# 命令行下执行scala
scala

 

3 spark on hadoop部署

3.1 准备安装包

spark-2.4.3-bin-hadoop2.7.tgz

下载地址

Index of /dist/spark/spark-2.4.3icon-default.png?t=N176https://archive.apache.org/dist/spark/spark-2.4.3/

3.2 spark 压缩包解压

# 放入spark部署目录
cp spark-2.4.3-bin-hadoop2.7.tgz /root/software/
# 解压压缩包
cd /root/software/
tar xzvf spark-2.4.3-bin-hadoop2.7.tgz
# 软连接 方便版本控制
ln -s spark-2.4.3-bin-hadoop2.7 spark
# 修改权限
chmod a+w -R spark
# 修改用户和用户组
chown hadoop:hadoop -R spark

3.3 spark 修改配置

修改系统环境变量配置

# 修改系统环境变量
vi /etc/profile
# 添加以下配置

# spark env
export SPARK_HOME=/root/software/spark
export PATH=${SPARK_HOME}/bin:$PATH

# 使配置文件生效
source /etc/profile

修改spark on hadoop环境变量配置

# 生成spark-env.sh 配置文件
cp $SPARK_HOME/conf/spark-env.sh.template $SPARK_HOME/conf/spark-env.sh
# 编辑配置文件
vi $SPARK_HOME/conf/spark-env.sh
# 添加如下配置
export SCALA_HOME=/root/software/scala
export JAVA_HOME=/root/software/jdk1.8.0_151/
export SPARK_MASTER_IP=192.168.192.20
export SPARK_WORKER_MEMORY=1g
export HADOOP_CONF_DIR=/root/software/hadoop/etc/hadoop
export YARN_CONF_DIR=/root/software/hadoop/etc/hadoop

4 启动hadoop&spark集群

要启动spark的集群需要先启动hadoop的集群,由于hadoop和spark的启动命令都是start-all.sh
所以如果直接使用start-all.sh会导致系统路径的冲突,所以启动的时候需要用绝对路径来启动(如果事先启动了可用stop-all.sh停止)

# 启动HADOOP
$HADOOP_HOME/sbin/start-all.sh
# 启动Spark
$SPARK_HOME/sbin/start-all.sh
# 检查
jps
# spark起来后,多master 和 work进程
40738 ResourceManager
41522 Jps
40243 NameNode
41331 Worker
40852 NodeManager
40359 DataNode
40574 SecondaryNameNode
41263 Master

# 检查端口
netstat -anp |grep 8080

web检查

 

5 spark on hadoop 测试

# 创建需要上传文件的目录 项目配置目录为/user/hadoop
hdfs dfs -mkdir /user
hdfs dfs -mkdir /user/hadoop
# 上传word.txt文件
hdfs dfs -put /tmp/word.txt /user/hadoop
# 测试执行sprak上运行scala任务 sparksql.jar包是打包好的scala spark任务
spark-submit --master spark://master:7077 --class com.qingjiao.staff.WordCount /tmp/sparksql.jar
# 查看结果输出
hdfs dfs -ls /user/hadoop/outfile
hdfs dfs -cat /user/hadoop/outfile/part-00000

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐