Centos7安装Spark2.4
准备
1、hadoop已部署(若没有可以参考:Centos7安装Hadoop2.7),集群情况如下(IP地址与之前文章有变动):
| hostname | IP地址 | 部署规划 |
| node1 | 172.20.0.2 | NameNode、DataNode |
| node2 | 172.20.0.3 | DataNode |
| node3 | 172.20.0.4 | DataNode |
2、官网下载安装包:spark-2.4.4-bin-hadoop2.7.tgz(推荐去清华大学或中科大的开源镜像站)。
3、spark将部署在三台都已存在的路径/mydata,配置环境变量:
export SPARK_HOME=/mydata/spark-2.4.
export PATH=${SPARK_HOME}/bin:${SPARK_HOME}/sbin:$PATH
本地模式
在机器node1解压spark-2.4.4-bin-hadoop2.7.tgz到/mydata,并重命名文件夹为/mydata/spark-2.4.4。
跟hadoop文章保持一致,下面执行一个spark版的wordcount任务(Python版本):
shell> vim 1.txt # 创建一个文件,写入一些内容
hadoop hadoop
hbase hbase hbase
spark spark spark spark
shell> spark-submit $SPARK_HOME/examples/src/main/python/wordcount.py 1.txt # 向spark提交wordcount任务,统计1.txt中的单词及其数量,结果如下
spark: 4
hbase: 3
hadoop: 2
spark是一个计算引擎,查看文件wordcount.py可以看到实现同样的功能,其代码量远小于mapreduce,大大降低了大数据的开发难度。
Standalone模式
可以翻译成独立模式,由spark自带的集群来完成除了存储以外的工作;下面先在node1上进行配置:
spark的配置文件位于 $SPARK_HOME/conf:
从 spark-env.sh.template 拷贝一个 spark-env.sh
从 slaves.template 拷贝一个slaves
# 文件名 spark-env.sh
SPARK_MASTER_HOST=node1
SPARK_LOCAL_DIRS=/mydata/data/spark/scratch
SPARK_WORKER_DIR=/mydata/data/spark/work
SPARK_PID_DIR=/mydata/data/pid
SPARK_LOG_DIR=/mydata/logs/spark # 文件名 slaves
node1
node2
node3
由于 $SPARK_HOME/sbin 下的start-all.sh和stop-all.sh与hadoop冲突,建议进行重命名:
shell> mv start-all.sh spark-start-all.sh
shell> mv stop-all.sh spark-stop-all.sh
配置完成后将spark程序文件拷贝到其他两台:
shell> scp -qr /mydata/spark-2.4.4/ root@node2:/mydata/
shell> scp -qr /mydata/spark-2.4./ root@node3:/mydata/
然后在node1启动集群:
shell> spark-start-all.sh
| node1上用jps命令验证进程 | Master、Worker |
| node2上用jps命令验证进程 | Worker |
| node3上用jps命令验证进程 | Worker |
可以通过浏览器访问 http://node1:8080/ :

下面把上一节的文件1.txt多复制一份为2.txt,然后都放到hdfs上,最后通过spark集群执行wordcount任务:
shell> cp 1.txt 2.txt
shell> hdfs dfs -mkdir /tmp/wc/
shell> hdfs dfs -put 1.txt 2.txt /tmp/wc/
shell> spark-submit --master spark://node1:7077 $SPARK_HOME/examples/src/main/python/wordcount.py hdfs://node1:9000/tmp/wc/*
shell> spark-submit --master spark://node1:7077 $SPARK_HOME/examples/src/main/python/pi.py 9 # 顺带测试一个计算圆周率的任务,最后的数字9表示分片(partitions)数量,输出结果类似这样:Pi is roughly 3.137564
在 http://node1:8080/ 上可以看到执行的任务:

Yarn模式
实际使用中,通常是让spark运行于已存在的集群,比如利用hadoop自带的yarn来进行资源调度。
spark on yarn不需要spark的集群,所以停掉它:
shell> spark-stop-all.sh
配置很简单,只需要有这个环境变量即可:
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
不过,为了方便查看历史记录和日志,这里要配置 spark history server ,并且与hadoop的jobhistory联系起来:
进入目录 $SPARK_HOME/conf,从spark-defaults.conf.template拷贝一个spark-defaults.conf:
# 文件名 spark-defaults.conf
spark.eventLog.enabled true
spark.eventLog.dir hdfs://node1:9000/spark/history
spark.history.fs.logDirectory hdfs://node1:9000/spark/history
spark.yarn.historyServer.allowTracking true
spark.yarn.historyServer.address node1:
进入目录 $HADOOP_HOME/etc/hadoop,在 yarn-site.xml 中添加一下内容:
# 文件名 yarn-site.xml
<property>
<name>yarn.log.server.url</name>
<value>http://node1:19888/jobhistory/logs/</value>
</property>
在hdfs创建必要的路径:
shell> hdfs dfs -mkdir -p /spark/history
将hadoop和spark的配置同步更新到其他所有节点(勿忘)。
下面在node1重启yarn,并且启动spark history server:
shell> stop-yarn.sh
shell> start-yarn.sh
shell> start-history-server.sh # 启动后通过jps可以看到多出一个HistoryServer
执行下面的命令,通过yarn及cluster模式执行wordcount任务:
shell> spark-submit --master yarn --deploy-mode cluster $SPARK_HOME/examples/src/main/python/wordcount.py hdfs://node1:9000/tmp/wc/*
浏览器访问 http://node1:18080/ 可以看到spark的history:

