網上有的hadoop,zookeeper,hbase,apache-hive相關文檔,具體你們能夠百度具體瞭解,本文很少作介紹,本文從最基本的環境搭建入手,純環境搭建。
html
搭建次環境惟一要考慮就是軟件相互之間的兼容性,及服務器內存(最好大點,虛擬機2G以上),固然也能夠經過調啓動參數,調小啓動內存大小。具體文章會適當介紹。java
1、環境準備node
1.查看系統版本mysql
cat /etc/issuelinux
CentOS release 6.8 (Final) web
2.軟件準備sql
軟件自行官網下載,但本身要統一規劃方便後面操做,本文軟件源目錄/usr/local/srcshell
安裝目錄/usr/localapache
賦權限,以備後續步驟安裝軟件[安裝包都在/usr/local/src] vim
chown hadoop.hadoop /usr/local/src –R
3.配置主機名和hosts
三臺機器(內存大於2G) 分別寫hosts、設定hostname
192.168.100.11 mylab1 ----master
192.168.100.12 mylab2 ----slave1
192.168.100.13 mylab3 -----slave2
4.關閉selinux
臨時關閉:
[root@mylab1 ~]# getenforce
Enforcing
[root@mylab1 ~]# setenforce 0
[root@mylab1 ~]# getenforce
Permissive
永久關閉selinux:
vim /etc/selinux/config
修改SELINUX=enforcing爲SELINUX=disabled
5.關閉防火牆iptables
service iptables stop或/etc/init.d/iptables stop
chkconfig iptables off
6.全部機器同步時間
ntpdate time.windows.com
注:必定要作,集羣對時間要求高,否則後面啓動會報錯,也能夠本身搭建ntp服務器(正常線上確定是要其中一臺搭建時間服務器來同步時間的)
7.建立hadoop用戶
Hadoop爲了安裝使用普通用戶登陸
useradd hadoop
echo "hadoop"|passwd --stdin hadoop
增長權限:
visudo
hadoop ALL=(ALL) ALL
8.切換hadoop用戶
su - hadoop
9.配置SSH無密碼登錄
master能夠經過密鑰登錄本機和兩臺slave
master上生成密鑰對:
執行ssh-keygen 命令後一直回車
[hadoop@mylab1 ~]$ ssh-keygen
生成.ssh目錄
ls .ssh/
id_rsa id_rsa.pub
複製~/.ssh/id_rsa.pub 內容到本機和兩臺slave的 ~/.ssh/authorized_keys
設置本機和兩臺slave機器上的~/.ssh/authorized_keys文件權限爲600
chmod 600 ~/.ssh/authorized_keys
cp id_rsa.pub authorized_keys
scp ~/.ssh/authorized_keys hadoop@192.168.100.12:/home/hadoop/.ssh/
scp ~/.ssh/authorized_keys hadoop@192.168.100.13:/home/hadoop/.ssh/
測試:
在master上執行
ssh master
ssh slave1
ssh slave2
能夠直接登錄,即實現master免密碼登陸slave1,slave2
10.建立備用目錄
mkdir -pv /usr/local/storage/zookeeper/{data,logs} #建立zookeeper數據目錄和日誌目錄
11.同步:
因爲全部軟件,配置文件,環境配置基本相同,全部本文全部操做均可以在一臺服務器上操做執行,以後經過rsync,或scp等同步工具,同步到其餘服務器,可避免重複性操做,切記,切記,切記
例如:rsync –av /usr/local/storage/ mylab2:/usr/local
2、部署應用
1.安裝JAVA環境
先除已有jdk(若是有) rpm -e jdk(以前版本)
安裝jdk
rpm -ivh jdk-7u79-linux-x64.rpm
修改環境變量:vim /home/hadoop/.bashrc
JAVA_HOME=/usr/java/jdk1.7.0_79
JRE_HOME=/usr/java/jdk1.7.0_79/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPAT
使環境變量生效:
source /home/hadoop/.bashrc
驗證jdk安裝成功
java -version 版本顯示爲安裝版本即正常
#注:全部服務器都要安裝jdk
2.安裝hadoop2.7
把hadoop安裝包解壓到每個節點(能夠解壓到一個節點,而後完成後續第2步的配置後,再scp拷貝到其他節點)的固定目錄下
1.1解壓hadoop,並修改用戶及用戶組爲hadoop
cd /usr/local/src/
tar xf hadoop-2.7.1.tar.gz
chown -R hadoop.hadoop hadoop-2.7.1
mv hadoop-2.7.1 /usr/local/hadoop
1.2執行一下命令檢查hadoop是否可用
cd /usr/local/hadoop
./bin/hadoop version
查看是否顯示hadoop版本信息
Hadoop 2.7.1 顯示即正常,不然軟件包有問題從新下載。
1.3在hadoop目錄下建立以下目錄
cd /usr/local/hadoop
mkdir tmp dfs dfs/data dfs/name
1.四、設置Hadoop環境變量
vim /home/hadoop/.bashrc
JAVA_HOME=/usr/java/jdk1.7.0_79
JRE_HOME=/usr/java/jdk1.7.0_79/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPAT
export HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
export HBASE_HOME=/usr/local/hbase
export ZOOKEEPER=/usr/local/zookeeper
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export HDFS_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export YARN_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:$HIVE_HOME/bin:$ZOOKEEPER/bin使環境變量生效
source ~/.bashrc
同步至其餘服務器:
例如:
rsync –av /home/hadoop/.bashrc mylab2:/home/hadoop/
1.四、配置文件修改:
集羣/分佈式模式須要修改 /usr/local/hadoop/etc/hadoop 中的5個配置文件,更多設置項可點擊查看官方說明,這裏僅設置了正常啓動所必須的設置項: slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml
1.一、core-site.xml
master上 vim /usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://192.168.100.11:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131702</value>
</property>
<!--指定能夠在任何IP訪問-->
<property>
<name>hadoop.proxyuser.hduser.hosts</name>
<value>*</value>
</property>
<!--指定全部用戶能夠訪問-->
<property>
<name>hadoop.proxyuser.hduser.groups</name>
<value>*</value>
</property>
<!-- 指定zookeeper地址 -->
<property>
<name>ha.zookeeper.quorum</name>
<value>mylab1:2181,mylab2:2181,mylab3:2181</value>
</property>
</configuration>
1.二、hdfs-site.xml
dfs.replication 通常設爲 3,但咱們只有2個 Slave 節點,因此 dfs.replication 的值仍是設爲 2
master上 vi /usr/local/hadoop/etc/hadoop/hdfs-site.xml
<configuration>
<!--指定支持高可用自動切換機制-->
<property>
<name>dfs.ha.automatic-failover.enabled</name>
<value>true</value>
</property>
<!--指定namenode名稱空間的存儲地址-->
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/dfs/name</value>
</property>
<!--指定datanode數據存儲地址-->
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>192.168.100.11:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>mylab1:2181,mylab2:2181,mylab3:2181</value>
</property>
</configuration>
1.三、mapred-site.xml
須要先重命名,默認文件名爲 mapred-site.xml.template
master上 vi /usr/local/hadoop/etc/hadoop/mapred-site.xml
<configuration>
<!-- 配置MapReduce運行於yarn中 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- 配置 MapReduce JobHistory Server 地址 ,默認端口10020 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.100.11:10020</value>
</property>
<!-- 配置 MapReduce JobHistory Server web ui 地址, 默認端口19888 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>192.168.100.11:19888</value>
</property>
</configuration>
1.四、yarn-site.xml
master上 vi /usr/local/hadoop/etc/hadoop/yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>192.168.100.11:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>192.168.100.11:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>192.168.100.11:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>192.168.100.11:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>192.168.100.11:8088</value>
</property>
<property>
<name>ha.zookeeper.quorum</name>
<value>mylab1:2181,mylab2:2181,mylab3:2181</value>
</property>
<!--配置與zookeeper的鏈接地址-->
<property>
<name>yarn.resourcemanager.zk-state-store.address</name>
<value>mylab1:2181,mylab2:2181,mylab3:2181</value>
</property>
<property>
<name>yarn.resourcemanager.store.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
</property>
<property>
<name>yarn.resourcemanager.zk-address</name>
<value>mylab1:2181,mylab2:2181,mylab3:2181</value>
</property>
</configuration>
1.五、 slaves
文件 slaves,將做爲 DataNode 的主機名寫入該文件,每行一個,默認爲 localhost,因此在僞分佈式配置時,節點即做爲 NameNode 也做爲 DataNode。分佈式配置能夠保留 localhost,也能夠刪掉,讓 Master 節點僅做爲 NameNode 使用。
本教程讓 Master 節點僅做爲 NameNode 使用,所以將文件中原來的 localhost 刪除,添加以下內容ip或數據節點主機名便可:
192.168.100.12 ---slave1
192.168.100.13 ----slave2
1.五、同步
rsync av /usr/local/hadoop mylab2:/usr/local/
rsync av /usr/local/hadoop mylab3:/usr/local/
三、Zookeeper集羣部署
zookeeper集羣搭建要至少3臺服務器,因此三臺服務器都要部署zookeeper;安裝在hadoop用戶上
tar xf zookeeper-3.4.6.tar.gz -C /usr/local/
mv /usr/local/zookeeper-3.4.6/ /usr/local/zookeeper
cp zoo_sample.cfg zoo.cfg
編輯配置文件
vim zoo.cfg
tickTime=2000
initLimit=5
syncLimit=2
#dataDir=/tmp/zookeeper
dataDir=/usr/local/storage/zookeeper/data
dataLogDir=/usr/local/storage/zookeeper/logs
clientPort=2181
server.1=mylab1:2888:3888
server.2=mylab2:2888:3888
server.3=mylab3:2888:3888
建立zookeeper的數據文件和日誌存放目錄
mkdir /usr/local/storage/zookeeper/data /usr/local/storage/zookeeper/logs
在三臺zookeeper的/usr/local/storage/zookeeper/data目錄下分別編輯myid
echo 1 > /usr/local/storage/zookeeper/data/myid
echo 2 > /usr/local/storage/zookeeper/data/myid
echo 3 > /usr/local/storage/zookeeper/data/myid
同步到其餘hadoop節點
scp -r /usr/local/zookeeper mylab2:/usr/local/
四、部署hbase
tar xf hbase-1.2.1-bin.tar.gz
配置文件修改
regionservers 文件
mylab1
mylab2
mylab3
編輯修改hbase-site.xml文件
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://192.168.100.11:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/usr/loca/storage/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>mylab1,mylab2,mylab3</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
</property>
<!--跟zookeeperper配置的dataDir一致-->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/storage/zookeeper/data</value>
</property>
</configuration>
禁用hbase自帶的zookeeper
vi /usr/local/hbase/conf/hbase-env.sh
export HBASE_MANAGES_ZK=false
建立hbase-site.xml配置文件中的hbase目錄
mkdir /usr/loca/storage/hbase
同步軟件到其餘節點
rsync av /usr/local/hbase mylab2:/usr/local/
五、部署hive
cp hive-env.sh.template hive-env.sh
cp hive-site.xml.template hive-site.xml
編輯配置文件
vim hive-site.xml
<configuration>
<!--在hdfs上hive數據存放目錄,啓動hadoop後須要在hdfs上手動建立-->
<property>
<name>hive.metastore.warehouse.dir</name>
<value>hdfs://192.168.100.11:9000/user/hive/warehouse</value>
</property>
<property>
<name>datanucleus.readOnlyDatastore</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>false</value>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateTables</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateColumns</name>
<value>true</value>
</property>
<!--經過jdbc協議鏈接mysql的hive庫-->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.100.11:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<!--jdbc的mysql驅動-->
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!--mysql用戶名-->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
</property>
<!--mysql用戶密碼-->
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
</property>
<!--hive的web頁面-->
<property>
<name>hive.hwi.war.file</name>
<value>lib/hive-hwi-2.0.0.war</value>
</property>
<!--指定hive元數據訪問路徑,能夠有多個,逗號分隔-->
<property>
<name>hive.metastore.uris</name>
<value>thrift://192.168.100.11:9083</value>
</property>
<!--hiveserver2的HA-->
<property>
<name>hive.zookeeper.quorum</name>
<value>mylab1,mylab2,mylab3</value>
</property>
</configuration>
添加mysql驅動
cp /usr/local/src/mysql-connector-java-5.1.38-bin.jar /usr/local/hive/lib/
添加hive web頁面的war包
下載hive源碼包,apache-hive-2.0.0-src.tar.gz解壓進入hwi/web
jar cvf hive-hwi-2.0.0.war ./*
cp hive-hwi-2.0.0.war /usr/local/hive/lib/
從hbase/lib下複製必要jar包到hive/lib下
cp /usr/local/hbase/lib/hbase-client-1.2.1.jar /usr/local/hbase/lib/hbase-common-1.2.1.jar /usr/local/hive/lib
同步hive和hadoop的jline版本
cp /usr/local/hive/lib/jline-2.12.jar /usr/local/hadoop/share/hadoop/yarn/lib
查看版本
cd /home/hadoop/hadoop/share/hadoop/yarn/lib
find ./ -name "*jline*jar"
刪除低版本的jline 0.9
rm jline-0.9.94.jar
複製jdk的tools.jar到hive/lib下
cp $JAVA_HOME/lib/tools.jar /usr/local/hive/lib
六、部署mysql
下載集成包解壓,安裝mysql
MySQL-5.6.33-1.linux_glibc2.5.x86_64.rpm-bundle.tar
配置MySQL登陸密碼
cat /root/.mysql_secret
#獲取MySQL安裝時生成的隨機密碼aHoUaEJFav0X7hlG
service mysql start
#啓動MySQL服務
mysql -uroot -paHoUaEJFav0X7hlG
#進入MySQL,使用以前獲取的隨機密碼
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
#在MySQL命令行中設置root帳戶的密碼爲123456
建立hive用戶,密碼hive
CREATE USER hive IDENTIFIED BY 'hive';
GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%' WITH GRANT OPTION;
或:GRANT ALL PRIVILEGES ON *.* TO 'hive'@'%'IDENTIFIED BY 'hive' WITH GRANT OPTION;
flush privileges;
用建立的hive用戶登陸mysql並建立hive庫
mysql -uhive -phive
create database hive;
#注:此處個人mysql是在主節點部署的
七、啓動
Hadoop集羣首次啓動過程
1.啓動zookeeper
若是zookeeper集羣尚未啓動的話, 首先把各個zookeeper起來。
/home/hadoop/zookeeper/bin/zkServer.sh start (記住全部的zookeeper機器都要啓動)
/home/hadoop/zookeeper/bin/zkServer.sh status (1個leader,2個follower)
輸入jps,會顯示啓動進程:QuorumPeerMain
二、啓動hadoop
首次啓動須要先在 Master 節點執行 NameNode 的格式化:
/usr/local/hadoop/bin/hdfs namenode -format
顯示無報錯即爲正常
在master上操做便可,兩個slave會自動啓動
啓動服務
/usr/local/hadoop/sbin/start-all.sh
中止服務
/usr/local/hadoop/sbin/stop-all.sh
瀏覽器訪問:
http://192.168.100.11:8088/
http://192.168.100.11:50070
三、啓動hbase
主master節點安裝目錄下
/bin/start-hbase.sh
驗證安裝成功
hbase shell ----進入hbase命令行
list ---輸入list命令
hbase(main):001:0> list
TABLE
0 row(s) in 0.5530 seconds
=> []
help get 能夠查看命令幫助
查看進程爲:HMaster,HRegionServer ---主節點爲2個
從節點進程爲:HRegionServer
經過web UI訪問hbase狀態
http://192.168.100.11:16010/master-status
4.啓動hive
先在hdfs上建立好hive存儲數據的目錄
/bin/hadoop fs -mkdir /tmp
/bin/hadoop fs -mkdir -p /user/hive/warehouse
/bin/hadoop fs -chmod g+w /tmp
/bin/hadoop fs -chmod g+w /user/hive/warehouse
hive 遠程服務 (端口號10000) 啓動方式[metastore和hiveserver2在同一臺上啓動便可]
nohup /usr/local/hive/bin/hive --service metastore &> metastore.log &
nohup /usr/local/hive/bin/hive --service hiveserver2 &> hiveserver2.log &
hive 命令行模式
/home/hadoop/hive/bin/hive
或者輸入
hive --service cli
查看進程爲:2個RunJar
#注:能夠在任意一臺服務器上啓動hive,均可以。
八、查看啓動進程
經過命令 jps 能夠查看各個節點所啓動的進程。正確的話,在 Master 節點上能夠看到 NameNode、ResourceManager、SecondrryNameNode進程
Jps
Master上:
29162 RunJar
28442 HMaster
28049 ResourceManager
28999 RunJar
27607 NameNode
29328 Jps
28571 HRegionServer
27448 QuorumPeerMain
27802 SecondaryNameNode
在 Slave 節點能夠看到 DataNode 和 NodeManager 進程
Slave上:
30086 RunJar
28962 DataNode
29834 HRegionServer
30245 RunJar
28868 QuorumPeerMain
29075 NodeManager
程序啓動成功後能夠在任意一臺啓動hive
能夠在啓動MR-JobHistory服務,
sbin/mr-jobhistory-daemon.sh start historyserver
Hadoop2 MR-JobHistory服務介紹
1)MR-JobHistory服務目標
主要是向用戶提供歷史的mapred Job 查詢
詳細解釋:
a)在運行MR Job時,MR 的 ApplicationMaster會根據mapred-site.xml配置文件中的配置,將MR Job的job history信息保存到指定的hdfs路徑(首先保存到臨時目錄,而後mv到最終目錄)
b)若是在yarn-site.xml中,沒有配置nodemanage的LogAggregation功能,則historyserver沒法提供mr日誌明細查詢的功能(在提交mr job時,yarn和mapred的配置都是必須的)
c)historyserver向外提供兩個接口,web接口能夠提供jobhistory和明細日誌查詢的功能,而restApi只提供jobhistory查詢的功能
九、測試
hdfs dfs -copyFromLocal ./LICENSE.txt /123
hdfs dfs -ls /123
用wordcount分析LICENSE.txt
bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.1.jar wordcount /123/LICENSE.txt /output/123
bin/hdfs dfs -ls /output/123 查看分析後的文件
bin/hdfs dfs -cat /output/123/part-r-00000 查看分析結果
執行分佈式實例
首先建立 HDFS 上的用戶目錄
hdfs dfs -mkdir -p /user/hadoop
將 /usr/local/hadoop/etc/hadoop 中的配置文件做爲輸入文件複製到分佈式文件系統中:
hdfs dfs -mkdir input
hdfs dfs -put /usr/local/hadoop/etc/hadoop/*.xml input
查看input目錄下文件
hdfs dfs -ls input
報錯總結:
若出現提示 「WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform… using builtin-java classes where applicable」,該 WARN 提示能夠忽略,不會影響 Hadoop 正常運行(可經過編譯 Hadoop 源碼解決,解決方法請自行搜索)。
若出現提示 「INFO metrics.MetricsUtil: Unable to obtain hostName java.net.UnknowHostException」,這須要執行以下命令修改 hosts 文件,爲你的主機名增長IP映射:
Datanode不能啓動
Initialization failed for Block pool <registering> (Datanode Uuid unassigned)
解決方案:
將目錄、dfs、name、data清空
是重複啓動到時key值不同
Hmaster消失 ERROR: Can't get master address from ZooKeeper; znode data == null
這個問題這裏是因爲啓動hbase失敗形成,主要緣由是由於配置文件hbase-site.xml中hdfs端口配置錯誤致使,幫助文檔中使用的是8020,而個人hadoop分佈集羣用的是9000默認端口,修改配置以下:
gedit hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop0:9000/hbase</value>
</property>
參考:http://f.dataguru.cn/thread-519459-1-1.html
軟件網盤地址連接:http://pan.baidu.com/s/1sliZehR 密碼:4bd1
參考文檔:http://www.powerxing.com/install-hadoop-in-centos/
http://www.powerxing.com/install-hadoop-cluster/