Spark HA集群的安装

所需要的安装环境

Hadoop-2.7.7 HA集群安装成功(包含Java8、Zookeeper-1.2.6、hadoop-2.7.7)
Scala可以不安装;

安装过程

解压安装包

将安装包解压到相应的文件夹
在这里插入图片描述

修改配置文件

需要修改spark-env.sh、slaves两个配置文件
在这里插入图片描述1.复制spark-env.sh.template并重命名为spark-env.sh,在文件最后添加配置内容
在这里插入图片描述在该配置文件下添加如下内容
在这里插入图片描述2.复制slaves.template成slaves,并在该配置文件中配置从节点的主机名
在这里插入图片描述![在这里插入图片描述](https://img-blog.csdnimg.cn/20191025091942661.png

将安装包分发给其他节点

我设置了四个节点,分别发送到其他三个节点
在这里插入图片描述

配置环境变量

在这里插入图片描述
分别发送到其他节点
在这里插入图片描述
使立刻生效
所有节点都要刷一下
在这里插入图片描述

启动

1.启动zookeeper

在这里插入图片描述

2.再启动HDFS集群

在这里插入图片描述

3.启动spark

由于启动spark的命令:start-all.sh和hadoop的命令重名,所以讲spark的该命令复制重命名成:start-spark.sh
在这里插入图片描述

4.单独启动未启动的master

查看进程时,发现只有在启动spark的那个节点有master和worker进程,所以可以分别在其他进程中单独启动master,这样每个节点都分别启动了一个master和一个worker进程,最终只有一个master是alive的
单独启动master的命令如下
在这里插入图片描述

验证

1.通过web界面验证

查看Web界面Master状态
在这里插入图片描述其他三个都是STANDBY状态
在这里插入图片描述

2.通过执行一个spark程序来验证

直接在hadoop命令行模式

/home/xh/hadoop/spark-2.3.4-bin-hadoop2.7/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \		//jar包的主类名
--master spark://hadoop2:7077 \    //这是alive的那个master,也就是集群协议地址
--executor-memory 500m \	//设定执行程序使用的内存大小
--total-executor-cores 1 \	//设定使用的CPU核数
/home/xh/hadoop/spark-2.3.4-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.3.4.jar \	//执行案例的jar包所在地址
100	//运行程序的一个参数,实验100次

运算结果
在这里插入图片描述

启动Spark shell

启动

/home/xh/hadoop/spark-2.3.4-bin-hadoop2.7/bin/spark-shell \
--master spark://hadoop2:7077 \  指定spark集群地址  如果没有指定则是本地模式
--executor-memory 500m \   指定每一个worker可以使用的内存大小为500M
--total-executor-cores 1     指定每个这个集群使用的cpu核数

启动后进入如下界面
在这里插入图片描述如果启动spark shell时没有指定master地址,但是也可以正常启动spark shell和执行spark shell中的程序,其实是启动了spark的local模式,该模式仅在本机启动一个进程,没有与集群建立联系。

Spark Shell中已经默认将SparkContext类初始化为对象sc。用户代码如果需要用到,则直接应用sc即可

Spark Shell中已经默认将SparkSQl类初始化为对象spark。用户代码如果需要用到,则直接应用spark即可
在启动过程中报了个错
在这里插入图片描述而后重新先输入如下代码,使集群不要处于安全模式

[xh@hadoop3 ~] hdfs dfsadmin -safemode leave

而后执行启动spark命令,便成功启动了,具体原因不太清楚。
做一个笔记
dfsadmin 命令用于管理HDFS集群,这些命令常用于管理员。

  1. (Safemode)安全模式
    把集群切换到安全模式: hdfs dfsadmin -safemode [enter/get/leave]
    enter:进入安全模式
    get:获得当前安全模式的状态
    leave:离开看全模式
    数据节点状态列表: hdfs dfsadmin -report
    添加或删除数据节点: hdfs dfsadmin -refreshNodes
    打印网络拓扑: hdfs dfsadmin -printTopology
    官当网站: http://hadoop.apache.org/docs/r2.8.3/hadoop-project-dist/hadoop-hdfs/HDFSCommands.html#dfsadmin

Spark Shell on Yarn

输入如下命令

[xh@hadoop3 ~] spark-shell --master yarn --deploy-mode client

启动过程很耗时!
再次遇到这个错误:
在这里插入图片描述昨天刚安装时也是这种报错,各种尝试后,执行了hdfs dfsadmin -safemode leave这个命令后正常启动。现在又出现这种问题,不知道是为什么?
在网上查询,说报错原因是:
内存资源给的过小,yarn直接kill掉进程,则报rpc连接失败、ClosedChannelException等错误。
解决方法是:
先停止YARN服务,然后修改yarn-site.xml,增加如下内容

	<property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
        <description>Whether virtual memory limits will be enforced for containers</description>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-pmem-ratio</name>
        <value>4</value>
        <description>Ratio between virtual memory to physical memory when setting memory limits for containers</description>
    </property>

但是还是不能正常启动,应该是其他原因。
**对于我的集群,很可能是内存,不够用,因为重新检查进程,发现所有的nodemanager都关闭了,而且两个resourcemanager都是standby状态。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值