点击 App ID 进入,然后定位到 Executors ,找到 Executor ID 为driver的,查看它的stdout或stderr:

即可看到日志和计算结果:

同样,可以通过yarn命令访问日志:
shell> yarn logs -applicationId [application id]
over
Centos7安装Spark2.4的更多相关文章
- CentOS7安装CDH 第十章:CDH中安装Spark2
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- CDH5.11安装spark2.x详细步骤
简介: 在我的CDH5.11集群中,默认安装的spark是1.6版本,这里需要将其升级为spark2.x版本.经查阅官方文档,发现spark1.6和2.x是可以并行安装的,也就是说可以不用删除默认的1 ...
- CentOS7安装CDH 第十四章:CDH的优化
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- CentOS7安装CDH 第十三章:CDH资源池配置
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- CentOS7安装CDH 第十二章:YARN的资源调优
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- CentOS7安装CDH 第十一章:离线升级CDH版本
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- CentOS7安装CDH 第九章:CDH中安装Kafka
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- CentOS7安装CDH 第八章:CDH中对服务和机器的添加与删除操作
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
- CentOS7安装CDH 第七章:CDH集群Hadoop的HA配置
相关文章链接 CentOS7安装CDH 第一章:CentOS7系统安装 CentOS7安装CDH 第二章:CentOS7各个软件安装和启动 CentOS7安装CDH 第三章:CDH中的问题和解决方法 ...
随机推荐
- 服务器BMC资料整理
1. 现在服务器都有BMC管理了,可以直接连上服务器进行处理. bios里面进行简单设置就可以了, 连接上IPMI的口进行管理. 2. 可以使用 远程控制安装操作系统. 安装系统时 比较清楚的能够看到 ...
- springboot2.1.7整合mybati3.5.2与mysql8.0.13
springboot2.x已经发布一段时间,博主在这里使用springboot2.1.7整合mybatis3.5.2,使用的数据库为mysql8.0.13 1. 导入依赖 <!--mysql-- ...
- Python实现欧几里得算法
欧几里得算法的目标是找到两个数的最大公约数. 计算两个非负整数p和q的最大公约数:若q是0,则最大公约数为p.否则,将p除以q得到余数r,p和q的最大公约数即为q和r的最大公约数. def eucli ...
- 用LabVIEW做声源定位系统
前一阵子,研发部举办了为期三天的第一届Innovation Day,让大家用3天时间去完成工作之外的一些创意.有人做微信小程序,有人继续研究一些工作中用到的Tool,有人把一直想解决而没时间解决的老b ...
- asp.net EFcore配置链接sqlserver
1. 首先我们先用vs2017 创建一个空的 asp.net core api 项目 2. 在生成的解决方案下在建立一个访问数据库使用的类库CoreApi.Model,注意要选择.netcore下的 ...
- 转!!通俗理解数字加密,数字签名,数字证书和https
原博文地址:https://www.jianshu.com/p/4932cb1499bf 前言 最近在开发关于PDF合同文档电子签章的功能,大概意思就是在一份PDF合同上签名,盖章,使其具有法律效应. ...
- 运行一个docker镜像并开机启动
记录,我用的liunx机是centos7.x 安装 安装Docker包$ sudo yum install docker-engine 启动Docker守护进程$ sudo service docke ...
- C#——零散学习1
C#——零散学习1 //结构体(与C语言相似) struct Position { public float x; public float y; //不一定需要把结构体成员设置为pu ...
- 关键字ref、out
通常,变量作为参数进行传递时,不论在方法内进行了什么操作,其原始初始化的值都不会被影响: 例如: public void TestFun1() { ; TestFun2(arg); Console.W ...
- Docker 四种网络模式
原文 https://www.cnblogs.com/gispathfinder/p/5871043.html 我们在使用docker run创建Docker容器时,可以用--net选项指定容器的网络 ...