Hadoop完全分布式模式的配置與安裝

jopen 9年前發布 | 14K 次閱讀 Hadoop 分布式/云計算/大數據

接下來有可能會用到Hadoop相關的知識, 所以這幾天就在Vmware里面嘗試著搭建了一下. 感覺還行. 所以趁著還記得, 就寫下這篇博客, 幫助自己以后回顧, 也幫助那些準備接觸Hadoop的童鞋. 因為這也是自己第一次搭建Hadoop.

首先, 我們需要3臺機器, 這里我是在Vmware里面創建了3臺虛擬機, 來保證我的Hadoop完全分布式的最基本配置.我這里選擇的CentOS, 因為RedHat系列,在企業中比較的受歡迎.安裝好后,最后的環境信息:

IP地址

h1: 192.168.230.133  
h2: 192.168.230.160  
h3: 192.168.230.161

這里遇見到一個小疑問, 就是修改機器的主機名字.

vim /etc/sysconfig/network

然后重啟電腦就OK了. 最基礎的環境已經有了, 就是3臺機器.

其實,搭建Hadoop的也是不很麻煩,我們來整體的看一下需要哪幾個步驟?

  1. 配置hosts
  2. 建立hadoop運行賬號
  3. 配置ssh免密碼連入
  4. 下載并解壓hadoop安裝包
  5. 配置namenode, 修改site文件
  6. 配置hadoop-env.sh
  7. 配置master和是slave文件
  8. 向各節點復制hadoop
  9. 格式化namenode
  10. 啟動hadoop
  11. 用jps檢驗各后臺進程是否成功啟動

我們一步步的來細分, 也許中間有錯誤或者不足的地方,希望高手們指正. 因為我這里也是初學中,歡迎拍磚.

配置hosts

我們需要在3臺機器上面都碰上host,用一個主機名字來代替一串IP地址,世界一下子就清凈了.

sudo vim /etc/hosts  
192.168.230.133 h1  
192.168.230.160 h2  
192.168.230.161 h3

建立hadoop運行賬號

在這里有人可能覺得不專業了, 因為我想把Hadoop安裝在hadoop用戶目錄下面, 其實當然最好的方法還是安裝公用的目錄,比如:/usr/local. 我這里只是測試性的, 之后的Hadoop就安裝在hadoop用戶下了.

sudo groupadd hadoop  
sudo useradd -s /bin/bash -d /home/hadoop -m hadoop -g hadoop  
sudo passwd hadoop

這里解釋一下3條命令的含義:

  1. 建立一個hadoop的組
  2. 添加一個hadoop的用戶, 并且在home下面創建hadoop的用戶目錄, 并添加到hadoop組里
  3. 為hadoop設置密碼

配置ssh免密碼連入

這步也算重要, 一般在很多機器中, 相同用戶之間能夠相互免密碼訪問,在效率上是一件很好的事情,特別是N多機器集群的時候,你想,一個腳本就把所有的事請干完了,多爽.

這里之前運維跟我分享了一個免密碼的規則. 大概是這樣子的:

線下環境 -->跳板機 --> 生產環境, 這每一個最好還是需要輸入密碼, 因為這是為了安全起見,然后在每一層相同的用戶免密碼登入是沒問題的, 確實是這樣子的一個模式.

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa  
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

分析一下: 1. 生成一個公鑰,私鑰
2. 將公鑰放入到authorized_keys中去

這里有個問題, 就是需要將其權限修改到600才行

[hadoop@h1 .ssh]$ chown 600 authorized_keys

h1

ssh-copy-id -i ~/.ssh/id_dsa.pub hadoop@h2

ssh-copy-id -i ~/.ssh/id_dsa.pub hadoop@h3

h2

ssh-copy-id -i ~/.ssh/id_dsa.pub hadoop@h1

ssh-copy-id -i ~/.ssh/id_dsa.pub hadoop@h3

h3

ssh-copy-id -i ~/.ssh/id_dsa.pub hadoop@h1

ssh-copy-id -i ~/.ssh/id_dsa.pub hadoop@h2

下載并解壓hadoop安裝包

這次是下載的最新版的: http://mirrors.cnnic.cn/apache/hadoop/common/current/ 2.7.0

我們在h1上配置好所有的需要配置好的參數, 最后全部復制到h2,h3中去.

Hadoop v2.7.0的配置文件在/home/hadoop/hadoop/etc/hadoop下面, 我們需要一個個的去配置:

[hadoop@h1 hadoop]$ vim core-site.xml

<configuration>  
        <property>
                <name>fs.default.name</name>
                <value>hdfs://h1:9000</value>
                <final>true</final>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/home/hadoop/hadoop/tmp</value>
                <description>A bas for other temporary directories</description>
        </property>
</configuration>

然后:

[hadoop@h1 hadoop]$ vim hadoop-env.sh

export JAVA_HOME=/opt/java/jdk1.7.0_55

這里如果不知道JAVA_HOME不知道在哪兒? 就在terminal中直接敲echo $JAVA_HOME就看見了.

再然后:

[hadoop@h1 hadoop]$ vim hdfs-site.xml

<configuration>  
        <property>
                <name>dfs.name.dir</name>
                <value>/home/hadoop/hdfs/name</value>
        </property>
        <property>
                <name>dfs.data.dir</name>
                <value>/home/hadoop/hdfs/data</value>
        </property>
        <property>
                <name>dfs.replication</name>
                <value>1</value>                                                                                                                                        </property>
</configuration>

再然后:

[hadoop@h1 hadoop]$ vim mapred-site.xml

<configuration>  
        <property>
                <name>mapred.job.tracker</name>
                <value>h1:9001</value>
                <final>true</final>
        </property>
</configuration>

再然后:

[hadoop@h1 hadoop]$ touch masters
vim masters  
配置進去
h1

再然后:

[hadoop@h1 hadoop]$ vim slaves
配置進入
h2  
h3

向各節點復制hadoop

[hadoop@h1 ~]$ scp -r hadoop h2:~
[hadoop@h1 ~]$ scp -r hadoop h3:~

還需要在3臺寄去上配置系統變量

[hadoop@h1 hadoop]$ vim /etc/profile
export HADOOP_INSTALL=/home/hadoop/hadoop  
export PATH=$PATH:$HADOOP_INSTALL/bin  
export HADOOP_COMMON_LIB_NATIVE_DIR="/home/hadoop/hadoop/lib/native"  
export HADOOP_OPTS="$HADOOP_OPTS -Djava.library.path=/home/hadoop/hadoop/lib"

最后需要 source /etc/profile

好了, 這樣子就起來了.

最后利用jps命令, 就可以看見Hadoop相關的程序都已經起來了.

hadoop有很多的管理后臺可以看:

比如:

http://192.168.230.133:50070/dfshealth.html#tab-overview

差不多了, 接下來會繼續記錄更多有關Hadoop相關的Blogs.

來自:http://www.cyblogs.com/hadoopwan-quan-fen-bu-shi-mo-shi-de-pei-zhi-yu-an-zhuang/

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!