Fork me on GitHub

spark简单安装

spark搭建

# 解压
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

# 在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
posted @ 2021-06-18 11:34  是阿凯啊  阅读(158)  评论(0编辑  收藏  举报