hadoop-2.7.1+zookeeper-3.4.8+hbase-1.2.1+apache-hive-2.0.0完全分佈式集羣

網上有的hadoop,zookeeper,hbase,apache-hive相關文檔,具體大家可以百度具體瞭解,本文不多做介紹,本文從最基本的環境搭建入手,純環境搭建。

搭建次環境唯一要考慮就是軟件相互之間的兼容性,及服務器內存(最好大點,虛擬機2G以上),當然也可以通過調啓動參數,調小啓動內存大小。具體文章會適當介紹。


一、環境準備

1.查看系統版本

cat /etc/issue

CentOS release 6.8 (Final)   

2.軟件準備

軟件自行官網下載,但自己要統一規劃方便後面操作,本文軟件源目錄/usr/local/src

安裝目錄/usr/local

賦權限,以備後續步驟安裝軟件[安裝包都在/usr/local/src] 

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 [email protected]:/home/hadoop/.ssh/

scp ~/.ssh/authorized_keys [email protected]:/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



二、部署應用

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.4、設置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.4、配置文件修改:

集羣/分佈式模式需要修改 /usr/local/hadoop/etc/hadoop 中的5個配置文件,更多設置項可點擊查看官方說明,這裏僅設置了正常啓動所必須的設置項: slaves、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml

1.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.2、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.3、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.4、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.5、 slaves 

文件 slaves,將作爲 DataNode 的主機名寫入該文件,每行一個,默認爲 localhost,所以在僞分佈式配置時,節點即作爲 NameNode 也作爲 DataNode。分佈式配置可以保留 localhost,也可以刪掉,讓 Master 節點僅作爲 NameNode 使用。

本教程讓 Master 節點僅作爲 NameNode 使用,因此將文件中原來的 localhost 刪除,添加如下內容ip或數據節點主機名即可:

192.168.100.12  ---slave1

192.168.100.13 ----slave2


1.5、同步

rsync  av /usr/local/hadoop mylab2:/usr/local/

rsync  av /usr/local/hadoop mylab3:/usr/local/


3、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/



4、部署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/


5、部署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


6、部署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是在主節點部署的

7、啓動

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

2、啓動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

3、啓動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,都可以。

8、查看啓動進程

通過命令 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查詢的功能



9、測試

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/






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章