版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/huaishu/article/details/78720890
集群配置
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 安装参考 《
分布式ZooKeeper-3.4.10集群安装 》
hadoop 安装参考《
spark-2.2.0 集群安装部署以及hadoop集群部署》
三、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
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-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
532 Jps
14278 NodeManager
18376 HMaster
18313 HQuorumPeer
14172 DataNode
18511 HRegionServer
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操作,命令操作不一样。
扫描二维码关注公众号,回复:
4088629 查看本文章
名称 |
命令表达式 |
创建表 |
create '表名称', '列名称1','列名称2','列名称N' |
添加记录 |
put '表名称', '行名称', '列名称:', '值' |
查看记录 |
get '表名称', '行名称' |
查看表中的记录总数 |
count '表名称' |
删除记录 |
delete '表名' ,'行名称' , '列名称' |
删除一张表 |
先要屏蔽该表,才能对该表进行删除,第一步 disable '表名称' 第二步 drop '表名称' |
查看所有记录 |
scan "表名称" |
查看某个表某个列中所有数据 |
scan "表名称" , ['列名称:'] |
更新记录 |
就是重写一遍进行覆盖 |