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 IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
2019-06-18 用BeautifulSoup简单爬取BOSS直聘网岗位