大数据组件-Spark高可用架构部署

网友投稿 304 2022-11-20

大数据组件-Spark高可用架构部署

????????‍????博主介绍:大家好,我是芝士味的椒盐,一名在校大学生,热爱分享知识,很高兴在这里认识大家????

????擅长领域:Java、大数据、运维、电子

????????如果本文章各位小伙伴们有帮助的话,????关注+????????点赞+????评论+????收藏,相应的有空了我也会回访,互助!!!

????另本人水平有限,旨在创作简单易懂的文章,在文章描述时如有错,恳请各位大佬指正,在此感谢!!!

解压

sudo tar -zxf ~/download/spark-2.0.2-bin-without-hadoop.tgz -C /usr/local/cd /usr/localsudo mv ./spark-2.0.2-bin-without-hadoop/ ./sparksudo chown -R hadoop ./spark

配置环境变量

在Mster节点主机的终端中执行如下命令:

vim ~/.bash_profile

在.bash_profile添加如下配置:

export SPARK_HOME=/usr/local/sparkexport PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

执行如下命令使得配置立即生效:

source ~/.bash_profile

Spark配置

在Master节点主机上进行如下操作:

配置slaves文件将 slaves.template 拷贝到 slaves

cd /usr/local/spark/cp ./conf/slaves.template ./conf/slaves

slaves文件设置Worker节点。编辑slaves内容,把默认内容localhost替换成如下内容:

masterslave01slave02

配置spark-env.sh文件将 spark-env.sh.template 拷贝到 ​​spark-env.sh​​​​cp ./conf/spark-env.sh.template ./conf/spark-env.sh ​​​​编辑spark-env.sh​​,添加如下内容:​​export SCALA_HOME=/usr/local/src/scala-2.13.5 export JAVA_HOME=/usr/local/src/jdk1.8.0_144 export HADOOP_HOME=/usr/local/src/hadoop-2.6.0 export HADOOP_CONF_DIR=/usr/local/src/hadoop-2.6.0/etc/hadoop #export SPARK_MASTER_IP=master #export SPARK_WORKER_MEMORY=1g #export SPARK_EXECUTOR_MEMORY=1g #export SPARK_DRIVER_MEMORY=500m #export SPARK_WORKER_CORES=2 export SPARK_HOME=/usr/local/src/spark-2.0.1-bin-without-hadoop export SPARK_DIST_CLASSPATH=$(/usr/local/src/hadoop-2.6.0/bin/hadoop classpath) export SPARK_HISTORY_OPTS=" -Dspark.history.ui.port=18080 -Dspark.history.retainedApplication=30 -Dspark.history.fs.logDirectory=hdfs://mycluster/directory" #下面这个决定spark是否高可用 export SPARK_DAEMON_JAVA_OPTS=" -Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=Master:2181,Worker1:2181,Worker2:2181 -Dspark.deploy.zookeeper.dir=/spark" ​​SPARK_MASTER_IP 指定 Spark 集群 Master 节点的 IP 地址;

修改sprak-default.conf的内容如下:

# Example:# spark.master spark://master:7077spark.eventLog.enabled truespark.eventLog.dir hdfs://mycluster/directory# spark.serializer org.apache.spark.serializer.KryoSerializer# spark.driver.memory 5g# spark.executor.extraJavaOptions -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"

配置好之后使用scp将整个spark包发送到集群机器上,并且发送.bash_profile文件并且source.

启动Spark集群

启动Hadoop集群

启动Spark集群前,要先启动Hadoop集群。在Master节点主机上运行如下命令:

cd /usr/local/hadoop/sbin/start-all.sh

启动Spark集群

启动Master节点在Master节点主机上运行如下命令,ui访问8080:​​cd /usr/local/spark/sbin/start-master.sh ​​在Master节点上运行jps命令,可以看到多了个Master进程:​​15093 Jps 14343 SecondaryNameNode 14121 NameNode 14891 Master 14509 ResourceManager ​​启动所有Slave节点在Master节点主机上运行如下命令:​​sbin/start-slaves.sh ​​分别在slave01、slave02节点上运行jps命令,可以看到多了个Worker进程​​37553 DataNode 37684 NodeManager 37876 Worker 37924 Jps ​​在浏览器上查看Spark独立集群管理器的集群信息在master主机上打开浏览器,访问​​http://master:8080​​如果是高可用可以在任意的机器上使用start-master.sh启动达成spark高可用,然后kill掉之前的master,过一会zookeeper更新就可以看见第二台master状态转变为Active,并且转移了task到自身。如需启动spark的历史服务器如下指令,ui访问18080​​start-history-server.sh ​​测试loacl模式,求派案例​​**bin/spark-submit \\ --class org.apache.spark.examples.SparkPi \\ --master spark://master:7077,slave1:7077,slave2:7077 \\ --executor-memory 1G \\ --total-executor-cores 2 \\ ./examples/jars/spark-examples_2.11-2.1.1.jar \\ 100** ​​

注意:提交的任务会在console上直接可视的执行,也就是client模式

测试cluster模式,求派案例​​**bin/spark-submit \\ --class org.apache.spark.examples.SparkPi \\ --master spark://master:7077,slave1:7077,slave2:7077 \\ --deploy-mode cluster \\ --executor-memory 1G \\ --total-executor-cores 2 \\ ./examples/jars/spark-examples_2.11-2.1.1.jar \\ 100** ​​

注意:提交的任务不会直接在console上可视的执行,而是直接被提交到spark节点上执行,可以查看ui观察运行成功与否。

如需看job页面需要预先启动spark-shell,才可以访问4040端口Yarn模式

需要先修改hadoop的yarn-site.xml​​ yarn.nodemanager.pmem-check-enabled false yarn.nodemanager.vmem-check-enabled false ​​测试案例​​bin/spark-submit \\--class org.apache.spark.examples.SparkPi \\--master yarn \\--deploy-mode client \\./examples/jars/spark-examples_2.11-2.1.1.jar \\100 ​​

关闭Spark集群

关闭Master节点​​sbin/stop-master.sh ​​关闭Worker节点​​sbin/stop-slaves.sh ​​关闭Hadoop集群cd /usr/local/hadoop/sbin/stop-all.sh

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java 十大排序算法之计数排序刨析
下一篇:DS1318与8051微控制器的接口
相关文章

 发表评论

暂时没有评论,来抢沙发吧~