您好,登錄后才能下訂單哦!
前提:jdk,無密互通,時間同步,zookeeper,hadoop
zookeeper文檔
hadoop文檔
時間服務器搭建
集群
主機名 | study | centos156 | client |
---|---|---|---|
IP | 192.168.233.155 | 192.168.233.156 | 192.168.233.158 |
服務1 | zookeeper 1 | zookeeper 2 | zookeeper 3 |
服務2 | namenode | namenode | |
服務3 | datanode | datanode | datanode |
服務4 | journalnode | journalnode | |
服務5 | nodemanager | nodemanager | nodemanager |
服務6 | zkfc | zkfc | |
服務7 | ResourceManager | ||
服務8 | hmaster | hmaster | hmaster |
服務9 | ResourceManager |
#下載hbase:官方下載路徑
#本文檔用的1.2.6版本
cd /tmp/
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hbase/1.2.6/hbase-1.2.6-bin.tar.gz
#解壓
tar axf hbase-1.2.6-bin.tar.gz -C /usr/local/
#重命名
mv /usr/local/hbase-1.2.6/ /usr/local/hbase
#修改環境變量
vim /etc/profile
#hbase
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HBASE_HOME/bin
source /etc/profile
#修改配置文件
cd $HBASE_HOME/conf
vim hbase-env.sh
#添加如下行
export JAVA_HOME=/usr/local/jdk
export HBASE_MANAGES_ZK=false
修改JVM只需修改hbase-env.sh中的HBASE_MASTER_OPTS和HBASE_REGIONSERVER_OPTS
vim hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop/hbase</value>
<description>region server的共享目錄,指定的是hdfs中的目錄(如果hdfs做了HA應該指向core-site.xml中的hdfs邏輯名,負責namenode出現狀態遷移hbase將故障),這里指定的是/hbase,可以指定寫在本地目錄,默認為file:///tmp/hbase-${user.name}/hbase</description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>HBase的運行模式,false是單機模式,true是分布式模式</description>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description>zookeeper連接端口</description>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>study,centos156,client</value>
<description>zookeeper節點地址</description>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>60000</value>
<description>會話超時時間,單位毫秒</description>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/usr/local/zookeeper</value>
<description>ZooKeeper的zoo.conf中的配置,快照存儲位置</description>
</property>
</configuration>
hbase-site.xml配置參數參考文檔
#指定regionservers節點
vim regionservers
study
centos156
client
#將文件復制到其他節點
scp -r /usr/local/hbase/ centos156:/usr/local/
scp -r /usr/local/hbase/ client:/usr/local/
scp /etc/profile centos156:/etc/
scp /etc/profile client:/etc/
source /etc/profile
source /etc/profile
start-hbase.sh
這里的警告信息是因為我用的8的jdk
這并沒有什么影響
查看狀態
hbase shell
#status查看狀態
啟動其他機器上的hmaster作為備用節點
hbase-daemon.sh start master
hbase-daemon.sh start master
查看狀態
hbase shell
#status查看狀態
關閉加點一上的hmaster測試
hbase-daemon.sh stop master
現看hbase-site.xml文件中將數據放哪了
<name>hbase.rootdir</name>
<value>hdfs://study:9000/hbase</value>
因為我們放在了hadoop中,所以只需要進行hadoop的數據遷移
數據備份
mkdir /tmp/hbase
chmod 777 /tmp/hbase
hadoop fs -copyToLocal hdfs://study:9000/ /tmp/hbase
數據恢復
先用u盤或者其他的任何方式將文件傳輸到目標機器
hadoop fs -copyFromLocal /tmp/hbase hdfs://study:9000/
hadoop fs -ls /
重啟hbase
stop-hbase.sh
start-hbase.sh
-Xmx Heap(堆內存)最大允許值
-Xms Heap(堆內存)最小允許值
-Xmn 年輕代大小
vim hbase-env.sh
export HBASE_OPTS="-XX:+UseConcMarkSweepGC -Xmx4000m -Xms4000m -Xmn1000m -XX:+UseParNewGC -XX:CMSInitiatingOccupancyFraction=70"
vim hbase-env.sh
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS $HBASE_JMX_BASE -Xmx4000m -Xms4000m -Xmn1000m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70"
vim hbase-env.sh
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS $HBASE_JMX_BASE -Xmx4000m -Xms4000m -Xmn1000m -XX:+UseParNewGC -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70"
測試hive、spark重新搭建hadoop集群,結果遇到如下報錯
2018-01-10 11:21:44,336 ERROR [main] master.HMasterCommandLine: Master exiting
java.lang.RuntimeException: Failed construction of Master: class org.apache.hadoop.hbase.master.HMaster.
at org.apache.hadoop.hbase.master.HMaster.constructMaster(HMaster.java:2512)
at org.apache.hadoop.hbase.master.HMasterCommandLine.startMaster(HMasterCommandLine.java:231)
at org.apache.hadoop.hbase.master.HMasterCommandLine.run(HMasterCommandLine.java:137)
at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
at org.apache.hadoop.hbase.util.ServerCommandLine.doMain(ServerCommandLine.java:126)
at org.apache.hadoop.hbase.master.HMaster.main(HMaster.java:2522)
Caused by: java.io.IOException: Port 9000 specified in URI hdfs://master:9000/hbase but host 'master' is a logic
al (HA) namenode and does not use port information.
at org.apache.hadoop.hdfs.NameNodeProxies.createFailoverProxyProvider(NameNodeProxies.java:488)
at org.apache.hadoop.hdfs.NameNodeProxies.createProxy(NameNodeProxies.java:148)
回憶以前搭建的流程(翻文檔。。。)發現時間沒有同步
將時間同步弄好了之后啟動還是這樣的報錯,懷疑是緩存引起的一怒之下刪除了/tmp和hbae下的所有文件,然后重新搭建hbase
然后問題解決了
從現象上看引起該問題主要原因就是服務器間時間不同步
HMaster怎么都起不來
查看報錯
org.apache.hadoop.ipc.RemoteExceptionOperation category READ is not supported in state standby
這是hadoop集群出現了異常,查看集群狀態,詳情查看hadoop文檔
報錯
2018-01-22 20:58:56,177 FATAL [slave2:16000.activeMasterManager] master.HMaster: Failed to become active master
org.apache.hadoop.security.AccessControlException: Permission denied: user=root, access=WRITE, inode="/hbase/.tmp":hadoop:supergroup:drwxr-xr-x
這是因為root用戶對hadoop中該目錄沒有寫權限,用之前使用的用戶啟動或還hadoop目錄權限。
hbase shell 參考文檔
help 'get' 查看幫助信息
status 查看狀態
list 查看列表
scan <"表名"> 查看一個表的所有數據
scan <"表名">,<"列名"> 查看表的某列所有數據
create <"表名">,<"列名1">,["列名2"] 創建表
describe <"表名"> 查看表結構
is_enabled <"表名"> 判斷表是否enabled
get <"表名">,<"key"> 獲取一個key的所有數據
get <"表名">,<"key">,<"列簇"> 獲取一個key的一個列簇所有數據
Filter 修飾器,用于過濾信息(詳情看參考文檔)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。