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 安装参考 《分布式ZooKeeper-3.4.10集群安装 》
hadoop 安装参考《spark-2.2.0 集群安装部署以及hadoop集群部署》
下载解压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
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
执行 source ~/.bash_profile使环境变量生效
配置hbase-env.sh JAVA_HOME
export JAVA_HOME=/opt/jdk1.8.0_65
export HBASE_MANAGES_ZK=true 使用自带zookeeper
hbase.rootdir
hdfs://Master:9000/hbase
hbase.cluster.distributed
true
hbase.zookeeper.quorum
Master,Slave1,Slave2
hbase.temp.dir
/data/spark/hbase-2.0.0-alpha4/tmp
hbase.zookeeper.property.dataDir
/data/spark/hbase-2.0.0-alpha4/tmp/zookeeper
hbase.master.info.port
60010
hbase.zookeeper.quorum 配置必须用IP,使用hostname会报错,与MapReduce 冲突。
scp -r /data/spark/hbase-2.0.0-alpha4 Slave1:/data/spark
scp -r /data/spark/hbase-2.0.0-alpha4 Slave2:/data/spark
启动之前先启动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日志显示无法找到主机,主要是因为主机名未修改,只是配置节点名称导致。
参考:https://www.cnblogs.com/xiaolei2017/p/7245299.html
与数据库一样有DML、DDL操作,命令操作不一样。
名称 |
命令表达式 |
创建表 |
create '表名称', '列名称1','列名称2','列名称N' |
添加记录 |
put '表名称', '行名称', '列名称:', '值' |
查看记录 |
get '表名称', '行名称' |
查看表中的记录总数 |
count '表名称' |
删除记录 |
delete '表名' ,'行名称' , '列名称' |
删除一张表 |
先要屏蔽该表,才能对该表进行删除,第一步 disable '表名称' 第二步 drop '表名称' |
查看所有记录 |
scan "表名称" |
查看某个表某个列中所有数据 |
scan "表名称" , ['列名称:'] |
更新记录 |
就是重写一遍进行覆盖 |