轉自: 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的也是不很麻煩,咱們來總體的看一下須要哪幾個步驟? 安全
咱們一步步的來細分, 也許中間有錯誤或者不足的地方,但願高手們指正. 由於我這裏也是初學中,歡迎拍磚. 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條命令的含義:
配置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.