HBase 命令操作
// hbase 服务
start-hbase.sh
stop-hbase.sh
HBase Shell的常见命令
help
create 'tbName','cf1;'cf2'
list //显示表
describe 'tbname'
put 'tb_name','rowkey','cf_1:msg','cf_2:msg'
put 'tb_name','rowkey','column','value',timestamp
put 'ns:table','rowkey','family:column','value',timestamp
put 'ns1:t1', 'r1', 'c1', 'value'
put 't1', 'r1', 'c1', 'value'
// 删除表
disable 'tb_name'
drop 'tb_name'
exist 'tb_name'
``
# HBase的启动脚本和源码
### start-hbase.sh
. "$bin"/hbase-config.sh
commandToRun="start"
查看是否是分布式: 配置distributed 是否为ture;
distMode=$bin/hbase --config "$HBASE_CONF_DIR" org.apache.hadoop.hbase.util.HBaseConfTool hbase.cluster.distributed | head -n 1
if [ "bin"/hbase-daemon.sh --config "
commandToRun master
bin"/hbase-daemons.sh --config "
commandToRun zookeeper
"{HBASE_CONF_DIR}"
bin"/hbase-daemons.sh --config "
{HBASE_REGIONSERVERS}"
bin"/hbase-daemons.sh --config "
{HBASE_BACKUP_MASTERS}" $commandToRun master-backup
fi
// 正常的话, 启动脚本会触发这4 条命令:
hbase-daemons.sh --config "{HBASE_CONF_DIR}" start master
hbase-daemons.sh --config "{HBASE_CONF_DIR}" --hosts ldsver53 start master-backup
### hbase-daemon.sh和 hbase-daemons.sh
1. 启动单个服务: hbase-daemon.sh
thiscmd="(basename
0})"
(start)
check_before_start
hbase_rotate_log HBASE_LOGGC
echo starting HBASE_LOGOUT
{HBASE_CONF_DIR}"
foreground_start args < /dev/null >
{HBASE_LOGOUT}"
;;
hbase 命令的
"COMMAND -XX:OnOutOfMemoryError="kill -9 %p"
HBASE_OPTS
@"
// 该命令的最终执行java命令如下:
hbase脚本: Java=/usr/java/jdk-release/bin/java, -Dproc_COMMAND=Dproc_master, HEAP_SETTINGS= , HBASE_OPTS=-XX:+UseConcMarkSweepGC -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=35040 -Dhbase.log.dir=/home/bigdata/log/hbase -Dhbase.log.file=hbase-bigdata-master-ldsver55.log -Dhbase.home.dir=/home/bigdata/app/hbase-release -Dhbase.id.str=bigdata -Dhbase.root.logger=INFO,RFA -Djava.library.path=/home/bigdata/app/hadoop-release/lib/native:/home/bigdata/app/hbase-release/lib/native/Linux-amd64-64 -Dhbase.security.logger=INFO,RFAS, CLASS=org.apache.hadoop.hbase.master.HMaster, 入参=start
// 2. 启动多个服务: hbase-daemons.sh
# HBase的部署和实战
HBase是分布式的实时数据库, 需要zk来做集群消息协调组件;
### 相关zk版本的安装:
// 查看该HBASE对应的zookeeper版本;
find -name "zookeep" ./HBASE_HOME ,
// 将报名拼接到 archive.cloudera.com/cdh5/cdh/5/后面;
wget http://archive.cloudera.com/cdh5/cdh/5/zookeeper-3.4.5-cdh5.16.2.tar.gz
2. 配置 hbase-env.sh
export HBASE_LOG_DIR=${HBASE_HOME}/logs
使用外部zk,true表示使用hbase自带的zk
export HBASE_MANAGES_ZK=false
创建pids目录
export HBASE_PID_DIR=/opt/hbase/pids
export HBASE_OPTS="-XX:+UseConcMarkSweepGC"
export JAVA_HOME=/home/app/java/jdk1.8.0_65
3. 配置hbase-site.xml
<property>
<name>hbase.rootdir</name>
<value>hdfs://ldsver02:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/opt/hbase/tmpDir</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>localhost</value>
</property>
<property>
<name>hbase.regionserver.restart.on.zk.expire</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/opt/zk/data</value>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>120000</value>
</property>
集群模式的HBase配置
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://ldsver55:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/home/bigdata/tmp/hbase</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>ldsver53,1dsver54,ldsver55</value>
</property>
<property>
<name>hbase.regionserver.restart.on.zk.expire</name>
<value>true</value>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>120000</value>
</property>
</configuration>
// 配置slave节点
vim regionservers
ldsver53
ldsver54
4. 运行测试hbase命令
hbase version
hbase shell
# 问题记录
### hbase shell 命令行中国年不会回车
设置一下xshell的相关属性就好了
* DEL -> ASCII 127
* BACKSPACE -> ASCII 127
