久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

HBase

198次閱讀
沒有評論

共計 6225 個字符,預計需要花費 16 分鐘才能閱讀完成。

這篇文章主要介紹 HBase-0.98.9 如何搭建配置,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

一     配置 1.1  hbase-env.sh

其它不變,export HBASE_MANAGES_ZK=false,這表示不使用 hbase 自帶的 zookeeper,而使用外部的 zookeeper(我使用的是跟 hadoop 集群配置的 zookeeper)

1.2  hbase-site.xml

configuration 
 property 
  name hbase.rootdir /name 
  value hdfs://master1:8020/hbase /value 
  description The directory shared by region servers. /description 
 /property 
 property 
  name hbase.zookeeper.property.clientPort /name 
  value 2181 /value 
  description Property from ZooKeeper s config zoo.cfg. The port at which the clients will connect.
  /description 
 /property 
 property 
  name zookeeper.session.timeout /name 
  value 120000 /value 
 /property 
 property 
  name hbase.zookeeper.quorum /name 
  value master1,master2,slave1 /value 
 /property 
 property 
  name hbase.tmp.dir /name 
  value /root/hbasedata /value 
 /property 
 property 
  name hbase.cluster.distributed /name 
  value true /value 
 /property 
 /configuration

HBase-0.98.9 如何搭建配置

1.3  regionservers

master1
master2
slave1

1.4  一些配置參數的解釋

hbase.zookeeper.property.clientPort:指定 zk 的連接端口

zookeeper.session.timeout:RegionServer 與 Zookeeper 間的連接超時時間。當超時時間到后,ReigonServer 會被 Zookeeper 從 RS 集群清單中移除,HMaster 收到移除通知后,會對這臺 server 負責的 regions 重新 balance,讓其他存活的 RegionServer 接管.

hbase.zookeeper.quorum:默認值是  localhost,列出 zookeepr ensemble 中的 servers

2  啟動 / 關閉

在 master1 上執行

bin/start-hbase.sh

bin/stop-hbase.sh

3  測試

如果 web 管理頁面可以打開, 說明 Hmaster 啟動成功:http:master1:60010

在 master1 上執行

{HBASE_HOME}/bin/hbase shell

進入 shell 命令行,通過創建表等操作來檢查不是不工作正常。

hbase(main):001:0  create  scores , grade ,  course

4  注意事項

HBase 集群需要依賴于一個 Zookeeper ensemble。HBase 集群中的所有節點以及要訪問 HBase 的客戶端都需要能夠訪問到該 Zookeeper  ensemble。HBase 自帶了 Zookeeper,但為了方便其他應用程序使用 Zookeeper,最好使用單獨安裝的 Zookeeper ensemble。

此外,Zookeeper ensemble 一般配置為奇數個節點,并且 Hadoop 集群、Zookeeper ensemble、HBase 集群是三個互相獨立的集群,并不需要部署在相同的物理節點上,他們之間是通過網絡通信的。

需要注意的是,如果要禁止啟動 hbase 自帶的 zookeeper,那么,不僅僅需要剛才的 export HBASE_MANAGES_ZK=false 配置,還需要 hdfs-site.xml 中的 hbase.cluster.distributed 為 true,否則你在啟動時會遇到 Could not start ZK at requested port of 2181  錯誤,這是因為 hbase 嘗試啟動自帶的 zookeeper,而我們已經啟動了自己安裝的那個 zookeeper,默認都使用 2181 端口,所以出錯。

還有,有時候會遇到 stop-hbase.sh 執行很長時間未結束,很可能的原因是你之前把 zookeeper 關閉了.

最后,Hbase 不需要 mapreduce,所以只要 start-dfs.sh 啟動 hdfs,然后到 zookeeper 各節點上啟動 zookeeper,最后再 hbase-start.sh 啟動 hbase 即可.

二   安裝運行遇到的錯誤匯總:

1. habse 啟動失敗,查看日志發現報錯:

zookeeper 啟動失敗 BindException: Address already in use

原因:zk 在 hbase 啟動之前就已經啟動(因為我采用的是外部的 zk 集群)。解決方法是環境變量設置 export HBASE_MANAGES_ZK=false,同時確保 hbase-env.sh 里也是相同設置。

2. 再次啟動發現 hmaster 還是沒有起起來,查看日志發現報錯:

hbase java.lang.runtimeexception hmaster aborted,查找 error 那一行是 failed on connection exception: java.net.ConnectException: master1 Connection refused

原因:master1 節點跟 hadoop 集群連接失敗,懷疑是 hbase-site.xml 配置有問題。其與 hadoop 連接配置為:

name hbase.rootdir /name

value hdfs://master1:9000/hbase /value

這里配置的 9000,而集群 fs.defaultfs  本來端口是 8020:HBase-0.98.9 如何搭建配置

修改之后,重新啟動 hvase,一切正常。。。

3. hbase 內置 hadoop jar 包跟已有的集群版本不一樣,需要進行替換以確保穩定性和一致性。
rm -rf /usr/hbase-0.98.21-hadoop2/lib/hadoop*.jar

find /usr/hadoop/share/hadoop -name hadoop*jar | xargs -i cp {} /usr/hbase-0.98.21-hadoop2/lib

替換之后重啟發現 hmaster 又啟動不起來了,查看日志發現:

Caused by: java.lang.ClassNotFoundException: com.amazonaws.auth.AWSCredentialsProvider

少了一個 jar 包。

解決方案:
需要將 hadoop-2.6.3/share/hadoop/tools/lib/aws-java-sdk-1.7.4.jar 拷貝到 hbase/lib 下

