您好,登錄后才能下訂單哦!
生產環境:
3臺機器:master(192.168.0.61),slave1(192.168.0.62),slave2(192.168.0.63)
注意:hostname設置為master/slave1/slave2
操作系統: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目錄,敲回車到底 ,這一步需要先在每臺機器上執行。
在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
反復操作第3步,完成master<-->slave1 master<-->slave2的免密碼登錄
這樣主節點和從節點之間就可以不用密碼直接ssh訪問,另外,在啟動hadoop時需要master ssh master,
因此,在master的~/.ssh下,也執行下cat id_rsa.pub >> authorized_keys即可。
4.安裝JDK到/usr/local下命名為jdk6
然后:
編輯三臺機器的/etc/profile,增加如下內容
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、防火墻
各機器加入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的安裝目錄是放在一起的,這樣一旦日后升級hadoop版本的時候所有的配置文件都會被覆蓋,因 此將配置文件與安裝目錄分離,一
種比較好的方法就是建立一個存放配置文件的目錄,/hadoop/hadoop-config/,然后將 /hadoop/hadoop/conf/目錄中的core-site.xml,slaves,hadoop-env.sh,masters, hdfs-
site.xml,mapred-site.xml,這6個文件拷貝到 /hadoop/hadoop-config/目錄中,并指定環境變量$HADOOP_CONF_DIR指向該目錄。環境變量在/root/.bashrc 中設定。
#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個文件
masters:
master
slaves:
slave1
slave2
#切忌不要創建:/hadoop/hadoop/tmp
hadoop-env.sh:
export JAVA_HOME=/usr/local/jdk6
export HADOOP_PID_DIR=/hadoop/hadoop/tmp
core-site.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:54310</value>
</property>
</configuration>
#切忌不要創建:/hadoop/hadoop/name
#mkdir /hadoop/hadoop/data
hdfs-site.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.name.dir</name>
<value>/hadoop/hadoop/name/</value> #hadoop的name目錄路徑
</property>
<property>
<name>dfs.data.dir</name>
<value>/hadoop/hadoop/data/</value> #hadoop的data目錄路徑
</property>
<property>
<name>dfs.replication</name>
<value>3</value> #指定 HDFS 中每個 Block 被復制的次數,起數據冗余備份的作用。在典型的生產系統中,這個數常常設置為3
</property>
</configuration>
mapred-site.xml:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://master:54311/</value>
</property>
</configuration>
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、啟動所有hadoop守護進程
# ./start-all.sh
說明:
在bin/下面有很多啟動腳本,可以根據自己的需要來啟動。
* start-all.sh 啟動所有的Hadoop守護。包括namenode, datanode, jobtracker, tasktrack
* stop-all.sh 停止所有的Hadoop
* start-mapred.sh 啟動Map/Reduce守護。包括Jobtracker和Tasktrack
* stop-mapred.sh 停止Map/Reduce守護
* start-dfs.sh 啟動Hadoop DFS守護.Namenode和Datanode
* stop-dfs.sh 停止DFS守護
[root@master bin]# jps
6813 NameNode
7278 Jps
7164 JobTracker
7047 SecondaryNameNode
出現4個這樣的進程,且datanode沒有error,同時訪問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簡單測試
#cd /hadoop/hadoop/bin
#./hadoop dfs -mkdir testdir
#./hadoop dfs -put /root/install.log testdir/install.log-dfs
將/root/install.log 存儲到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
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:54310/hbase</value> 注意主機名和端口號要與hadoop的dfs name的對應
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master</value>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>60000</value>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2222</value>
</property>
</configuration>
配置hbase服務器名稱
#vi regionservers
slave1
slave2
3、復制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、測試
在master上啟動
#cd /hadoop/hbase/bin
#./hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
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
----------------------------------------------
總結:
在安裝hadoop-0.21.0+hbase-0.20.6過程中,出現:org.apache.hadoop.hbase.masternotrunningexception異常。
使用hadoop-0.20.2+hbase-0.20.6問題解決。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。