spark筑基篇-00-集群环境搭建

[TOC]

1 说明

1.1 效果图

实现1个Master两个Worker的伪集群环境搭建。

Cluster

1.2 实验环境

item desc
OS CentOS release 6.7 (Final)
java jdk-8u101-linux-x64.tar.gz
scala scala-2.11.8.tgz
hadoop hadoop-2.6.5.tar.gz
spark spark-2.0.1-bin-hadoop2.6.tgz

确保三台主机上的域名解析配置如下:

[root@h1 /]# cat /etc/hosts
127.0.0.1       localhost.localdomain localhost
192.168.161.128 h1
192.168.161.129 h2
192.168.161.130 h3
::1     localhost6.localdomain6 localhost6

1.3 配置ssh免登陆

配置好h1到h2,h3的ssh免登陆。
至于如何配置ssh免登陆可以参考本人的另一篇文章:ssh/OpenSSH

2 集群搭建

2.1 配置环境变量

这个没啥好说的了。以下是本人的配置:

# java
export JAVA_HOME=/soft/jdk1.8.0_101
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$PATH:$JAVA_HOME/bin

# scala
export SCALA_HOME=/soft/scala-2.11.8
export PATH=$PATH:$SCALA_HOME/bin

2.2 配置hadoop

# 下载
wget http://archive.apache.org/dist/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz
# 解压
tar -zxvf hadoop-2.6.5.tar.gz
# 可选(本人喜欢将软件统一安装的根目录的soft目录下)
mv hadoop-2.6.5 /soft/

2.2.1 core-site.xml

vim /soft/hadoop-2.6.5/etc/hadoop/core-site.xml

内容如下:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://h1:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/soft/hadoop-2.6.5/tmp</value>
    </property>
    <property>
        <name>hadoop.native.lib</name>
        <value>true</value>
    </property>
</configuration>

2.2.2 hdfs-site.xm

vim /soft/hadoop-2.6.5/etc/hadoop/hdfs-site.xml

内容如下:

<configuration>
    <property>
        <name>sdf.replication</name>
        <value>2</value>
    </property>
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>h1:50090</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>/soft/hadoop-2.6.5/dfs/data</value>
    </property>
    <property>
        <name>dfs.namenode.checkpoint.dir</name>
        <value>file:///soft/hadoop-2.6.5/dfs/namesecondary</value>
    </property>
</configuration>

2.2.3 mapred-site.xml

cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml

内容如下:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

2.2.4 yarn-site.xml

vim /soft/hadoop-2.6.5/etc/hadoop/yarn-site.xml

内容如下:

<configuration>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>h1</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
</configuration>

2.2.5 hadoop环境变量

export HADOOP_HOME=/soft/hadoop-2.6.5
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/bin

2.2.6 slaves

vim /soft/hadoop-2.6.5/etc/hadoop/slaves

内容如下:

h1
h2
h3

2.2.7 复制到其他节点

# 先格式化HDFS
/soft/hadoop-2.6.5/bin/hdfs namenode -format

# 复制到主机 h2
scp -r /soft/hadoop-2.6.5/ root@h2:/soft
# 复制到主机 h3
scp -r /soft/hadoop-2.6.5/ root@h3:/soft

# 同时别忘了其他机器上的环境变量

2.2.8 验证

# 启动hdfs----在h1上操作即可
/soft/hadoop-2.6.5/sbin/start-all.sh
# 看到正常启动之后分别在h1,h2,h3上查看java进程快照
# h1
[root@h1 sbin]# jps
4225 SecondaryNameNode
4053 DataNode
3957 NameNode
4539 NodeManager
4574 Jps
4447 ResourceManager

# h2
[root@h2 soft]# jps
3499 Jps
3390 NodeManager
3231 DataNode

# h3
[root@h3 soft]# jps
3194 DataNode
3452 Jps
3342 NodeManager

通过浏览器查看HDFS状态:http://h1:50070/dfshealth.html#tab-overview

tab-datanode标签可以看到如下内容:

