spark集群的搭建

来源:互联网 发布:淘宝鬼脚七 编辑:程序博客网 时间:2024/05/22 13:07

一、准备

1.三台centOS安装好JDK1.7,一台master,两台worker;

2.将spark-1.6.1-bin-hadoop2.6.tgz上传到其中一台CentOS

二、安装

2.1、在根目录下,新建bigdata目录,并将spark的安装包解压到此目录下;

mkdir /bigdatatar -zxvf spark-1.6.1-bin-hadoop2.6.tgz -C /bigdata

2.2修改配置

进入到Spark安装目录

cd /bigdata/spark-1.5.2-bin-hadoop2.6

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

在该配置文件中添加如下配置
export JAVA_HOME=/usr/java/jdk1.7.0_79export SPARK_MASTER_IP=heres01export SPARK_MASTER_PORT=7077

保存退出


重命名并修改slaves.template文件

mv slaves.template slavesvim slaves

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

保存退出


将配置好的Spark拷贝到其他节点上
scp -r spark-1.6.1-bin-hadoop2.6/ heres02:/bigdatascp -r spark-1.6.1-bin-hadoop2.6/ heres03:/bigdata


关闭防火墙

service iptables stopchkconfig iptables off 

Spark集群配置完毕,目前是1个Master,2个Work,在heres01上启动Spark集群(配置好ssh免登陆)

/bigdata/spark-1.6.1-bin-hadoop2.6/sbin/start-all.sh

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


三、执行第一个spark小程序

3.1启动spark-shell 

/bigdata/spark-1.6.1-bin-hadoop2.6/bin/spark-shell --master spark://heres01:7077 --executor-memory 1g  --total-executor-cores 2

注:--master :指定master所在的地址;spark://heres01:7077 :指定spark协议

--executor-memory 1g  :指定每个worker上占用内存大小

--total-executor-cores 2 :指定执行任务整个集群总共占用的CPU核数

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


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

3.2.运行蒙特卡罗求PI

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


注:可能出现以下错误:

Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x00000007f7500000, 142606336, 0) failed; error='Cannot allocate memory' (errno=12)## There is insufficient memory for the Java Runtime Environment to continue.# 

解决办法:加大CentOS的内存,因为我的CentOS原先只有1G内存。

原创粉丝点击