Hadoop徹底分佈式模式的配置與安裝

轉自: http://www.cyblogs.com/ 我本身的博客~ html

首先, 咱們須要3臺機器, 這裏我是在Vmware裏面建立了3臺虛擬機, 來保證個人Hadoop徹底分佈式的最基本配置.我這裏選擇的CentOS, 由於RedHat系列,在企業中比較的受歡迎.安裝好後,最後的環境信息: java

IP地址 node

h1: 192.168.230.133  h2: 192.168.230.160  h3: 192.168.230.161 

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

vim /etc/sysconfig/network

而後重啓電腦就OK了. 最基礎的環境已經有了, 就是3臺機器. vim

其實,搭建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檢驗各後臺進程是否成功啓動

咱們一步步的來細分, 也許中間有錯誤或者不足的地方,但願高手們指正. 由於我這裏也是初學中,歡迎拍磚. bash

配置hosts 運維

咱們須要在3臺機器上面都碰上host,用一個主機名字來代替一串IP地址,世界一會兒就清淨了. ssh

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.

相關文章
相關標籤/搜索