spark简单安装
spark搭建
-
继续使用上次搭建hadoop
-
scala安装:https://downloads.lightbend.com/scala/2.12.12/scala-2.12.12.tgz
# 解压
tar -zxvf scala-2.12.12.tgz
# 配置环境变量
vi /etc/profile
export SCALE_HOME=/root/scale/scala-2.12.12
export PATH=$PATH:$SCALE_HOME/bin
- 修改hadoop yarn-site.yml配置
# 是否启用一个线程检查每个任务证使用的物理内存量,如果任务超出了分配值,则直接将其kill,默认是true
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
# 是否启用一个线程检查每个任务证使用的虚拟内存量,如果任务超出了分配值,则直接将其kill,默认是true。
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
其他相关配置:
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
# 对客户端暴露的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等
<property>
<name>yarn.resourcemanager.address</name>
<value>rmaster:8032</value>
</property>
# 对ApplicationMaster暴露的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>rmaster:8030</value>
</property>
# esourceManager 对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>rmaster:8035</value>
</property>
# ResourceManager 对管理员暴露的访问地址。管理员通过该地址向RM发送管理命令等
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>rmaster:8033</value>
</property>
# ResourceManager对外web ui地址。用户可通过该地址在浏览器中查看集群各类信息
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>rmaster:8088</value>
</property>
<property>
<name>yarn.log.server.url</name>
<value>http://10.0.2.19:8040/jobhistory/logs</value>
</property>
- 发送linux02,linux04服务
scp -r yarn-site.xml linux04:$PWD
scp -r yarn-site.xml linux02:$PWD
- spark安装
# 解压
[root@linux01 ~]# tar -zxvf spark-2.4.8-bin-hadoop2.7.tgz
# cd 到配置文件 /root/spark-2.4.8-bin-hadoop2.7/conf
- 修改spark配置: /root/spark-2.4.8-bin-hadoop2.7/conf目录下
[root@linux01 conf]# cp spark-env.sh.template spark-env.sh
[root@linux01 conf]# vi spark-env.sh
# 配置Spark集群的Master端口
export SPARK_MASTER_PORT=7077
# cpu
export SPARK_WORKER_CORES=1
# 内存
export SPARK_WORKER_MEMORY=1G
export JAVA_HOME=/usr/local/java/jdk1.8.0_281/
# 配置Spark集群的Master地址
export SPARK_MASTER_HOST=linux01
# Master重新启动的模式
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=linux01:2181,linux02:2181,linux03:2181,linux04:2181 -Dspark.deploy.zookeeper.dir=/spark_save_zk"
# 有三种:(1)ZooKeeper (2) FileSystem (3)NONE
spark.deploy.zookeeper.url:ZooKeeper的Server地址
spark.deploy.zookeeper.dir:保存集群元数据信息的文件、目录。
包括Worker,Driver和Application。
- 日志配置
[root@linux01 conf]# cp log4j.properties.template log4j.properties
[root@rlinux01 conf]# vi log4j.properties # 将日志的INFO改为WARN
- slave配置
[root@linux01 conf]# cp slaves.template slaves
[root@linux01 conf]# vi slaves
linux02
linux04
- 环境变量配置一波
[root@linux01/02/04 conf]# vim /etc/profle
export SCALE_HOME=/opt/scala-2.12.12
export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin
[root@linux01/02/04 conf]# source /etc/profle
- 启动项目:
[root@linux01 sbin]# ./start-all.sh
- 停止
[root@linux01 sbin]# ./stop-all.sh
- 验证
# 进入zookeeper
[zk: localhost:2181(CONNECTED) 0] ls /
# 可以看到 spark_save_zk, 高可用配置OK
# demo运行:
bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://linux01:7077 \
--executor-memory 1G \
--total-executor-cores 1 \
examples/jars/spark-examples_2.11-2.4.8.jar \
10
-
登陆web ui : http://10.0.0.155:8080/
-
spark提交任务到yarn
# 在spark-env.sh 注释掉 SPARK_MASTER_HOST SPARK_MASTER_PORT
# 添加
YARN_CONF_DIR=/root/hadoop/etc/hadoop
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://linux01:9000/logs # 新建logs
-Dspark.history.retainedApplications=30"
- 验证 /root/spark-2.4.8-bin-hadoop2.7
[root@linux01 spark-2.4.8-bin-hadoop2.7]# bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --executor-memory 1G --total-executor-cores 1 examples/jars/spark-examples_2.11-2.4.8.jar 10
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 智能桌面机器人:用.NET IoT库控制舵机并多方法播放表情
· Linux glibc自带哈希表的用例及性能测试
· 深入理解 Mybatis 分库分表执行原理
· 如何打造一个高并发系统?
· .NET Core GC压缩(compact_phase)底层原理浅谈
· 手把手教你在本地部署DeepSeek R1,搭建web-ui ,建议收藏!
· 新年开篇:在本地部署DeepSeek大模型实现联网增强的AI应用
· 程序员常用高效实用工具推荐,办公效率提升利器!
· Janus Pro:DeepSeek 开源革新,多模态 AI 的未来
· 【译】WinForms:分析一下(我用 Visual Basic 写的)
2019-06-18 用BeautifulSoup简单爬取BOSS直聘网岗位