ubuntu下hadoop僞分佈式和完全分佈式

Hadoop僞分佈式搭建

  1. 下載JDK,使用xftp將下載好的JDK發送到Hadoop服務器中。
  2. 解壓jdk,配置JDK的環境變量
  3. 在/etc/profile中添加如下代碼:

 

4. 重啓配置文件,使其生效。source /etc/profile

5. 到Hadoop的官網http://hadoop.apache.org/releases.html下載hadoop,後綴爲.tar.gz。

6. 將下載好的壓縮包拷貝到hadoop服務器(注意:不要在window中解壓後複製)。

7. 解壓:tar –zxvf 文件名.tar.gz

8. 配置Hadoopd環境變量,在/etc/profile中添加如下代碼:

9. 使配置文件生效。source /etc/profile。

10. 修改hadoop中,etc/hadoop目錄下的hadoop-env.sh文件,將其中的JAVA_HOME路徑改爲我們自己安裝的這個JDK路徑。

 

11. 修改hadoop中/etc/hadoop/core-site.xml文件。在<configuration>標籤中添加如下代碼:

(1)添加指定的默認文件系統名稱的配置,master是hosts中的ip映射

在我的hosts中是

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>

</property>

ps:localhost是指ip地址 可以通過ifconfig查看

(2)添加指定中間數據文件存放目錄的配置,存放到hadoop目錄下

<property>

<name>hadoop.tmp.dir</name>

<value>/home/ysy/tmp</value>

</property>

 

ps:/home/ysy/tmp是本人的目錄地址

12. 修改hadoop中etc/hadoop/hdfs-site.xml。將默認的副本數3改成1。因爲我們現在用的是僞分佈式。在<configuration>標籤中添加如下代碼:

<property>

     <name>dfs.replication</name>

     <value>1</value>

   </property>

13. 格式化文件系統。執行hadoop中bin目錄下的hdfs namenode –format指令即可。

 

14. 啓動。執行hadoop中的sbin目錄中的./start-all.sh,啓動完成後通過jps查看是否都已開啓。

 

Hadoop完全分佈式搭建

首先本人用的是4臺虛擬機搭建的完全分佈式,分別是:

master,slave01,slave02,slave03

1.獲取到所有虛擬機的ip地址,寫入到/etc/hosts中去

2.設置ssh免密登錄

(1)把所有主機安裝上openssh-server

sudo apt-get install openssh-server

(2)在所有主機下分別創建sshkey

ssh-keygen -t rsa

ps:中途要輸入三個回車

(3)輸入命令 cd .ssh,進入到.ssh下,輸入命令(在master下)

cat id_rsa.pub >> authorized_keys

將id_rsa.pub公鑰內容拷貝到authorized_keys文件中

(4)再登錄上其他主機輸入

ssh-copy-id -i master  #登錄slave01,將公鑰拷貝到master的authorized_keys中
ssh-copy-id -i master  #登錄slave02,將公鑰拷貝到master的authorized_keys中
ssh-copy-id -i master  #登錄slave03,將公鑰拷貝到master的authorized_keys中

(5)登錄master修改authorized_keys的權限

chmod 600 authorized_keys

(6)在master中通過命令將authorized_keys發給其他的主機

scp -r ~/.ssh/authorized_keys ysy@slave01:~/.ssh/
scp -r ~/.ssh/authorized_keys ysy@slave02:~/.ssh/
scp -r ~/.ssh/authorized_keys ysy@slave03:~/.ssh/

ps:我這邊是所有主機上都做了ip的映射,如果沒有做映射就scp -r ~/.ssh/authorized_keys ysy(主機名 whoami查看)@xxx.xxx.x.x(要發送的主機的ip):~/.ssh/

(7)至此,免密碼登錄已經設定完成,注意第一次ssh登錄時需要輸入密碼,再次訪問時即可免密碼登錄。

 

ps:hadoop的下載和安裝命令前面已經寫了 後面就不寫了

3.在master中配置/etc/hadoop下面的文件  一共包括:core-site.xml   hadoop-env.sh    hdfs-site.xml   mapred-site.xml.template   slaves masters(我的配置中沒有這個文件 我自己建立的)

(1)core-site.xml配置

(2)hadoop-env.sh配置

(3) hdfs-site.xml配置

(4)mapred-site.xml.template配置

其中的ip是master的ip

(5)slaves配置

(6)masters配置

4通過scp將hadoop發送給其他的主機

scp -r /mysoftware/hadoop ysy@slave01:/mysoftware/
scp -r /mysoftware/hadoop ysy@slave02:/mysoftware/
scp -r /mysoftware/hadoop ysy@slave03:/mysoftware/

5. 格式化文件系統。執行hadoop中bin目錄下的hdfs namenode –format指令即可。(在master主機下面完成即可)

6.啓動。執行hadoop中的sbin目錄中的./start-all.sh(在master中啓動),啓動完成後通過jps查看所有主機和服務是否都已開啓。

7.也可以通過http://xxx.xxx.xxx.xxx:50070來訪問hadoop集羣狀態 前提是在 windows系統下的C:\Windows\System32\drivers\etc中的hosts文件修改添加一個 192.168.138.131    master(即自己虛擬機的主機master的ip)。訪問Datanodes結果如下圖所示

問題:

1.注意的是 ssh免密登錄中 ssh-copy-id -i master 也包括 master也要輸入命令

2.在ssh中出現錯誤時,可以刪除掉.ssh中的文件重新配置

3/etc/network/interfaces

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章