阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 6.2(64位)下安装Spark0.8.0详细记录

214次阅读
没有评论

共计 11718 个字符,预计需要花费 30 分钟才能阅读完成。

系统:CentOS 6.2
 
操作账号:root
 
Spark 版本:spark-0.8.0-incubating-bin-Hadoop1.tgz
 
jdk 版本:jdk-7-linux-x64.rpm
 
scala 版本:scala-2.9.3.tgz
 
使用的节点情况:(172.18.11.XX)XX=16,17,18,20,21,23,24,25,26,27,28,29,30,31,32,33,34 共 17 个节点
 
主控节点:hw024,以下操作如无特别说明全部在 hw024 上进行
 
注意:(1)因为我之前在 24-28 上安装过所有环境,所以以下 for 循环中没有这五个节点,但是如果要自行配置,需要在 for 循环中加入所有节点 hostname
 
(2)注意,三台机器 spark 所在目录必须一致,因为 master 会登陆到 worker 上执行命令,master 认为 worker 的 spark 路径与自己一样。

Spark 简介及其在 Ubuntu 下的安装使用 http://www.linuxidc.com/Linux/2013-08/88606.htm

安装 Spark 集群(在 CentOS 上) http://www.linuxidc.com/Linux/2013-08/88599.htm

Hadoop vs Spark 性能对比 http://www.linuxidc.com/Linux/2013-08/88597.htm

Spark 安装与学习 http://www.linuxidc.com/Linux/2013-08/88596.htm

Spark 并行计算模型 http://www.linuxidc.com/Linux/2012-12/76490.htm
 
1. 配置各个节点无密码登陆
 
(a)在每个节点分别执行:
 
yum remove selinux* -y(预防 ssh-keygen 命令不成功)
 
ssh-keygen -t rsa(之后一路回车)
 
这将在 /root/.ssh/ 目录下生成一个私钥 id_rsa 和一个公钥 id_rsa.pub。
 
(b)将所有 datanode 节点的公钥 id_rsa.pub 传送到 namenode 上:
 
cp id_rsa.pub hw016.id_rsa.pub
 
scp hw016.id_rsa.pub “namenode 节点 ip 地址 ”:/root/.ssh
 
……
 
cp id_rsa.pub hw0XX.id_rsa.pub
 
scp hw0XX.id_rsa.pub namenode 节点 ip 地址:/root/.ssh
 
(c)namenode 节点上综合所有公钥 (包括自身) 并传送到所有节点上
 
cp id_rsa.pub authorized_keys 这是 namenode 自己的公钥
 
cat hw016.id_rsa.pub >> authorized_keys
 
……
 
cat hw0XX.id_rsa.pub >> authorized_keys
 
然后使用 SSH 协议将所有公钥信息 authorized_keys 复制到所有 DataNode 的.ssh 目录下
 
scp authorized_keys“data 节点 ip 地址”:/root/.ssh
 
这样配置过后,所有节点之间可以相互 SSH 无密码登陆,可以通过命令
 
“ssh 节点 ip 地址”来验证。
 
配置完毕,在 namenode 上执行“ssh 本机,所有数据节点”命令,因为 ssh 执行一次之后将不会再询问。
 
备注:用 scp 命令拷贝到所有节点时,可以放到脚本执行,脚本内容如下:
 
for dir in hw016 hw017 hw018 hw020 hw021 hw023 hw024 hw025 hw026 hw027 hw028 hw029 hw030 hw031 hw032 hw033 hw034
 
do
 
echo cping to $dir
 
scp -r authorized_keys root@$dir:/root/.ssh/
 
done
 

2. 修改 hosts 并拷贝到所有节点
 
hosts 内容如下:
 
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
 
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
 
172.18.11.15 hw015
 
172.18.11.16 hw016
 
172.18.11.17 hw017
 
172.18.11.18 hw018
 
172.18.11.20 hw020
 
172.18.11.21 hw021
 
172.18.11.23 hw023
 
172.18.11.24 hw024
 
172.18.11.25 hw025
 
172.18.11.26 hw026
 
172.18.11.27 hw027
 
172.18.11.28 hw028
 
172.18.11.29 hw029
 
172.18.11.30 hw030
 
172.18.11.31 hw031
 
172.18.11.32 hw032
 
172.18.11.33 hw033
 
172.18.11.34 hw034
 
scp 到所有节点的 /etc/ 目录下
 
这一步是为了方便以后的操作,以后再拷贝其他文件,在脚本中就不用写 ip。
 