4. 經過上面幾次折騰之后發現重啟 hbase 之后,只有 hMaster 能啟動,其他節點起不了。日志錯誤如下。手動啟動 regionserver 后,發現 hmaster 又是變成阻塞狀態,在 shell 控制臺無法進行表操作。

2015-07-01 04:39:34,480 WARN [MASTER_META_SERVER_OPERATIONS-master:60000-0] master.AssignmentManager: Can t move 1588230740, there is no destination server available. 
2015-07-01 04:39:34,480 WARN [MASTER_META_SERVER_OPERATIONS-master:60000-0] master.AssignmentManager: Unable to determine a plan to assign {ENCODED =  1588230740, NAME =   hbase:meta,,1 , STARTKEY =   , ENDKEY =  } 
2015-07-01 04:39:35,480 WARN [MASTER_META_SERVER_OPERATIONS-master:60000-0] master.AssignmentManager: Can t move 1588230740, there is no destination server available. 
2015-07-01 04:39:35,481 WARN [MASTER_META_SERVER_OPERATIONS-master:60000-0] master.AssignmentManager: Unable to determine a plan to assign {ENCODED =  1588230740, NAME =   hbase:meta,,1 , STARTKEY =   , ENDKEY =  } 
2015-07-01 04:39:36,379 ERROR [RpcServer.handler=6,port=60000] master.HMaster: Region server server2.corp.gs.com,60020,1435743503791 reported a fatal error: 
ABORTING region server server1.corp.gs.com,60020,1435743483790: org.apache.hadoop.hbase.YouAreDeadException: Server REPORT rejected; currently processing server1.corp.gs.com,60020,1435743483790 as dead server 
 at org.apache.hadoop.hbase.master.ServerManager.checkIsDead(ServerManager.java:339) 
 at org.apache.hadoop.hbase.master.ServerManager.regionServerReport(ServerManager.java:254) 
 at org.apache.hadoop.hbase.master.HMaster.regionServerReport(HMaster.java:1343) 
 at org.apache.hadoop.hbase.protobuf.generated.RegionServerStatusProtos$RegionServerStatusService$2.callBlockingMethod(RegionServerStatusProtos.java:5087) 
 at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:2175) 
 at org.apache.hadoop.hbase.ipc.RpcServer$Handler.run(RpcServer.java:1879) 
Cause: 
org.apache.hadoop.hbase.YouAreDeadException: org.apache.hadoop.hbase.YouAreDeadException: Server REPORT rejected; currently processing server1.corp.gs.com,60020,1435743483790 as dead server

原因:極有可能是 zk 機器的 hbase 數據錯誤。

解決方案:

1. 停掉所有 hbase 的進程先
2. 刪掉 zk 中的 hbase 數據

hbase zkcli 或者 bin/zkCli.sh 進入 zk 命令行
ls / # 可以看到 hbase 數據存在
rmr /hbase # 刪除 hbase 數據 

3. 運行 hdfs fsck /hbase 確保數據沒有沖突
4. 重新啟動 start-hbase.sh  
5. 如果還是只有主節點運行,則手動啟動 regionserver

./hbase-daemon.sh start regionserver

6. 運行 hbase hbck   監測數據是否一致。如果有問題再運行  hbase hbck -fix (or 
-repair) 

* 運行 hbase hbck – repair 有時候會報錯 connection refuse,這是因為 regionserver 又掛掉了,要確保 regionserver 是運行狀態

還有問題參考下這篇文章吧 http://apache-hbase.679495.n3.nabble.com/Corrupted-META-td4072787.html。

5. 重啟 hbase 之后 Hmaster 啟動不了,報錯 org.apache.hadoop.hbase.util.FileSystemVersionException: File system needs to be upgraded. You have version null and I want version 8。

解決方法:

log 中可以發現可能是 hbase.version 文件消失了,如果只是測試 hbase,可以直接把 hdfs 中的 /hbase 刪掉。,然后重啟就好了,但是以前的數據就丟失了。

bin/hadoop fs -ls /hbase

發現 /hbase/hbase.version 確實已經消失了,去 /lost+found 目錄找確實能找到。

如果需要保留以前數據,可以按下面步驟:

bin/hadoop fs -mv /hbase /hbase.bk

重啟 HBase,這時就生成了 /hbase/hbase.version 文件,然后:

bin/hadoop fs -cp /hbase/hbase.version /hbase.bk/
bin/hadoop fs -rmr /hbase 
bin/hadoop fs -mv /hbase.bk /hbase

這樣再次重啟 HBase,發現 Hbase 開始 splitting hlogs,數據得以恢復。

6. hbase 升級到 1.1.6 之后,發現 web 端口 60010 打不開了。

原來是因為 1.0 版本之后的 hbase 的 master web 默認是不運行的,所以需要自己配置默認端口。配置如下

在 hbase-site.xml 中加入一下內容即可

property
name hbase.master.info.port /name
value 60010 /value
/property

同理可以配置 regionserver web 端口

以上是“HBase-0.98.9 如何搭建配置”這篇文章的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注丸趣 TV 行業資訊頻道!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-08-25發表,共計6225字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 福泉市| 苗栗县| 嘉义县| 双辽市| 磐石市| 甘德县| 安龙县| 涟源市| 武山县| 安吉县| 龙岩市| 开化县| 汉阴县| 卓尼县| 商水县| 武清区| 射洪县| 大厂| 潢川县| 阿拉善左旗| 上思县| 东港市| 潮州市| 鲜城| 德州市| 和硕县| 盘锦市| 南康市| 潮州市| 岑溪市| 汝阳县| 蒲城县| 游戏| 塔城市| 会同县| 元阳县| 汉阴县| 偃师市| 通许县| 旬阳县| 奉新县|