您的位置:首页 > 运维架构

spark1.2.0+hadoop2.4.0集群环境搭建

2014-12-31 10:37 573 查看

spark1.2.0+hadoop2.4.0集群环境搭建

1.首先介绍一下整个过程中需要用到的一些软件

Jdk jdk-7u21-linux-i586.tar.gz
spark-1.2.0-bin-hadoop2.4 这是编译好了的spark,当然你也可以自己编译,详情将官网http://spark.apache.org/docs/latest/building-spark.html

hadoop-2.4.0
scala-2.10.4

2.集群环境

我这里一共有5台机器,一个本机做客户端,4台虚拟机,一台做master,3台做worker
10.18.200.235 master
10.18.200.231 node1
10.18.200.232 node2
10.18.200.233 node3
172.18.56.142 Ubuntu-Kylin (我的本机,做client)

3.开始安装

3.1 进入master节点,在master节点下新建/opt/sparkhome文件夹

mkdir /opt/sparkhome 之后将软件安装在这个目录下

3.2 安装jdk

cd 进入jdk所在的目录
tar -zvxf jdk-7u21-linux-i586.tar.gz -C /opt/sparkhome 解压到刚才建立的目录下

3.3 安装scala

cd 进入scala安装包所在目录
tar -zvxf scala-2.10.4.tgz -C /opt/sparkhome

3.4 安装hadoop

cd 进入hadoop安装包所在目录
tar -zvxf hadoop-2.4.0.tar.gz -C /opt/sparkhome

3.5 安装spark

cd 进入spark安装包所在目录
tar -zvxf spark-1.2.0-bin-hadoop2.4.tgz -C /opt/sparkhome

4.配置环境变量

vi /etc/profile

写入如下配置
export JAVA_HOME=/opt/sparkhome/jdk1.7.0_21

export JRE_HOME=/opt/sparkhome/jdk1.7.0_21/jre

export SCALA_HOME=/opt/sparkhome/scala-2.10.4
export SPARK_HOME=/opt/sparkhome/spark-1.2.0-bin-hadoop2.4

export HADOOP_COMMON_HOME=/opt/sparkhome/hadoop-2.4.0

export HADOOP_CONF_DIR=$HADOOP_COMMON_HOME/etc/hadoop

export YARN_CONF_DIR=$HADOOP_COMMON_HOME/etc/hadoop

export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar

export PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${SCALA_HOME}/bin:${HADOOP_COMMON_HOME}/bin:${HADOOP_COMMON_HOME}/sbin:${SPARK_HOME}/bin:$PATH
保存退出
source /etc/profile
测试java是否安装正确 java -version
测试scala是否安装正确 scala -version

5.配置hadoop

cd $HADOOP_CONF_DIR 进入hadoop配置文件目录,进行修改

vi slaves 进入slaves文件修改
去掉localhost 加入如下配置
node1
node2
node3
保存退出

vi core-site.xml 进入修改如下
<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>

<description>NameNode URI</description>

</property>
<property>

<name>hadoop.tmp.dir</name>

<value>file:/opt/sparkhome/hadoop-2.4.0/tmp</value>

</property>

</configuration>
保存退出

vi hdfs-site.xml 进入修改如下
<property>

<name>dfs.namenode.name.dir</name>

<value>file:///opt/sparkhome/hdfs/namenode</value>

</property>

<property>

<name>dfs.datanode.data.dir</name>

<value>file:///opt/sparkhome/hdfs/datanode</value>

</property>
<property>

<name>dfs.replication</name>

<value>1</value>
</property>
<property>

<name>dfs.namenode.secondary.http-address</name>

<value>master:9001</value>

</property>

<property>

<name>dfs.webhdfs.enabled</name>

<value>true</value>

</property>

[align=left]保存退出[/align]

vi mapre-site.xml 进入修改如下
<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>
</configuration>
[align=left]保存退出[/align]

vi yarn-site.xml 进入修改如下
<property>

<name>yarn.resourcemanager.hostname</name>

<value>master</value>

</property>

<property>

<name>yarn.resourcemanager.address</name>

<value>${yarn.resourcemanager.hostname}:8032</value>

