hbase 新增節點


 

關於Hbase的集群管理

http://www.linuxidc.com/Linux/2012-07/65909.htm

1、如果只增加集群的存儲量,建議增加Hadoop datanode節點。

方法:
  • 停掉集群包括hadoop和hbase,當然也可以不停掉,直接在hadoop namenode的配置文件Slave里添加新節點的host,別忘了在host文件里也要添加新添加的host名。
  • 執行bin/start-all.sh啟動集群
  • 如果不手動作平衡,插入的數據將會放在新添加的節點上。以趨於平衡。
  • 如果手動平衡,則 start-balancer.sh和調用bin/shadoop balancer命令相似,也可加參數 -threshold 5(threshold 是平衡閾值,默認是10%,值越低各節點越平衡,但消耗時間也更長)。 在使用start-balancer.sh時,如果在hdfs-site.xml里面沒有配置dfs.balance.bandwidthPerSec,那么集群hdfs內部默認使用1M/S的速度移動數據(so slowly...),我們可以通過在hdfs-site.xml里面配置dfs.balance.bandwidthPerSec來加快balance的速度。 最開始我們配置的是20m/S ,然后結果是導致job運行變得不穩定,出現一些意外的長map單元,某些reduce時間處理變長(整個集群負載滿滿的情況下,外加20m/s的balance),在前天的中國hadoop年會上聽淘寶調整的為10m/s,需要調整后實驗,看看情況如何。 另外再修改dfs.balance.bandwidthPerSec參數后,需要在namenode上運行stop-dfs.sh start-dfs.sh重啟hdfs生效。我們可以通過stop-balancer.sh停掉平衡任務。作完平衡后,啟動hbase,正常。 果cluster設置的副本數不為3(默認),需要先運行命令hadoop fs –setrep [-R] <path> 
    進行設置一個文件的副本系數。如果默認為3則不必。如果執行完平衡以后才改變副本數,會將新加入到新節點上的所有數據刪除。 
    5.dfs.replication設置的副本系數只在文件系統寫入時有效,並不影響在新添加節點時,平衡時的副本數 
    由於還有hbase數據庫,因此,在運行完平衡以后,將hbase下的.META.文件刪除(防止出錯),啟動hbase,執行hbase org.jruby.Main add_table /表名 來進行hbase表恢復
驗證步驟:1namenode+3datanode+1master+2regionserver+3zookeeper
 
2、刪除一個regionServer,
在需要刪除的RegionServer上執行以下命令:$  ./bin/hbase-daemon.sh stop regionserver    RegionServer將會關掉所有的region,然后此節點將會在Zookeeper消失。Master注意到了此RegionServer 掉了,它將會重新分配掉的這些Region。在停掉一個節點的時候,注意要關閉Load Balancer,因為Load Balancer可能要和Master的恢復機制爭奪停掉的RegionServer。
hbase(main):001:0>  balance_switch false
true
0 row(s) in 0.3590 seconds
 
hbase(main):002:0>  balance_switch true
false
0 row(s) in 0.3590 seconds
 
./bin/graceful_stop.sh
Usage: graceful_stop.sh [--config &conf-dir>] [--restart] [--reload] \
[--thrift] [--rest] &hostname>
thrift If we should stop/start thrift before/after the hbase stop/start
rest If we should stop/start rest before/after the hbase stop/start
restart If we should restart after graceful stop
reload Move offloaded regions back on to the stopped server
debug Move offloaded regions back on to the stopped server
hostname Hostname of server we are to stop
 
3、添加一個備份的master節點
 
 
有時候hadoop或hbase集群運行時間久了后,某些節點就會失效,這個時候如果不想重啟整個集群(這種情況在很多情況下已經不被允許),這個時候可以單獨重啟失效節點。
HADOOP:
hadoop中重啟單節點的方法和增加新節點其實是一樣的。
1、我們先看下如何了解hadoop機器的情況,可以用命令:
hadoop dfsadmin -report 查看集群容量情況,很多情況下失效節點也可以從這里了解到(比如失效節點容量顯示為0)。
也可以用web查看: http://ip:54030/jobtracker.jsp
2、重啟或添加節點:
$bin/hadoop-daemon.sh start datanode 
   $bin/hadoop-daemon.sh start tasktracker
當然,添加的話需要copy配置文件到新節點。重啟的話先  $bin/hadoop-daemon.sh stop datanode/ tasktracker
3、重新balancer(可選)
$bin/hadoop balancer
其實集群自己會balancer,當然也可以像上面那樣手動balancer,不然在繁忙時段最好避免。
 
HBASE:
很多時候,節點失效是因為pid文件被刪除引起(默認pid文件中/tmp下),所以最好把很多默認是/tmp的目錄修改成自己的目錄,比如hbase的pid配置可以在hbase-env.sh中,修改export HBASE_PID_DIR=/var/hadoop/pids就可以。hbase節點失效常對應60020端口異常。
進入hbase shell
1、查看節點情況:
status
當然,也可以通過web頁面查看(如果服務開放的話):
http://serviceIp:60010/master.jsp

http://serviceIp:60030/regionserver.jsp

http://serviceIp:60010/zk.jsp

2、重啟
$bin/hbase-daemon.sh stop regionserver
$bin/hbase-daemon.sh start regionserver
也可以添加新的master(默認只有一個master),$bin/hbase-daemon.sh start master


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM