Spark安装配置

Spark是MapReduce的替代方案,而且兼容HDFS、Hive,可融入Hadoop的生态系统,以弥补MapReduce的不足。

Spark 内存放不下的时候写磁盘 Shuffle的时候写磁盘,否则丢数恢复代价太大

安装

  1. 安装JDK
  2. 下载安装包 上传spark-安装包到Linux上 解压安装包到指定位置 tar -zxvf spark-2.1.0-bin-hadoop2.6.tgz -C /usr/local

配置

  • 进入到Spark安装目录
cd /usr/local/spark-2.1.0-bin-hadoop2.6

进入conf目录并重命名并修改spark-env.sh.template文件

cd conf/
mv spark-env.sh.template spark-env.sh
vi spark-env.sh

在该配置文件中添加如下配置

export JAVA_HOME=/usr/java/jdk1.8.0_111

#export SPARK_MASTER_IP=node1.edu360.cn
#export SPARK_MASTER_PORT=7077

保存退出 重命名并修改slaves.template文件

mv slaves.template slaves
vi slaves

在该文件中添加子节点所在的位置(Worker节点)

node2
node3
node4

保存退出 将配置好的Spark拷贝到其他节点上

scp -r spark-2.1.0-bin-hadoop2.6/ node2.edu360.cn:/usr/local/
scp -r spark-2.1.0-bin-hadoop2.6/ node3.edu360.cn:/usr/local/
scp -r spark-2.1.0-bin-hadoop2.6/ node4.edu360.cn:/usr/local/

for i in {5..8}; do echo $i; done
for i in {5..8}; do scp –r xxx node-$i:$PWD; done

$PWD拷贝到对应的目录下,如果有就覆盖

启动后执行jps命令,主节点上有Master进程,其他子节点上有Work进行,登录Spark管理界面查看集群状态(主节点)

到此为止,Spark集群安装完毕,但是有一个很大的问题,那就是Master节点存在单点故障,要解决此问题,就要借助zookeeper,并且启动至少两个Master节点来实现高可靠,配置方式比较简单: Spark集群规划:node1,node2是Master;node3,node4,node5是Worker 安装配置zk集群,并启动zk集群 停止spark所有服务,修改配置文件spark-env.sh,在该配置文件中删掉SPARK_MASTER_IP并添加如下配置

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=zk1,zk2,zk3 -Dspark.deploy.zookeeper.dir=/spark"

1.在node1节点上修改slaves配置文件内容指定worker节点 2.在node1上执行sbin/start-all.sh脚本,然后在node2上执行sbin/start-master.sh启动第二个Master

Zk作用:

  • 选举
  • 保存活跃的Master信息
  • 保存所有worker的资源信息和资源使用情况(故障切换)

执行一个spark程序

/usr/local/spark-2.1.0-bin-hadoop2.6/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://node1:7077 \
--executor-memory 1G \
--total-executor-cores 2 \
/usr/local/spark-2.1.0-bin-hadoop2.6/lib/spark-examples-2.1.0-hadoop2.6.0.jar \
100

参数说明:

  • --master spark://node1.edu360.cn:7077 指定Master的地址
  • --executor-memory 2g 指定每个worker可用内存为2G
  • --total-executor-cores 2 指定整个集群使用的cup核数为2个

注意: 如果启动spark shell时没有指定master地址,但是也可以正常启动spark shell和执行spark shell中的程序,其实是启动了spark的local模式,该模式仅在本机启动一个进程,没有与集群建立联系。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值