生產(chǎn)環(huán)境:
成都創(chuàng)新互聯(lián)公司是一家專業(yè)提供龍城企業(yè)網(wǎng)站建設(shè),專注與成都做網(wǎng)站、網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、HTML5建站、小程序制作等業(yè)務(wù)。10年已為龍城眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
3臺(tái)機(jī)器:master(192.168.0.61),slave1(192.168.0.62),slave2(192.168.0.63)
注意:hostname設(shè)置為master/slave1/slave2
操作系統(tǒng):rhel5.4 x86_64
master做為namenonde,將slave1和slave2做為datanode
1.在master:(在slave1和slave2上操作和以下相同)
vi /etc/hosts
192.168.0.61 master
192.168.0.62 slave1
192.168.0.63 slave2
2.用root操作
3.免密碼登錄
#ssh-keygen -t rsa #建立ssh目錄,敲回車到底 ,這一步需要先在每臺(tái)機(jī)器上執(zhí)行。
在master上
#scp ~/.ssh/id_rsa.pub root@slave1:/root/.ssh/id_rsa.pub_m 將master上的密鑰傳到slave1的/home/hadoop下
在slave1上
#cat /root/.ssh/id_rsa.pub_m >> ~/.ssh/authorized_keys
#chmod 644 ~/.ssh/authorized_keys
反復(fù)操作第3步,完成master<-->slave1 master<-->slave2的免密碼登錄
這樣主節(jié)點(diǎn)和從節(jié)點(diǎn)之間就可以不用密碼直接ssh訪問(wèn),另外,在啟動(dòng)hadoop時(shí)需要master ssh master,
因此,在master的~/.ssh下,也執(zhí)行下cat id_rsa.pub >> authorized_keys即可。
4.安裝JDK到/usr/local下命名為jdk6
然后:
編輯三臺(tái)機(jī)器的/etc/profile,增加如下內(nèi)容
export JAVA_HOME=/usr/local/jdk6
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export HADOOP_HOME=/hadoop/hadoop
export HBASE_HOME=/hadoop/hbase
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HBASE_HOME/bin
#vi /root/.bashrc
增加
export HADOOP_CONF_DIR=/hadoop/hadoop-config
export HBASE_CONF_DIR=/hadoop/hbase-config
5、防火墻
各機(jī)器加入iptables策略:
#iptables -I INPUT -s 192.168.0.0/255.255.255.0 -j ACCPET
#service iptables save
-----------------------------------------
hadoop配置:
1.下載安裝
#cd /hadoop
#wget http://labs.renren.com/apache-mirror//hadoop/core/hadoop-0.20.2/hadoop-0.20.2.tar.gz
#tar -zxvf hadoop-0.20.2.tar.gz
#ln -s hadoop-0.20.2 hadoop
由于上述目錄中hadoop的配置文件和hadoop的安裝目錄是放在一起的,這樣一旦日后升級(jí)hadoop版本的時(shí)候所有的配置文件都會(huì)被覆蓋,因 此將配置文件與安裝目錄分離,一
種比較好的方法就是建立一個(gè)存放配置文件的目錄,/hadoop/hadoop-config/,然后將 /hadoop/hadoop/conf/目錄中的core-site.xml,slaves,hadoop-env.sh,masters, hdfs-
site.xml,mapred-site.xml,這6個(gè)文件拷貝到 /hadoop/hadoop-config/目錄中,并指定環(huán)境變量$HADOOP_CONF_DIR指向該目錄。環(huán)境變量在/root/.bashrc 中設(shè)定。
#mkdir /hadoop/hadoop-config
#cd /hadoop/hadoop/conf/
#cp core-site.xml slaves hadoop-env.sh masters hdfs-site.xml mapred-site.xml /hadoop/hadoop-config/
2.修改6個(gè)文件
masters:
master
slaves:
slave1
slave2
#切忌不要?jiǎng)?chuàng)建:/hadoop/hadoop/tmp
hadoop-env.sh:
export JAVA_HOME=/usr/local/jdk6
export HADOOP_PID_DIR=/hadoop/hadoop/tmp
core-site.xml:
#切忌不要?jiǎng)?chuàng)建:/hadoop/hadoop/name
#mkdir /hadoop/hadoop/data
hdfs-site.xml:
mapred-site.xml:
3、格式化namenode
#cd /hadoop/hadoop/bin
#./hadoop namenode -format
#cd /hadoop
#scp -r ./* root@slave1:/hadoop/
#scp -r ./* root@slave2:/hadoop/
到slave1和slave2上,分別重做軟鏈接
#cd /hadoop
#rm -rf hadoop
#ln -s hadoop-0.20.2 hadoop
4、啟動(dòng)所有hadoop守護(hù)進(jìn)程
# ./start-all.sh
說(shuō)明:
在bin/下面有很多啟動(dòng)腳本,可以根據(jù)自己的需要來(lái)啟動(dòng)。
* start-all.sh 啟動(dòng)所有的Hadoop守護(hù)。包括namenode, datanode, jobtracker, tasktrack
* stop-all.sh 停止所有的Hadoop
* start-mapred.sh 啟動(dòng)Map/Reduce守護(hù)。包括Jobtracker和Tasktrack
* stop-mapred.sh 停止Map/Reduce守護(hù)
* start-dfs.sh 啟動(dòng)Hadoop DFS守護(hù).Namenode和Datanode
* stop-dfs.sh 停止DFS守護(hù)
[root@master bin]# jps
6813 NameNode
7278 Jps
7164 JobTracker
7047 SecondaryNameNode
出現(xiàn)4個(gè)這樣的進(jìn)程,且datanode沒(méi)有error,同時(shí)訪問(wèn)ui正常才算成功。
ui:http://masterip:50070 --web UI for HDFS name node(s)
http://masterip:50030 --web UI for MapReduce job tracker(s)
http://slaveip:50060 --web UI for task tracker(s)
5、hdfs簡(jiǎn)單測(cè)試
#cd /hadoop/hadoop/bin
#./hadoop dfs -mkdir testdir
#./hadoop dfs -put /root/install.log testdir/install.log-dfs
將/root/install.log 存儲(chǔ)到hdfs中的testdir中,重命名為install.log-dfs
#./hadoop dfs -ls
#./hadoop dfs -ls testdir
----------------------------------
1、hbase安裝部署
#cd /hadoop
#wget http://apache.etoak.com//hbase/hbase-0.20.6/hbase-0.20.6.tar.gz
#tar -zxvf hbase-0.20.6.tar.gz
#ln -s hbase-0.20.6 hbase
#mkdir hbase-config
#cd /hadoop/hbase/conf/
#cp hbase-env.sh hbase-site.xml regionservers /hadoop/hbase-config/
2、配置文件修改
#mkdir /hadoop/hbase/tmp
#vim /hadoop/hbase-config/hbase-env.sh
增加
export JAVA_HOME=/usr/local/jdk6
export HBASE_MANAGES_ZK=true
export HBASE_PID_DIR=/hadoop/hbase/tmp
#vim hbase-site.xml
配置hbase服務(wù)器名稱
#vi regionservers
slave1
slave2
3、復(fù)制hbase文件
在master上
#cd /hadoop
#scp -r hbase-0.20.6 hbase-0.20.6.tar.gz hbase-config root@slave1:/hadoop/
#scp -r hbase-0.20.6 hbase-0.20.6.tar.gz hbase-config root@slave2:/hadoop/
在slave1和slave2上,分別重做軟鏈接
#cd /hadoop
#ln -s hbase-0.20.6 hbase
4、測(cè)試
在master上啟動(dòng)
#cd /hadoop/hbase/bin
#./hbase shell
HBase Shell; enter 'help
Version: 0.20.6, r965666, Mon Jul 19 16:54:48 PDT 2010
hbase(main):001:0> create 'test','data'
0 row(s) in 1.1920 seconds
hbase(main):002:0> list
test
1 row(s) in 0.0200 seconds
hbase(main):003:0> quit
----------------------------------------------
總結(jié):
在安裝hadoop-0.21.0+hbase-0.20.6過(guò)程中,出現(xiàn):org.apache.hadoop.hbase.masternotrunningexception異常。
使用hadoop-0.20.2+hbase-0.20.6問(wèn)題解決。
51cto.com/a/luyoujiaohuan/index.html
http://www.net527.comlinux系統(tǒng)思科論壇Cisco