</property>

<property>

<name>yarn.resourcemanager.scheduler.address</name>

<value>${yarn.resourcemanager.hostname}:8030</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.address</name>

<value>${yarn.resourcemanager.hostname}:8088</value>

</property>

<property>

<name>yarn.resourcemanager.webapp.https.address</name>

<value>${yarn.resourcemanager.hostname}:8090</value>

</property>

<property>

<name>yarn.resourcemanager.resource-tracker.address</name>

<value>${yarn.resourcemanager.hostname}:8031</value>

</property>

<property>

<name>yarn.resourcemanager.admin.address</name>

<value>${yarn.resourcemanager.hostname}:8033</value>

</property>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

保存退出

vi hadoop-env.sh 进入加入如下语句
export JAVA_HOME=/opt/sparkhome/jdk1.7.0_21

保存退出

vi yarn-env.sh 进入加入如下语句
export JAVA_HOME=/opt/sparkhome/jdk1.7.0_21

保存退出

6.配置spark

cd $SPARK_HOME/conf 进入SPARK配置文件目录,进行修改

vi slaves 进入修改如下
去掉localhost,加入如下配置
node1
node2
node3
保存退出

cp spark-env.sh.template spark-env.sh 创建spark-env.sh文件
vi spark-env.sh 进入加入如下配置
export SPARK_MASTER_IP=master
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_CORES=2 解释:如果你cpu核比较多可以设置得更多

export SPARK_WORKER_MEMORY=2g 解释:如果你内存比较大可以设置得更大
export JAVA_HOME=/opt/sparkhome/jdk1.7.0_21
export SCALA_HOME=/home/sprakhome/scala-2.10.4
保存退出

7.SSH无密码登录(如果没有安装ssh,执行sudo apt-get install ssh安装即可)

1.在每个节点上做如下操作,包括client节点,也就是你的本机
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
2.回到master节点,进行公钥合并
cd ~/.ssh

ls -lsa

语法:ssh 机器名 cat ~/.ssh/id_dsa.pub>>authorized_keys 合成公钥

ssh master cat ~/.ssh/id_dsa.pub>>authorized_keys
ssh node1 cat ~/.ssh/id_dsa.pub>>authorized_keys
ssh node2 cat ~/.ssh/id_dsa.pub>>authorized_keys

ssh node3 cat ~/.ssh/id_dsa.pub>>authorized_keys

ssh Ubuntu-Kylin cat ~/.ssh/id_dsa.pub>>authorized_keys
当然在执行上面的操作之前你要保证每个节点的hosts文件中有如下配置
172.18.56.142 Ubuntu-Kylin

10.18.200.235 master

10.18.200.231 node1

10.18.200.232 node2

10.18.200.233 node3
3.修改authorized_keys文件属性为600 ,并发放给各节点

chmod 600 authorized_keys 修改属性
分发到其他节点以及client
scp authorized_keys root@node1:~/.ssh/
scp authorized_keys root@node2:~/.ssh/
scp authorized_keys root@node3~/.ssh/
scp authorized_keys root@Ubuntu-Kylin:~/.ssh/
4.在三个节点上以及client进行测试无密码登录
ssh node1
ssh node2
[align=left]ssh node3[/align]
ssh Ubuntu-Kylin

8.将master节点的配置拷贝到各个worker节点

cd /opt

scp -r sparkhome root@node1:/opt

scp -r sparkhome root@node2:/opt

scp -r sparkhome root@node3:/opt

scp -r sparkhome root@Ubuntu-Kylin:/opt
将profile文件也拷贝到各个节点
scp /etc/profile root@node1:/etc/
scp /etc/profile root@node2:/etc/
scp /etc/profile root@node3:/etc/
scp /etc/profile root@Ubuntu-Kylin:/etc/

9.启动spark集群

cd $SPARK_HOME/sbin

./start-all.sh
查看进程是否启动,jps
测试webui
master:8080
运行测试程序
run-example SparkPi

10.客户端连接集群

bin/spark-shell --master spark://master:7077
客户端提交作业命令spark-submit,用法参见官网 http://spark.apache.org/docs/latest/submitting-applications.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: