Hadoop2對(duì)HDFS的改進(jìn)很大,支持HDFS(NameNode) 和ResourceManager高可用性,避免集群中單點(diǎn)故障造成整個(gè)集群不可用。那么,從本文開始將部署一套高可用Hadoop集群及家族中相關(guān)開源系統(tǒng),具體根據(jù)下面規(guī)劃來,本文只部署高可用Hadoop集群,后續(xù)很快更新其他軟件部署及使用。 一、部署前準(zhǔn)備 操作系統(tǒng):CentOS7_x64 安裝目錄:/opt 1. 節(jié)點(diǎn)分配 HostName | IP | Hadoop | HBase | Zookeeper | Hive | HMaster0 | 192.168.18.215 | NameNode | HMaster | / | Hive | HMaster1 | 192.168.18.216 | NameNode | HMaster | / | Hive-client
| HSlave0 | 192.168.18.217 | DataNode | HRegionServer | QuorumPeerMain | / | HSlave1 | 192.168.18.218 | DataNode | HRegionServer | QuorumPeerMain | / | HSlave2 | 192.168.18.219 | DataNode | HRegionServer | QuorumPeerMain | / |
2. 版本及功能
軟件名
| 版本號(hào) | 功能 | Hadoop | hadoop-2.6.0.tar.gz | 為海量數(shù)據(jù)提供分布式存儲(chǔ)(HDFS)和分布式計(jì)算(YARN)。 | HBase | hbase-1.0.1.1-src.tar.gz | 基于Hadoop的分布式、面向列的NoSQL數(shù)據(jù)庫(kù),適用于非結(jié)構(gòu)化數(shù)據(jù)存儲(chǔ)的數(shù)據(jù)庫(kù)。 | Zookeeper | zookeeper-3.4.6.tar.gz | 一個(gè)分布式應(yīng)用程序協(xié)調(diào)服務(wù),為應(yīng)用提供一致性服務(wù),是Hadoop和Hbase的重要組件。 | Hive | apache-hive-1.2.0-bin.tar.gz | 基于Hadoop的一個(gè)數(shù)據(jù)倉(cāng)庫(kù)工具,將結(jié)構(gòu)化的數(shù)據(jù)文件映射成一張表,并提供簡(jiǎn)單的SQL查詢功能,將SQL語句轉(zhuǎn)換為MapReduce任務(wù)運(yùn)行處理。 | Phoenix
| phoenix-4.4.0-HBase-1.0-bin.tar.gz | Hbase的SQL驅(qū)動(dòng),Phoenix讓Hbase支持以JDBC方式訪問,并將SQL查詢轉(zhuǎn)換成Hbase的掃描和相應(yīng)的操作。 | JDK | jdk-7u79-linux-x64.gz | JAVA運(yùn)行環(huán)境 | Hadoop生態(tài)系統(tǒng)下載地址:http://www./dist/ JDK下載地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html |
3. 邏輯結(jié)構(gòu)圖 
NameNode(NN) HA實(shí)現(xiàn)方式: 一種是將NN維護(hù)的元數(shù)據(jù)保存一份到NFS上,當(dāng)NN故障,可以通過另一臺(tái)NNe讀取NFS目錄中的元數(shù)據(jù)備份進(jìn)行恢復(fù)工作,需要手動(dòng)進(jìn)行操作,并不是真正意義上的HA方案。 另一種是準(zhǔn)備一臺(tái)備用NN節(jié)點(diǎn),通過定期下載NN的元數(shù)據(jù)和日志文件來備份,當(dāng)NN故障時(shí),可以通過這臺(tái)進(jìn)行恢復(fù),由于主備節(jié)點(diǎn)元數(shù)據(jù)和日志并不是實(shí)時(shí)同步,所以會(huì)丟失一些數(shù)據(jù)。 前兩種方案都不是很理想,社區(qū)提供一種更好的方案,基于QJM(Qurom Journal Manager)的共享日志方案。QJM的基本原理是NN(Active)把日志寫本地和2N+1(奇數(shù))臺(tái)JournalNode上,當(dāng)數(shù)據(jù)操作返回成功時(shí)才寫入日志,這個(gè)日志叫做editlog,而元數(shù)據(jù)存在fsimage文件中,NN(Standby)定期從JournalNode上讀取editlog到本地。在這手動(dòng)切換的基礎(chǔ)上有開發(fā)了基于Zookeeper的ZKFC(ZookeeperFailover Controller)自動(dòng)切換機(jī)制,Active和Standby節(jié)點(diǎn)各有ZKFC進(jìn)程監(jiān)控NN監(jiān)控狀況,定期發(fā)送心跳,當(dāng)Active節(jié)點(diǎn)故障時(shí)Standby會(huì)自動(dòng)切換為ActiveNode,我們這次就用的此方案,如下圖所示。 
ResourceManager(RM) HA實(shí)現(xiàn)方式: RM將狀態(tài)信息存儲(chǔ)在Zookeeper中,當(dāng)Active故障,Standby切換為Active后,從ZK讀取相應(yīng)的作業(yè)信息,重新構(gòu)建作業(yè)的內(nèi)存信息,然后開始接受NodeManager心跳,并接受客戶端提交作業(yè)的請(qǐng)求等。 二、搭建高可用Hadoop集群 1.基礎(chǔ)環(huán)境配置 1.1 安裝JDK(每臺(tái)配置) 1 2 3 4 5 6 7 8 | # tar zxvf jdk-7u79-linux-x64.gz
# mv jdk1.7.0_79 /usr/local/jdk1.7
# vi /etc/profile
JAVA_HOME= /usr/local/jdk1 .7
PATH=$PATH:$JAVA_HOME /bin
CLASSPATH=$JAVA_HOME /lib :$JAVA_HOME /jre/lib
export JAVA_HOME PATH CLASSPATH
# source /etc/profile #使配置生效
|
1.2 修改主機(jī)名,并添加hosts文件(每臺(tái)配置) 1 2 3 | # hostname HMaster0
# vi /etc/hostname
HMaster0
|
1 2 3 4 5 6 7 8 | # cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4localhost4.localdomain4
::1 localhost localhost.localdomainlocalhost6 localhost6.localdomain6
192.168.18.215 HMaster0
192.168.18.216 HMaster1
192.168.18.217 HSlave0
192.168.18.218 HSlave1
192.168.18.219 HSlave2
|
1.3 配置SSH無密碼登陸(在HMaster1做同樣的操作) 1 2 3 4 5 6 7 8 9 10 11 12 | # ssh-kegen #一直回車創(chuàng)建秘鑰對(duì)
[root@HMaster0] # cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys
[root@HMaster0] # scp /root/.ssh/authorized_keys root@HMaster0:/root/.ssh
[root@HMaster0] # scp /root/.ssh/authorized_keys root@HMaster1:/root/.ssh
[root@HMaster0] # scp /root/.ssh/authorized_keys root@HSlave0:/root/.ssh
[root@HMaster0] # scp /root/.ssh/authorized_keys root@HSlave1:/root/.ssh
[root@HMaster0] # scp /root/.ssh/authorized_keys root@HSlave2:/root/.ssh
[root@HMaster0] # ssh root@HMaster0 'chmod 600 /root/.ssh/authorized_keys && chmod 700 /root/.ssh'
[root@HMaster0] # ssh root@HMaster1 'chmod 600 /root/.ssh/authorized_keys && chmod 700 /root/.ssh'
[root@HMaster0] # ssh root@HSlave0 'chmod 600 /root/.ssh/authorized_keys && chmod 700 /root/.ssh'
[root@HMaster0] # ssh root@HSlave1 'chmod 600 /root/.ssh/authorized_keys && chmod 700 /root/.ssh'
[root@HMaster0] # ssh root@HSlave2 'chmod 600 /root/.ssh/authorized_keys && chmod 700 /root/.ssh'
|
現(xiàn)在就可以不用密碼登陸某一臺(tái)了。 2. Zookeeper集群安裝與配置(三臺(tái)HSlave配置) 2.1 安裝與配置 1 2 3 4 | # tar zxvf zookeeper-3.4.6.tar.gz
# mv zookeeper-3.4.6 /opt
# cd /opt/zookeeper-3.4.6/conf
# cp zoo_sample.cfg zoo.cfg
|
1 2 3 4 5 6 7 8 9 10 | # vi zoo.cfg
tickTime=2000
initLimit=10
syncLimit=5
dataDir= /home/zookeeper/data
dataLogDir= /home/zookeeper/logs
clientPort=2181
server.0=HSlave0:2888:3888
server.1=HSlave1:2888:3888
server.2=HSlave2:2888:3888
|
參數(shù)說明: tickTime:ZK服務(wù)器之間或客戶端與服務(wù)器之間間隔多長(zhǎng)時(shí)間發(fā)送一個(gè)心跳,單位毫秒 initLimit:ZK服務(wù)器集群中連接Leader的Follower服務(wù)器初始化連接時(shí)最長(zhǎng)忍受多長(zhǎng)心跳時(shí)間間隔(5*20000=10s) syncLimit:標(biāo)識(shí)Leader與Follower同步消息,如果超過時(shí)間(5*2000=10s),未完成同步,將剔除這個(gè)節(jié)點(diǎn),所有連接此Follower服務(wù)器的客戶端將連接到另一個(gè)Foolower服務(wù)器上 dataDir:ZK保存數(shù)據(jù)的目錄,默認(rèn)情況下,ZK也會(huì)將日志文件保存在此目錄 dataLogDir:指定日志文件目錄 clientPort:客戶端連接ZK服務(wù)器端口 server.0:第一個(gè)0代表第幾號(hào)ZK服務(wù)器,HSlave0是這個(gè)服務(wù)器的主機(jī)名或IP,2888是這個(gè)ZK服務(wù)器與集群中Leader服務(wù)器交換信息的端口,3888是Leader服務(wù)器出現(xiàn)故障時(shí),用這個(gè)端口通信重新選舉,在選出一個(gè)新的Leader 2.2 創(chuàng)建目錄和id文件(三臺(tái)HSlave對(duì)應(yīng)操作) # mkdir /home/zookeeper/data # mkdir /home/zookeeper/logs # vi /home/zookeeper/data/myid 0 #必須創(chuàng)建這個(gè)id,否則啟動(dòng)會(huì)報(bào)錯(cuò)。分別ZK集群節(jié)點(diǎn)創(chuàng)建myid號(hào),myid一定對(duì)應(yīng)好zoo.cfg中配置的server后面0、1和2這個(gè)ZK號(hào) 2.3 分別啟動(dòng)三個(gè)ZK節(jié)點(diǎn)(三臺(tái)HSlave操作) # /opt/zookeeper-3.4.6/bin/zkServer.sh start 注意:每次都需要分別啟動(dòng)ZK節(jié)點(diǎn),不能通過hadoop管理啟動(dòng) 2.4 檢查是否啟動(dòng)成功 分別查看ZK每個(gè)節(jié)點(diǎn)狀態(tài)可以看到有兩個(gè)follower節(jié)點(diǎn),一個(gè)leader節(jié)點(diǎn): # /opt/zookeeper-3.4.6/bin/zkServer.sh status 1 2 3 4 5 6 | JMX enabled by default
Using config: /opt/zookeeper-3 .4.6 /bin/ .. /conf/zoo .cfg
Mode: follower
JMX enabled by default
Using config: /opt/zookeeper-3 .4.6 /bin/ .. /conf/zoo .cfg
Mode: leader
|
在集群任意一節(jié)點(diǎn)都會(huì)啟動(dòng)一個(gè)進(jìn)程: # jps 1990 QuorumPeerMain 博客地址:http://lizhenliang.blog.51cto.com 3. Hadoop安裝與配置(每臺(tái)都同樣配置) 3.1 安裝與配置 # tar zxvf hadoop-2.6.0.tar.gz # mv hadoop-2.6.0 /opt # cd /opt/hadoop-2.6.0/etc/hadoop 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # vi core-site.xml
<configuration>
<!--HDFS路徑邏輯名稱-->
<property>
<name>fs.defaultFS< /name >
<value>hdfs: //hcluster < /value >
< /property >
<!--Hadoop存放臨時(shí)文件位置-->
<property>
<name>hadoop.tmp. dir < /name >
<value> /home/hadoop/tmp < /value >
< /property >
<!--使用的zookeeper集群地址-->
<property>
<name>ha.zookeeper.quorum< /name >
<value>HSlave0:2181,HSlave1:2181,HSlave2:2181< /value >
< /property >
< /configuration >
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | # vi hdfs-site.xml
<configuration>
<property>
<name>dfs.nameservices< /name >
<value>hcluster< /value >
< /property >
<!--NameNode地址集群標(biāo)識(shí)(hcluster),最多兩個(gè)-->
<property>
<name>dfs.ha.namenodes.hcluster< /name >
<value>HMaster0,HMaster1< /value >
< /property >
<!--HDFS文件系統(tǒng)數(shù)據(jù)存儲(chǔ)位置,可以分別保存到不同硬盤,突破單硬盤性能瓶頸,多個(gè)位置以逗號(hào)隔開-->
<property>
<name>dfs.data. dir < /name >
<value> /home/hadoop/hdfs/data < /value >
< /property >
<!--數(shù)據(jù)副本數(shù)量,根據(jù)HDFS臺(tái)數(shù)設(shè)置,默認(rèn)3份-->
<property>
<name>dfs.replication< /name >
<value>3< /value >
< /property >
<property>
<name>dfs.namenode.rpc-address.hcluster.HMaster0< /name >
<value>HMaster0:9000< /value >
< /property >
<!--RPC端口-->
<property>
<name>dfs.namenode.rpc-address.hcluster.HMaster1< /name >
<value>HMaster1:9000< /value >
< /property >
<!--NameNode HTTP訪問地址-->
<property>
<name>dfs.namenode.http-address.hcluster.HMaster0< /name >
<value>HMaster0:50070< /value >
< /property >
<property>
<name>dfs.namenode.http-address.hcluster.HMaster1< /name >
<value>HMaster1:50070< /value >
< /property >
<!--NN存放元數(shù)據(jù)和日志位置-->
<property>
<name>dfs.namenode.name. dir < /name >
<value> file : /home/hadoop/name < /value >
< /property >
<!--同時(shí)把NameNode元數(shù)據(jù)和日志存放在JournalNode上( /home/hadoop/journal/hcluster )-->
<property>
<name>dfs.namenode.shared.edits. dir < /name >
<value>qjournal: //HSlave0 :8485;HSlave1:8485;HSlave2:8485 /hcluster < /value >
< /property >
<!--JournalNode上元數(shù)據(jù)和日志存放位置-->
<property>
<name>dfs.journalnode.edits. dir < /name >
<value> /home/hadoop/journal < /value >
< /property >
<!--開啟NameNode失敗自動(dòng)切換-->
<property>
<name>dfs.ha.automatic-failover.enabled< /name >
<value> true < /value >
< /property >
<!--NameNode失敗自動(dòng)切換實(shí)現(xiàn)方式-->
<property>
<name>dfs.client.failover.proxy.provider.hcluster< /name >
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider< /value >
< /property >
<!--隔離機(jī)制方法,確保任何時(shí)間只有一個(gè)NameNode處于活動(dòng)狀態(tài)-->
<property>
<name>dfs.ha.fencing.methods< /name >
<value>sshfence(hdfs)
shell( /bin/true )< /value >
< /property >
<!--使用sshfence隔離機(jī)制要SSH免密碼認(rèn)證-->
<property>
<name>dfs.ha.fencing. ssh .private-key-files< /name >
<value> /root/ . ssh /id_rsa < /value >
< /property >
< /configuration >
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 | # vi yarn-site.xml
<configuration>
<!--啟用RM高可用-->
<property>
<name>yarn.resourcemanager.ha.enabled< /name >
<value> true < /value >
< /property >
<!--RM集群標(biāo)識(shí)符-->
<property>
<name>yarn.resourcemanager.cluster- id < /name >
<value> rm -cluster< /value >
< /property >
<property>
<!--指定兩臺(tái)RM主機(jī)名標(biāo)識(shí)符-->
<name>yarn.resourcemanager.ha. rm -ids< /name >
<value>rm1,rm2< /value >
< /property >
<!--RM故障自動(dòng)切換-->
<property>
<name>yarn.resourcemanager.ha.automatic-failover.recover.enabled< /name >
<value> true < /value >
< /property >
<!--RM故障自動(dòng)恢復(fù)
<property>
<name>yarn.resourcemanager.recovery.enabled< /name >
<value> true < /value >
< /property > -->
<!--RM主機(jī)1-->
<property>
<name>yarn.resourcemanager. hostname .rm1< /name >
<value>HMaster0< /value >
< /property >
<!--RM主機(jī)2-->
<property>
<name>yarn.resourcemanager. hostname .rm2< /name >
<value>HMaster1< /value >
< /property >
<!--RM狀態(tài)信息存儲(chǔ)方式,一種基于內(nèi)存(MemStore),另一種基于ZK(ZKStore)-->
<property>
<name>yarn.resourcemanager.store.class< /name >
<value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore< /value >
< /property >
<!--使用ZK集群保存狀態(tài)信息-->
<property>
<name>yarn.resourcemanager.zk-address< /name >
<value>HSlave0:2181,HSlave1:2181,HSlave2:2181< /value >
< /property >
<!--向RM調(diào)度資源地址-->
<property>
<name>yarn.resourcemanager.scheduler.address.rm1< /name >
<value>HMaster0:8030< /value >
< /property >
<property>
<name>yarn.resourcemanager.scheduler.address.rm2< /name >
<value>HMaster1:8030< /value >
< /property >
<!--NodeManager通過該地址交換信息-->
<property>
<name>yarn.resourcemanager.resource-tracker.address.rm1< /name >
<value>HMaster0:8031< /value >
< /property >
<property>
<name>yarn.resourcemanager.resource-tracker.address.rm2< /name >
<value>HMaster1:8031< /value >
< /property >
<!--客戶端通過該地址向RM提交對(duì)應(yīng)用程序操作-->
<property>
<name>yarn.resourcemanager.address.rm1< /name >
<value>HMaster0:8032< /value >
< /property >
<property>
<name>yarn.resourcemanager.address.rm2< /name >
<value>HMaster1:8032< /value >
< /property >
<!--管理員通過該地址向RM發(fā)送管理命令-->
<property>
<name>yarn.resourcemanager.admin.address.rm1< /name >
<value>HMaster0:8033< /value >
< /property >
<property>
<name>yarn.resourcemanager.admin.address.rm2< /name >
<value>HMaster1:8033< /value >
< /property >
<!--RM HTTP訪問地址,查看集群信息-->
<property>
<name>yarn.resourcemanager.webapp.address.rm1< /name >
<value>HMaster0:8088< /value >
< /property >
<property>
<name>yarn.resourcemanager.webapp.address.rm2< /name >
<value>HMaster1:8088< /value >
< /property >
< /configuration >
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | # vi mapred-site.xml
<configuration>
<!--指定MR框架為YARN-->
<property>
<name>mapreduce.framework.name< /name >
<value>yarn< /value >
< /property >
<!-- 配置 MapReduce JobHistory Server地址 ,默認(rèn)端口10020 -->
<property>
<name>mapreduce.jobhistory.address< /name >
<value>0.0.0.0:10020< /value >
< /property >
<!-- 配置 MapReduce JobHistory Server HTTP地址, 默認(rèn)端口19888 -->
<property>
<name>mapreduce.jobhistory.webapp.address< /name >
<value>0.0.0.0:19888< /value >
< /property >
< /configuration >
|
1 2 | # vi hadoop-env.sh
將 export JAVA_HOME=${JAVA_HOME}修改為我們安裝的JDK路徑 export JAVA_HOME= /usr/local/jdk1 .7
|
1 2 3 4 | # vi slaves
HSlave0
HSlave1
HSlave2
|
# 配置變量,方便使用hadoop命令 1 2 3 4 5 | # vi /etc/profile
HADOOP_HOME= /opt/hadoop-2 .6.0
PATH=$PATH:$HADOOP_HOME /bin :$HADOOP_HOME /sbin
export HADOOP_HOME PATH
# source /etc/profile
|
3.1 對(duì)NameNode(HMaster0)節(jié)點(diǎn)進(jìn)行格式化 # hadoop namenode -format 注意:格式化第二次有可能會(huì)造成DataNode無法啟動(dòng),原因是NameSpaceID不一致造成,解決方法是找出不一致的VERSION修改NameSpaceID,也可以嘗試刪除hdfs/data目錄。 3.2 啟動(dòng)HMaster0(active)節(jié)點(diǎn)NameNode # hadoop-daemon.sh start namenode 3.3 HMaster1節(jié)點(diǎn)上同步(HMaster0)元數(shù)據(jù) # hdfs namenode -bootstrapStandby 3.4 在HMaster0格式化ZKFC # hdfs zkfc -formatZK 3.5 在HMaster0節(jié)點(diǎn)啟動(dòng)HDFS集群 # start-dfs.sh 3.6 在Master0節(jié)點(diǎn)啟動(dòng)YARN集群 # start-yarn.sh 3.7 在Master1節(jié)點(diǎn)啟動(dòng)RM # yarn-daemon.sh start resourcemanager 3.8 以后也可以通過start-all.sh與stop-all.sh啟停Hadoop集群
3.9 驗(yàn)證Hadoop集群(HDFS和YARN)是否啟動(dòng)成功 # jps #在HMaster0節(jié)點(diǎn)可以看到 32040 DFSZKFailoverController #ZKFC用于監(jiān)控NameNode active和standby節(jié)點(diǎn)狀態(tài),并故障切換 30187 ResourceManager #YARN資源管理進(jìn)程 31934 NameNode #HDFS元數(shù)據(jù)進(jìn)程 13607 Jps #運(yùn)行jps命令時(shí)自身進(jìn)程 # jps #在HSlave0節(jié)點(diǎn)可以看到 13229 DataNode 31215 NodeManager 1990 QuorumPeerMain 13314 JournalNode 31390 Jps # 通過訪問Hadoop提供的WEB,查看是否正常    
從上圖可以看出,NameNode分為active和standby,ResouceManager也分為active和standby,也就是說,NN和RM均成功實(shí)現(xiàn)HA,當(dāng)你測(cè)試停止active節(jié)點(diǎn)上NN或者RM時(shí),都會(huì)正常切換到standby節(jié)點(diǎn),這時(shí)再訪問WEB,狀態(tài)已經(jīng)改變。目前NN只支持兩臺(tái)做HA,RM HA支持多臺(tái)。 4. HDFS 操作命令 # hadoop dfsadmin -report #查看DataNode節(jié)點(diǎn)信息,可以使用這個(gè)命令腳本監(jiān)控DFS狀況
# hadoop fs -ls hdfs://hcluster:9000/ #指定HDFS地址訪問 # hadoop fs -ls / #列出HDFS文件系統(tǒng)目錄下文件和目錄 # hadoop fs -lsr / #遞歸列出目錄 # hadoop fs -mkdir /test #創(chuàng)建test目錄 # hadoop fs -put /root/test.txt /test/test.txt #上傳文件到test目錄 # hadoop fs -cat /test/test.txt #查看文件內(nèi)容 # hadoop fs -du /test/test.txt #查看文件大小 # hadoop fs -rm /test/test.txt #刪除文件 # hadoop fs -rmr /test #遞歸刪除目錄或文件
提醒:Hadoop配置較為復(fù)雜,往往會(huì)因?yàn)樽约旱囊稽c(diǎn)點(diǎn)配置錯(cuò)誤,造成服務(wù)無法啟動(dòng),不要心急,這時(shí)你應(yīng)該靜下心來仔細(xì)看看安裝目錄中l(wèi)ogs目錄下以.log結(jié)尾的日志,可幫助你解決問題。祝你好運(yùn)!
HBase1.0分布式NoSQL數(shù)據(jù)庫(kù)部署及使用請(qǐng)點(diǎn):http://lizhenliang.blog.51cto.com/7876557/1665130
|