datanode infomation

或者查看:http://h1:8088/cluster

2.3 配置spark

# 下载
wget http://d3kbcqa49mib13.cloudfront.net/spark-2.0.1-bin-hadoop2.6.tgz
# 解压
tar -zxvf spark-2.0.1-bin-hadoop2.6.tgz
# 可选(本人喜欢将软件统一安装的根目录的soft目录下)
mv spark-2.0.1-bin-hadoop2.6 /soft/

2.3.1 spark环境变量

export SPARK_HOME=/soft/spark-2.0.1-bin-hadoop2.6/
export PATH=$PATH:$SPARK_HOME/bin

2.3.2 spark-env.sh

cd /soft/spark-2.0.1-bin-hadoop2.6/conf
cp spark-env.sh.template spark-env.sh
vim spark-env.sh

在最后加入如下内容:

export JAVA_HOME=/soft/jdk1.8.0_101
export SCALA_HOME=/soft/scala-2.11.8
export HADOOP_HOME=/soft/hadoop-2.6.5
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_MASTER_IP=h1
export SPARK_WORKER_MEMORY=512M
export SPARK_EXECUTOR_MEMORY=512M
export SPARK_DRIVER_MEMORY=512M
export SPARK_WORKER_CORES=1

2.3.3 slaves

cd /soft/spark-2.0.1-bin-hadoop2.6/conf
cp slaves.template slaves
vim slaves

在最后加入如下内容:

h2
h3

2.3.4 spark-defaults.conf

cd /soft/spark-2.0.1-bin-hadoop2.6/conf
cp spark-defaults.conf.template spark-defaults.conf
vim spark-defaults.conf

在最后加入如下内容:

spark.executor.extraJavaOptions     -XX:+PrintGCDetails -DKey=value -Dnumbers="one two three"
spark.eventLog.enabled              true
spark.eventLog.dir                  hdfs://h1:9000/historyserverforSpark
spark.yarn.historyServer.address    h1:18080
spark.history.fs.logDirectory       hdfs://h1:9000/historyserverforSpark

2.3.5 复制到其他节点

# 复制到h2
scp -r /soft/spark-2.0.1-bin-hadoop2.6/ root@h2:/soft
# 复制到h3
scp -r /soft/spark-2.0.1-bin-hadoop2.6/ root@h3:/soft
# 同时别忘了其他节点的环境变量

验证

# 启动 - 在h1上操作即可
/soft/spark-2.0.1-bin-hadoop2.6/start-all.sh
# h1
[root@h1 sbin]# jps
4435 SecondaryNameNode
4164 NameNode
4583 ResourceManager
4263 DataNode
4680 NodeManager
5020 Master
5084 Jps

# h2
[root@h2 soft]# jps
3284 DataNode
3543 Worker
3591 Jps
3384 NodeManager


# h3
[root@h3 soft]# jps
3280 DataNode
3538 Worker
3380 NodeManager
3588 Jps

通过浏览器查看HDFS状态:http://h1:8080,可以看到如下内容:

spark-works

3 执行HelloWorld

此处的HelloWorld指的是Spark内置的例子中的一个用来计算PI的程序。

注意:

在执行该jar包前请先确保hadoop和Spark都已经启动。
另外,如果配置了日志服务,请先为其创建对应的日志目录再执行后续步骤:

hdfs dfs -mkdir /historyserverforSpark

执行

./bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://h1:7077 \
--executor-memory 512m \
--total-executor-cores 10 \
/soft/spark-2.0.1-bin-hadoop2.6/examples/jars/spark-examples_2.11-2.0.1.jar \
10

结果

PI

下一篇文章将分享在Eclipse中编写并执行SparkHello:spark筑基篇-01-Eclipse开发Spark HelloWorld

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,658评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,482评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,213评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,395评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,487评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,523评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,525评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,300评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,753评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,048评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,223评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,905评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,541评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,168评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,417评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,094评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,088评论 2 352

推荐阅读更多精彩内容