3. 拷贝所有需要安装的包到各个节点的对应目录下
 
#!/bin/bash
 
for dir in hw016 hw017 hw018 hw020 hw021 hw023 hw029 hw030 hw031 hw032 hw033 hw034
 
do
 
echo cping to $dir
 
scp -r jdk-7-linux-x64.rpm root@$dir:/home/xxx
 
done
 

4. 分别登陆各个节点,安装 jdk1.7
 
进入每个节点的 /home/xxx,  执行命令:rpm -ivh jdk-7-linux-x64.rpm
 
其自动安装到 /usr/Java/jdk1.7.0
 
5. 安装 scala
 
解压 scala-2.9.3.tgz 到 /home/xxx 下,生成 scala-2.9.3 目录
 
拷贝 scala-2.9.3 到每个节点的 /usr/lib 下:
 
for dir in hw016 hw017 hw018 hw020 hw021 hw023 hw029 hw030 hw031 hw032 hw033 hw034
 
do
 
echo cping to $dir
 
scp -r scala-2.9.3 root@$dir:/usr/lib
 
done
 
6. 安装 Spark
 
(1)解压 spark-0.8.0-incubating-bin-hadoop1.tgz 到每个节点的 /home/xxx 目录下
 
由于我们已经将解压好的 spark 目录拷贝到各个节点上(见步骤 3),故这里略去。
 
(2)设置环境变量
 
我们会在后面统一设置环境变量。
 
(3)设置 spark 的配置文件
 
设置 spark 源码目录下的 /conf/slaves 文件如下:
 
hw016
 
hw017
 
hw018
 
hw020
 
hw021
 
hw023
 
hw025
 
hw026
 
hw027
 
hw028
 
hw029
 
hw030
 
hw031
 
hw032
 
hw033
 
hw034
 
设置 spark-env.sh 文件,添加一行内容:
 
export SCALA_HOME=/usr/lib/scala-2.9.3
 
保存退出
 
(4)拷贝配置好的 spark 源码到所有 slaves 节点上:
 
#!/bin/bash
 
#for dir in hw016 hw017 hw018 hw020 hw021 hw023 hw029 hw030 hw031 hw032 hw033 hw034
 
for dir in hw016 hw017 hw018 hw020 hw021 hw023 hw024 hw025 hw026 hw027 hw028 hw029 hw030 hw031 hw032 hw033 hw034
 
#for dir in hw025 hw026 hw027 hw028
 
do
 
echo cping to $dir
 
scp -r spark-0.8.0-incubating-bin-hadoop1 root@$dir:/home/xxx
 
done
 
保存退出,spark 配置完成

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/102583p2.htm

7. 设置环境变量
 
在 hw024 上设置好环境变量,一次性拷贝到各个节点上:
 
打开 /etc/profile 加入以下内容:
 
#scala
 
export SCALA_HOME=/usr/lib/scala-2.9.3
 
export PATH=$PATH:$SCALA_HOME/bin
 
#spark
 
export SPARK_HOME=/home/xxx/spark-0.8.0-incubating-bin-Hadoop1
 
export PATH=$PATH:$SPARK_HOME/bin
 
#Java
 
export JAVA_HOME=/usr/java/jdk1.7.0
 
export JRE_HOME=/usr/java/jdk1.7.0/jre
 
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:
 
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
 
用 for 循环和 scp 命令拷贝到各个节点:
 
#!/bin/bash
 
for dir in hw016 hw017 hw018 hw020 hw021 hw023 hw029 hw030 hw031 hw032 hw033 hw034
 
do
 
echo cping to $dir
 
scp -r /etc/profile root@$dir:/etc/profile
 
done
 
分别在各个节点执行 source /etc/profile,让修改的环境变量生效
 

8. 安装 hadoop
 
spark 的 cluster 模式需要使用 hadoop 的 HDFS 文件系统,需要先安装 hadoop。
 
(1)在 24 节点上解压 hadoop-1.2.1.tar.gz,并将解压后的目录放到 /usr/local/hadoop/ 目录下
 
(2)配置 hadoop:
 
修改 /conf/hadoop-env.sh 文件如下:
 
export JAVA_HOME=/usr/java/jdk1.7.0
 
export HADOOP_NAMENODE_OPTS=”-Dcom.sun.management.jmxremote $HADOOP_NAMENODE_OPTS”
 
export HADOOP_SECONDARYNAMENODE_OPTS=”-Dcom.sun.management.jmxremote $HADOOP_SECONDARYNAMENODE_OPTS”
 
