Hadoop面試指南(二):實踐版(終)

Hadoop HDFS MapReduce OpenSSH 技術妞妞 2017-06-15

上篇的文章有沒有感覺到水水的,頂著酷暑用生命在嘮嗑

其實Hadoop的平臺搭建起來還是蠻簡單的,但是對於很多不熟悉Ubuntu的小白來講簡直就是災難,所以今天的乾貨來了,結合上一篇文章的安裝指南,把涉及到的Linux命令一一娓娓道來。

安裝JDK

下載指定版本的JDK文件,小編這裡下載的是jdk-6u30-linux-i586.bin,拷貝到指定的文件夾下面,運行

./jdk-6u30-linux-i564.bin

運行時要在root權限下進行安裝

su 切換到root用戶下

檢查是否成功安裝

Java -version

修改主機名

因為我們需要搭建一個集群,所以我們會希望能有唯一且標誌性強的主機名,修改etc/hosts和etc/hostname

用vi etc/hosts

保存集群中所有機器ip地址到主機名的映射,集群裡的每臺機器都要進行修改,而hostname則是本地主機的主機名。

安裝ssh

我們在講Hadoop的HDFS以及MapReduce中都多次提到,集群中不同節點之間的機器之間存在多次數據傳輸,ssh則是節點之間數據傳輸的橋樑,同時還可以設置免密碼登陸,避免重複輸入密碼。

apt-get install openssh

安裝完成後,集群中的所有節點都開啟ssh服務

service ssh start

則可以利用ssh 主機名 登錄到指定主機上去,但是這種登錄往往是需要輸入密碼的,下面我們就簡單的介紹下如何免密登陸。

集群中的所有機器都生成一對鑰匙,也就是公鑰和密鑰。

id_dsa 和 id_dsa.pub

前面的是密鑰,後面的是公鑰,如果主機A想實現免密登陸到主機B上,就需要把自己的公鑰給主機B。

集群裡的機器每臺先生成一對鑰匙

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa

這一對鑰匙放在~/.ssh/目錄下

Hadoop面試指南(二):實踐版(終)

實現本地免密登陸

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

將本地的公鑰放到驗證的文件authorized_keys下

修改用戶權限

chmod 600 ~/.ssh/authorized_keys

實現免密登錄到主機B

將主機A的公鑰拷貝到B下,並追加到主機B的authorized_keys文件上。

拷貝:scp ~/.ssh/id_dsa.pub rice@B:~

追加:cat ~/id_dsa.pub >> ~/.ssh/authorized_keys

測試,完成免密登陸。

在集群中namenode節點所在的機器上配置Hadoop的相關配置文件,在完成配置後拷貝到集群中的所有機器上。

所有的配置文件都在解壓後的hadoop文件下的conf文件夾下

配置namenode的所在機器位置

配置文件為core-site.xml

<configuration>

<property>

<name>fs.default.name</name>

<value>hdfs://node1:9000</value>

</property>

</configuration>

這裡node1為主機名,表示namenode所在的主機,這是客戶端進入分佈式集群的入口。

Hadoop面試指南(二):實踐版(終)

配置HDFS的副本數

副本數的存在主要是為了提高分佈式系統的可用性和容錯性,當某一個節點掛掉的時候就就可以對這個節點上丟失的數據塊就是恢復,副本數指的就是一個數據塊在所有節點上一共有多少個副本。

配置文件為hdfs-site.xml

<configuration>

<property>

<name>dfs.replication</name>

<value>3</value>

</property>

</configuration>

在完全分佈式上副本數的個數默認為3.

配置datanode所在的主機,配置文件slaves上

配置secondarynode所在的主機,配置文件在masters,這兩種配置方法都很簡單,這裡就不再說明了。

配置mapreduce的JobTracker和taskTracker,因為taskTracker默認就分配在datanode節點上,所以不需要配置,這裡就只需要配置JobTracker

配置文件為mapred-site.xml

<configuration>

<property>

<name>mapred.job.tracker</name>

<value>node1:9001</value>

</property>

</configuration>

Hadoop面試指南(二):實踐版(終)

基本的配置步驟已經完成,但是我們忽略了一個配置,配置java在hadoop的路徑,在文件hadoop-env.sh配置,將jdk的路徑配置,最後格式化,./start-all啟動,利用jps檢查各個節點上的啟動情況就大功告成了!

相關推薦

推薦中...