硬件:
Ubuntu16.04 server 2臺(tái)
軟件版本:
hadoop-2.6.5.tar.gz
jdk-8u191-linux-x64.tar.gz
scala-2.12.8.tgz
spark-2.4.0-bin-hadoop2.7.tgz
hadoop集群搭建(master+slave01)
1.集群機(jī)器準(zhǔn)備
master:192.168.1.222
slave01:192.168.1.120
2.修改master和slave01的/etc/hosts文件如下
127.0.0.1 localhost
192.168.1.222 master
192.168.1.120 slave01
配置ssh無(wú)密碼訪問(wèn)集群
這個(gè)步驟可以參考我之前的一篇教程:Ubuntu配置ssh無(wú)密碼登陸,在此不說(shuō)了
配置完測(cè)試是否開(kāi)啟無(wú)密碼訪問(wèn),
ssh 192.168.1.222
ssh 192.168.1.120
jdk與hadoop安裝包安裝(我把所需的軟件都放在home目錄的spark下,安裝是根據(jù)自己的路徑更改即可)
目錄tree圖
spark
├── hadoop-2.6.5.tar.gz
├── jdk-8u191-linux-x64.tar.gz
├── scala-2.12.8.tgz
└── spark-2.4.0-bin-hadoop2.7.tgz
1.jdk安裝
解壓/home/am/spark
,分別在master和slave01中添加環(huán)境變量(home目錄下的.bashrc
隱藏文件):
export JAVA_HOME=/home/am/spark/jdk1.8.0_191
export JRE_HOME=/home/am/spark/jdk1.8.0_191/jre
export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
運(yùn)行source .bashrc
使環(huán)境變量生效
2.hadoop安裝
解壓到/home/am/spark
,分別在master和slave01中添加環(huán)境變量(home目錄下的.bashrc
隱藏文件):
export HADOOP_HOME=/home/am/spark/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
運(yùn)行source .bashrc
使環(huán)境變量生效
3.配置hadoop環(huán)境
a.在/home/am/spark/hadoop-2.6.5/etc/hadoop
目錄下修改hadoop-env.sh
增加如下配置
export JAVA_HOME=/home/am/spark/jdk1.8.0_191
export HADOOP_PREFIX=/home/am/spark/hadoop-2.6.5
b.修改core-site.xml
,tmp
目錄需要提前創(chuàng)建好
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/software/hadoop/hadoop-2.6.0/tmp</value>
</property>
</configuration>
c.修改hdfs-site.xml
,指定數(shù)據(jù)的副本個(gè)數(shù)
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
d.修改mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
e.yarn-env.sh
中增加JAVA_HOME的環(huán)境
export JAVA_HOME=/home/am/spark/jdk1.8.0_191
f.修改yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
</configuration>
g.slaves中增加集群主機(jī)名
master
slave01
在slave01重復(fù)以上步驟
啟動(dòng)hadoop集群
1)start-dfs.sh,啟動(dòng)namenode和datanode
在master和slave01上使用jps命令查看java進(jìn)程
2)start-yarn.sh,啟動(dòng) ResourceManager 和 NodeManager
在master和slave01上使用jps命令查看java進(jìn)程
如果上述都成功了,那么集群?jiǎn)?dòng)就成功了
scala安裝
a.解壓到/home/am/spark
,分別在master和slave01中添加環(huán)境變量(home目錄下的.bashrc
隱藏文件)
export SCALA_HOME=/home/am/spark/scala-2.12.8
export SPARK_HOME=/home/am/spark/spark-2.4.0-bin-hadoop2.7
export PATH=$PATH:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin
b.測(cè)試scala命令是否有效
c.安裝成功
Spark安裝以及配置
1.Spark安裝
解壓到/home/am/spark
,分別在master和slave01中添加環(huán)境變量(home目錄下的.bashrc
隱藏文件)
export SPARK_HOME=/home/am/spark/spark-2.4.0-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
每次修改完記得運(yùn)行source .bashrc
使環(huán)境變量生效
2.Spark配置
a.進(jìn)入Spark
的安裝目錄下的conf
目錄,拷貝spark-env.sh.template
到spark-env.sh
cp spark-env.sh.template spark-env.sh
編輯spark-env.sh,在其中添加以下配置信息
export SCALA_HOME=/home/am/spark/scala-2.12.8
export JAVA_HOME=/home/am/spark/jdk1.8.0_191
export SPARK_MASTER_IP=192.168.1.222
export SPARK_WORKER_MEMORY=1g
export HADOOP_CONF_DIR=/home/am/spark/hadoop-2.6.5/etc/hadoop
b.將slaves.template
拷貝到slaves
,編輯起內(nèi)容為
master
slave01
此配置表示要開(kāi)啟的worker主機(jī)
c.slave01
同樣參照master配置
Spark集群?jiǎn)?dòng)
a啟動(dòng)Master節(jié)點(diǎn),運(yùn)行start-master.sh,結(jié)果如下
b.啟動(dòng)所有的worker節(jié)點(diǎn),運(yùn)行start-slaves.sh,運(yùn)行結(jié)果如下
c.輸入jps命令查看啟動(dòng)情況
d.瀏覽器訪問(wèn)http://192.168.1.222:8080可查看Spark集群信息
第一次搭建,很多不懂的,疑問(wèn),想知道哪一步出錯(cuò)了?
workers id為什么主機(jī)的ip都是192.168.1.222?