export HADOOP_DATANODE_OPTS=”-Dcom.sun.management.jmxremote $HADOOP_DATANODE_OPTS”
 
export HADOOP_BALANCER_OPTS=”-Dcom.sun.management.jmxremote $HADOOP_BALANCER_OPTS”
 
export HADOOP_JOBTRACKER_OPTS=”-Dcom.sun.management.jmxremote $HADOOP_JOBTRACKER_OPTS”
 
修改 core-site.xml 如下:
 
<?xml version=”1.0″?>
 
<?xml-stylesheet type=”text/xsl” href=”https://www.linuxidc.com/Linux/2014-06/configuration.xsl”?>
 
<!– Put site-specific property overrides in this file. –>
 
<configuration>
 
<property>
 
<name>master.node</name>
 
<value>hw024</value>
 
<description>master</description>
 
</property>
 
<property>
 
<name>hadoop.tmp.dir</name>
 
<value>/usr/local/hadoop/tmp</value>
 
<description>local dir</description>
 
</property>
 
<property>
 
<name>fs.default.name</name>
 
<value>hdfs://${master.node}:9000</value>
 
<description> </description>
 
</property>
 
</configuration>
 
修改 hdfs-site.xml 如下:
 
<?xml version=”1.0″?>
 
<?xml-stylesheet type=”text/xsl” href=”https://www.linuxidc.com/Linux/2014-06/configuration.xsl”?>
 
<!– Put site-specific property overrides in this file. –>
 
<configuration>
 
<property>
 
<name>dfs.replication</name>
 
<value>2</value>
 
</property>
 
<property>
 
<name>dfs.name.dir</name>
 
<value>${hadoop.tmp.dir}/hdfs/name</value>
 
<description>local dir</description>
 
</property>
 
<property>
 
<name>dfs.data.dir</name>
 
<value>${hadoop.tmp.dir}/hdfs/data</value>
 
<description> </description>
 
</property>
 
</configuration>
 
修改 mapred-siter.xml 如下:
 
<?xml version=”1.0″?>
 
<?xml-stylesheet type=”text/xsl” href=”https://www.linuxidc.com/Linux/2014-06/configuration.xsl”?>
 
<!– Put site-specific property overrides in this file. –>
 
<configuration>
 
<property>
 
<name>mapred.job.tracker</name>
 
<value>${master.node}:9001</value>
 
<description> </description>
 
</property>
 
<property>
 
<name>mapred.local.dir</name>
 
<value>${hadoop.tmp.dir}/mapred/local</value>
 
<description> </description>
 
</property>
 
<property>
 
<name>mapred.system.dir</name>
 
<value>/tmp/mapred/system</value>
 
<description>hdfs dir</description>
 
</property>
 
</configuration>
 
(3)配置 conf/master 文件,加入 namenode 的主机名:
 
hw024
 
配置 slaves 文件,加入所有 datanode 的主机名:
 
hw016
 
hw017
 
hw018
 
hw020
 
hw021
 
hw023
 
hw024
 
hw025
 
hw026
 
hw027
 
hw028
 
hw029
 
hw030
 
hw031
 
hw032
 
hw033
 
hw034
 
(4)复制以上配置好的内容到所有节点上
 
#!/bin/bash
 
for dir in hw016 hw017 hw018 hw020 hw021 hw023 hw029 hw030 hw031 hw032 hw033 hw034
 
do
 
echo cping to $dir
 
#scp -r jdk-7-linux-x64.rpm root@$dir:/home/xxx
 
#scp -r spark-0.8.0-incubating-bin-hadoop1 root@$dir:/home/xxx
 
#scp -r profile root@$dir:/etc/profile
 
#scp -r scala-2.9.3.tgz root@$dir:/home/xxx
 
#scp -r slaves spark-env.sh root@$dir:/home/xxx/spark-0.8.0-incubating-bin-hadoop1/conf
 
#scp -r hosts root@$dir:/etc
 
scp -r /usr/local/hadoop/hadoop-1.2.1 root@$dir:/usr/local/hadoop/
 
#scp -r scala-2.9.3 root@$dir:/usr/lib
 

done
 
(5)在每个节点上创建 hadoop 使用的临时文件如下:
 
mkdir -p /usr/local/hadoop/tmp/hdfs/name
 
mkdir -p /usr/local/hadoop/tmp/hdfs/data
 
mkdir -p /usr/local/hadoop/tmp/mapred/local
 
mkdir -p /tmp/mapred/system
 
