Hadoop2.7.2 HBase2.0.0環境搭建
阿新 • • 發佈:2018-11-15
叢集配置
HBase – Hadoop Database,是一個高可靠性、高效能、面向列、可伸縮的分散式儲存系統,利用HBase技術可在廉價PC Server上搭建起大規模結構化儲存叢集。
JDK :1.8.0_65 (要求1.6+)
ZooKeeper:3.4.10
Hadoop:2.7.2
HBase:2.0.0-alpha4
主機數:3(要求3+,且必須是奇數,因為ZooKeeper的選舉演算法)
伺服器列表:主機名 | IP地址 | JDK | ZooKeeper | myid |
Master | 10.116.33.109 | 1.8.0_65 | server.1 | 1 |
Slave1 | 10.27.185.72 | 1.8.0_65 | server.2 | 2 |
slave2 | 10.25.203.67 | 1.8.0_65 | server.3 | 3 |
二、zk、hadoop安裝
zk 安裝參考 《三、HBase 安裝(HBase 自管理ZK)
下載解壓HBase檔案cd /data/spark/
wget "http://archive.apache.org/dist/hbase/2.0.0-alpha4/hbase-2.0.0-alpha4-bin.tar.gz"
tar zxvf hbase-2.0.0-alpha4-bin.tar.gz
環境變數
vim ~/.bash_profile執行 source ~/.bash_profile使環境變數生效export HBASE_HOME=/data/spark/hbase-2.0.0-alpha4 export PATH=$HBASE_HOME/bin:$PATH export HBASE_CLASSPATH=/data/spark/hbase-2.0.0-alpha4/conf
配置hbase-env.sh JAVA_HOME
export JAVA_HOME=/opt/jdk1.8.0_65
export HBASE_MANAGES_ZK=true 使用自帶zookeeper
修改配置檔案hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://Master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>Master,Slave1,Slave2</value>
</property>
<property>
<name>hbase.temp.dir</name>
<value>/data/spark/hbase-2.0.0-alpha4/tmp</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/data/spark/hbase-2.0.0-alpha4/tmp/zookeeper</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
</configuration>
hbase.zookeeper.quorum 配置必須用IP,使用hostname會報錯,與MapReduce 衝突。
各個主機之間複製HBase
scp -r /data/spark/hbase-2.0.0-alpha4 Slave1:/data/spark
scp -r /data/spark/hbase-2.0.0-alpha4 Slave2:/data/spark
啟動HBase
啟動之前先啟動hadoop和zookeeper叢集HBase只需在一個節點上執行啟動HBase命令,與Hadoop一樣
$HADOOP_HOME/sbin/start-all.sh
cd /data/spark/hbase-2.0.0-alpha4/bin
./start-hbase.sh
檢查hbase啟動情況
Slave 程序檢查
29541 NodeManager
30456 HQuorumPeer
29435 DataNode
30541 HRegionServer
30718 Jps
Master程序檢查
532 Jps
14278 NodeManager
18376 HMaster
18313 HQuorumPeer
14172 DataNode
18511 HRegionServer
HBase配置web介面
http://Maseter IP:60010/master-status
注意:HBase自管理ZK中,hosts檔案中有主機名對應的IP,否則會報錯。 zookeeper.ClientCnxn: Opening socket connection to server iZwz9evsidoafzcicmva9nZ/10.25.203.67:2181. Will not attempt to authenticate using SASL (unknown error)
匯入資料
hdsf dfs -put test_hbase.csv /lw6/test
hbase org.apache.hadoop.hbase.mapreduce.ImportTsv -Dimporttsv.separator="," -Dimporttsv.columns=HBASE_ROW_KEY,f1 t1 /lw6/test/test_hbase.csv -Dimporttsv.bulk.output=/lw6/test/output.txt
Import 工具主要是通過轉換為MapReduce 匯入HBase。
注意:匯入過程中出現任務無法Running,yarn日誌顯示無法找到主機,主要是因為主機名未修改,只是配置節點名稱導致。
Hbase基本命令
參考:https://www.cnblogs.com/xiaolei2017/p/7245299.html
與資料庫一樣有DML、DDL操作,命令操作不一樣。
名稱 |
命令表示式 |
建立表 |
create '表名稱', '列名稱1','列名稱2','列名稱N' |
新增記錄 |
put '表名稱', '行名稱', '列名稱:', '值' |
檢視記錄 |
get '表名稱', '行名稱' |
查看錶中的記錄總數 |
count '表名稱' |
刪除記錄 |
delete '表名' ,'行名稱' , '列名稱' |
刪除一張表 |
先要遮蔽該表,才能對該表進行刪除,第一步 disable '表名稱' 第二步 drop '表名稱' |
檢視所有記錄 |
scan "表名稱" |
檢視某個表某個列中所有資料 |
scan "表名稱" , ['列名稱:'] |
更新記錄 |
就是重寫一遍進行覆蓋 |