1. 程式人生 > 其它 >Hadoop叢集部署實戰

Hadoop叢集部署實戰

模組

以三臺機器為例,分別為 hadoop000 ,hadoop001,hadoop002 。在這些機器上我需要部署哪些模組呢?

  • HDFS: NameNode,DataNode
  • YARN: ResourceManager,NodeManager

如下圖所示:

修改 hostname 與 hosts

以機器1為例,其它機器類似。

修改hostname

vim /etc/hostname

hadoop000

修改ip對映

vim /etc/hosts

192.168.199.100 localhost
192.168.199.100 hadoop000
192.168.199.101 hadoop001
192.168.199.102 hadoop002

注:不能簡單地只copy-paste到其它機器上,需要適當修改。

配置 ssh 登入

首先,每臺機器上需要已安裝 ssh 。

然後,到每臺機器上,分別生成一遍 rsa key pair :ssh-keygen -t rsa

最後,將 public key 拷貝到其它機器上,以機器1為例,其它機器類似。

ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop000
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop001
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop002

(注:SSH免密碼登入詳解,可參考這一篇 -> https://www.cnblogs.com/maxstack/p/13609285.html

安裝 JDK

首先,在機器1上安裝並配置JDK。

  • 在 hadoop000 上部署 jdk ,download and unzip
  • 將 jdk bin 配置到系統環境變數 bash_profile ,config JAVA_HOME and PATH

然後,將機器1的東西拷貝到其它機器上。(注意拷貝的目錄需要保持一致)

scp -r jdk1.8.0_91 hadoop@hadoop001:~/app/java/
scp -r jdk1.8.0_91 hadoop@hadoop002:~/app/java/

scp ~/.bash_profile hadoop@hadoop001:~/
scp ~/.bash_profile hadoop@hadoop002:~/

部署 Hadoop

和 JDK 類似,先在機器1上配置好,然後拷貝到其它機器上。

1. download hadooop and unzip

2. configuration change

2.1 hadoop-env.sh

配置 JAVA_HOME

JAVA_HOME=XXX

2.2 core-site.xml

配置主節點

<property>
	<name>fs.default.name</name>
	<value>hdfs://hadoop000:8020</value>
</property>

2.3 hdfs-site.xml

配置儲存目錄

<property>
  <name>dfs.namenode.name.dir</name>
  <value>/home/hadoop/app/tmp/dfs/name</value>
</property>

<property>
  <name>dfs.datanode.data.dir</name>
  <value>/home/hadoop/app/tmp/dfs/data</value>
</property>

2.4 yarn-site.xml

配置 yarn

<property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
 </property>

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop000</value>
</property>

2.5 mapred-site.xml

配置 mapreduce 框架

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

2.6 slaves

配置從節點

hadoop000
hadoop001
hadoop002

3. copy to other machines

scp -r hadoop-2.6.0-cdh5.15.1 hadoop@hadoop001:~/app/hadoop/
scp -r hadoop-2.6.0-cdh5.15.1 hadoop@hadoop002:~/app/hadoop/

scp ~/.bash_profile hadoop@hadoop001:~/
scp ~/.bash_profile hadoop@hadoop002:~/

4. format namenode

到每臺機器上,格式化 NN

hadoop namenode -format

啟動 Cluster

登入一臺機器,比如 hadoop000 ,啟動HDFS:

./start-dfs.sh

同樣地,啟動 yarn:

./start-yarn.sh

最後,到每臺機器上使用jps,或者使用 UI ,觀察模組啟動情況。