(6)关闭所有节点的防火墙:
 
/etc/init.d/iptables stop
 

9. spark 测试
 
(1)启动 spark 集群
 
在 hw024 的 spark 源码目录下执行:
 
./bin/start-all.sh
 
(2)检测进程是否启动:
 
[root@hw024 xxx]# jps
 
30435 Worker
 
16223 Jps
 
9032 SecondaryNameNode
 
9152 JobTracker
 
10283 Master
 
3075 TaskTracker
 
8811 NameNode
 
如果 spark 正常启动,jps 运行结果如上所示。
 
浏览 hw024 的 web UI(http://172.18.11.24:8080),此时应该可以看到所有的 work 节点,以及他们的 CPU 个数和内存信息。
 
(3)运行 spark 自带的例子:
 
运行 SparkPi
 
$ ./run-example org.apache.spark.examples.SparkPi spark://hw024:7077
 
运行 SparkKMeans
 
$ ./run-example org.apache.spark.examples.SparkKMeans spark://hw024:7077 ./kmeans_data.txt 2 1
 
运行 wordcount
 
$ cd /home/xxx/spark-0.8.0-incubating-bin-hadoop1
 
$ hadoop fs -put README.md ./
 
$ MASTER=spark://master:7077 ./spark-shell
 
scala> val file = sc.textFile(“hdfs://master:9000/user/dev/README.md”)
 
scala> val count = file.flatMap(line => line.split(” “)).map(map => (word, 1)).reduceByKey(+)
 
scala> count.collect()
 
注意:wordcount 例子中有两个地方需要根据之前 hadoop 的设置进行修改:
 
(1)MASTER=spark://master:7077 ./spark-shell:
 其中斜体需要改为你的 namenode 的 hostname
 
(2)scala> val file = sc.textFile(“hdfs://master:9000/user/dev/README.md”):其中 master 要修改,而且后面的 9000 也要根据你的具体配置修改

Spark 的详细介绍:请点这里
Spark 的下载地址:请点这里

更多 CentOS 相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

系统:CentOS 6.2
 
操作账号:root
 
Spark 版本:spark-0.8.0-incubating-bin-Hadoop1.tgz
 
jdk 版本:jdk-7-linux-x64.rpm
 
scala 版本:scala-2.9.3.tgz
 
使用的节点情况:(172.18.11.XX)XX=16,17,18,20,21,23,24,25,26,27,28,29,30,31,32,33,34 共 17 个节点
 
主控节点:hw024,以下操作如无特别说明全部在 hw024 上进行
 
注意:(1)因为我之前在 24-28 上安装过所有环境,所以以下 for 循环中没有这五个节点,但是如果要自行配置,需要在 for 循环中加入所有节点 hostname
 
(2)注意,三台机器 spark 所在目录必须一致,因为 master 会登陆到 worker 上执行命令,master 认为 worker 的 spark 路径与自己一样。

Spark 简介及其在 Ubuntu 下的安装使用 http://www.linuxidc.com/Linux/2013-08/88606.htm

安装 Spark 集群(在 CentOS 上) http://www.linuxidc.com/Linux/2013-08/88599.htm

Hadoop vs Spark 性能对比 http://www.linuxidc.com/Linux/2013-08/88597.htm

Spark 安装与学习 http://www.linuxidc.com/Linux/2013-08/88596.htm

Spark 并行计算模型 http://www.linuxidc.com/Linux/2012-12/76490.htm
 
1. 配置各个节点无密码登陆
 
(a)在每个节点分别执行:
 
yum remove selinux* -y(预防 ssh-keygen 命令不成功)
 
ssh-keygen -t rsa(之后一路回车)
 
这将在 /root/.ssh/ 目录下生成一个私钥 id_rsa 和一个公钥 id_rsa.pub。
 
(b)将所有 datanode 节点的公钥 id_rsa.pub 传送到 namenode 上:
 
cp id_rsa.pub hw016.id_rsa.pub
 
scp hw016.id_rsa.pub “namenode 节点 ip 地址 ”:/root/.ssh
 
……
 
cp id_rsa.pub hw0XX.id_rsa.pub
 
scp hw0XX.id_rsa.pub namenode 节点 ip 地址:/root/.ssh
 
(c)namenode 节点上综合所有公钥 (包括自身) 并传送到所有节点上
 
cp id_rsa.pub authorized_keys 这是 namenode 自己的公钥
 
cat hw016.id_rsa.pub >> authorized_keys
 
……
 
cat hw0XX.id_rsa.pub >> authorized_keys
 
然后使用 SSH 协议将所有公钥信息 authorized_keys 复制到所有 DataNode 的.ssh 目录下
 
scp authorized_keys“data 节点 ip 地址”:/root/.ssh
 
这样配置过后,所有节点之间可以相互 SSH 无密码登陆,可以通过命令
 
“ssh 节点 ip 地址”来验证。
 
配置完毕,在 namenode 上执行“ssh 本机,所有数据节点”命令,因为 ssh 执行一次之后将不会再询问。
 
备注:用 scp 命令拷贝到所有节点时,可以放到脚本执行,脚本内容如下:
 
for dir in hw016 hw017 hw018 hw020 hw021 hw023 hw024 hw025 hw026 hw027 hw028 hw029 hw030 hw031 hw032 hw033 hw034
 
do
 
echo cping to $dir
 
scp -r authorized_keys root@$dir:/root/.ssh/
 
done
 

2. 修改 hosts 并拷贝到所有节点
 
hosts 内容如下:
 
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
 
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
 
172.18.11.15 hw015
 
172.18.11.16 hw016
 
172.18.11.17 hw017
 
172.18.11.18 hw018
 
172.18.11.20 hw020
 
172.18.11.21 hw021
 
172.18.11.23 hw023
 
172.18.11.24 hw024
 
172.18.11.25 hw025
 
172.18.11.26 hw026
 
172.18.11.27 hw027
 
172.18.11.28 hw028
 
172.18.11.29 hw029
 
172.18.11.30 hw030
 
172.18.11.31 hw031
 
172.18.11.32 hw032
 
172.18.11.33 hw033
 
172.18.11.34 hw034
 
scp 到所有节点的 /etc/ 目录下
 
这一步是为了方便以后的操作,以后再拷贝其他文件,在脚本中就不用写 ip。
 

3. 拷贝所有需要安装的包到各个节点的对应目录下
 
#!/bin/bash
 
for dir in hw016 hw017 hw018 hw020 hw021 hw023 hw029 hw030 hw031 hw032 hw033 hw034
 
do
 
echo cping to $dir
 
scp -r jdk-7-linux-x64.rpm root@$dir:/home/xxx
 
done
 

4. 分别登陆各个节点,安装 jdk1.7
 
进入每个节点的 /home/xxx,  执行命令:rpm -ivh jdk-7-linux-x64.rpm
 
其自动安装到 /usr/Java/jdk1.7.0
 
5. 安装 scala
 
解压 scala-2.9.3.tgz 到 /home/xxx 下,生成 scala-2.9.3 目录
 
拷贝 scala-2.9.3 到每个节点的 /usr/lib 下:
 
for dir in hw016 hw017 hw018 hw020 hw021 hw023 hw029 hw030 hw031 hw032 hw033 hw034
 
do
 
echo cping to $dir
 
scp -r scala-2.9.3 root@$dir:/usr/lib
 
done
 
6. 安装 Spark
 
(1)解压 spark-0.8.0-incubating-bin-hadoop1.tgz 到每个节点的 /home/xxx 目录下
 
由于我们已经将解压好的 spark 目录拷贝到各个节点上(见步骤 3),故这里略去。
 
(2)设置环境变量
 
我们会在后面统一设置环境变量。
 
(3)设置 spark 的配置文件
 
设置 spark 源码目录下的 /conf/slaves 文件如下:
 
hw016
 
hw017
 
hw018
 
hw020
 
hw021
 
hw023
 
hw025
 
hw026
 
hw027
 
hw028
 
hw029
 
hw030
 
hw031
 
hw032
 
hw033
 
hw034
 
设置 spark-env.sh 文件,添加一行内容:
 
export SCALA_HOME=/usr/lib/scala-2.9.3
 
保存退出
 
(4)拷贝配置好的 spark 源码到所有 slaves 节点上:
 
#!/bin/bash
 
#for dir in hw016 hw017 hw018 hw020 hw021 hw023 hw029 hw030 hw031 hw032 hw033 hw034
 
for dir in hw016 hw017 hw018 hw020 hw021 hw023 hw024 hw025 hw026 hw027 hw028 hw029 hw030 hw031 hw032 hw033 hw034
 
#for dir in hw025 hw026 hw027 hw028
 
do
 
echo cping to $dir
 
scp -r spark-0.8.0-incubating-bin-hadoop1 root@$dir:/home/xxx
 
done
 
保存退出,spark 配置完成

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-06/102583p2.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计11718字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中