zengming

  HBase常用操作命令

  1.进入HBase脚本客户端
  #hbase shell #进入HBase脚本客户端
  > whoami                             #查看当前登录用户
  > status                                  #查看HBase节点信息
  > version                              #查看HBase版本

  2.查看HBase所有表
  > list                                #查看HBase里面的所有表
  > create_namespace \'ns\'                     #创建namespace
  > drop_namespace \'ns\'                        #删除namespace
  > describe_namespace \'ns\'                    #查看namespace
  > list_namespace                         #列出所有namespace
  > create \'ns:tablename\', \'cf\'                     #在namespace下创建表
  > list_namespace_tables \'ns\'                   #查看namespace下的表

  3.表操作
  创建表语法 create <table>, {NAME => <family>, VERSIONS => <VERSIONS>}
  > create \'tablename\',\'columnfamily\'                  #创建HBase表名和列族
  删除表 首先disable,然后drop
  > disable \'tablename\'
  > drop \'tablename\'
  查看表的结构
  --语法:describe <table>
  > describe \'tablename\'
  修改表结构 首先disable,然后enable
  --语法:alter \'t1\', {NAME => \'f1\'}, {NAME => \'f2\', METHOD => \'delete\'}
  > disable \'tablename\' --修改表tablename的cf的TTL为180天
  > alter \'tablename\',{NAME=>\'body\',TTL=>\'15552000\'},{NAME=>\'meta\', TTL=>\'15552000\'}
  > enable \'tablename\'

  HBase创建表设置块大小参数是1kb~16MB
  > create \'tablename\',{NAME => \'cf\' ,BLOCKSIZE =>\'16777216\'}

  4.增删改查
  添加数据
  -- 语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp>
  -- 例如:给表t1的添加一行记录:rowkey是rowkey1,family name:f1,column name:col1,value:value01,timestamp:系统默认
  > put \'t1\',\'rowkey1\',\'f1:col1\',\'value01\'
  查询行记录
  -- 语法:get <table>,<rowkey>,[<family:column>,....]
  -- 例如:查询表t1,rowkey1中的f1下的col1的值
  > get \'t1\',\'rowkey1\', \'f1:col1\'
  扫描表
  -- 语法:scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}
  -- 另外,还可以添加STARTROW、TIMERANGE和FITLER等高级功能
  -- 例如:扫描表t1的前5条数据
  > scan \'t1\',{LIMIT=>5}
  查询表中的数据行数
  -- 语法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum}
  -- INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度
  -- 例如,查询表t1中的行数,每100条显示一次,缓存区为500
  > count \'t1\', {INTERVAL => 100, CACHE => 500}
  删除行中的某个列值
  -- 语法:delete <table>, <rowkey>, <family:column> , <timestamp>,必须指定列名
  -- 例如:删除表t1,rowkey1中的f1:col1的数据
  > delete \'t1\',\'rowkey1\',\'f1:col1\'
  删除行
  -- 语法:deleteall <table>, <rowkey>, <family:column> , <timestamp>,可以不指定列名,删除整行数据
  -- 例如:删除表t1,rowk001的数据
  > deleteall \'t1\',\'rowkey1\'
  删除表中的所有数据
  -- 语法: truncate <table>
  -- 其具体过程是:disable table -> drop table -> create table
  -- 例如:删除表t1的所有数据
  > truncate \'t1\'

  5.权限管理
  分配权限
  -- 语法 : grant <user> <permissions> <table> <column family> <column qualifier> 参数后面用逗号分隔
  -- 权限用五个字母表示: "RWXCA".
  -- READ(\'R\'), WRITE(\'W\'), EXEC(\'X\'), CREATE(\'C\'), ADMIN(\'A\')
  -- 例如,给用户‘test\'分配对表t1有读写的权限,
  > grant \'test\',\'RW\',\'t1\'
  查看权限
  -- 语法:user_permission <table>
  -- 例如,查看表t1的权限列表
  > user_permission \'t1\'
  收回权限
  -- 与分配权限类似,语法:revoke <user> <table> <column family> <column qualifier>
  -- 例如,收回test用户在表t1上的权限
  > revoke \'test\',\'t1\'

  >grant \'admin\' \'RW\' \'@ns\'                        #授权admin用户对 ns下的写权限
  >revoke \'admin\' \'@ns\'                         #回收admin用户对 ns的所有权限

  6.Region管理
  移动region
  -- 语法:move \'encodeRegionName\', \'ServerName\'
  -- encodeRegionName指的regioName后面的编码,ServerName指的是master-status的Region Servers列表
  >move \'4343995a58be8e5bbc739af1e91cd72d\', \'db-41.xxx.xxx.org,60020,1390274516739\'
  开启/关闭region
  -- 语法:balance_switch true|false
  > balance_switch
  手动split
  -- 语法:split \'regionName\', \'splitKey\'
  手动触发major compaction
  #语法:
  --Compact all regions in a table:
  > major_compact \'t1\'
  --Compact an entire region:
  > major_compact \'r1\'
  --Compact a single column family within a region:
  > major_compact \'r1\', \'c1\'
  --Compact a single column family within a table:
  > major_compact \'t1\', \'c1\'

  7.配置管理及节点重启
  hdfs配置目录:/etc/hadoop/conf
  # 同步hdfs配置
  cat /home/hadoop/slaves|xargs -i -t scp /etc/hadoop/conf/hdfs-site.xml hadoop@{ip}:/etc/hadoop/conf/hdfs-site.xml
  #关闭
  cat /home/hadoop/slaves|xargs -i -t ssh hadoop@{ip} "sudo /data/opt/cloudera/parcels/CDH-5.9.1-1.cdh5.9.1.p0.4/lib/hadoop/sbin/hadoop-daemon.sh --config /etc/hadoop/conf stop datanode"
  #启动
  cat /home/hadoop/slaves|xargs -i -t ssh hadoop@{ip} "sudo /data/opt/cloudera/parcels/CDH-5.9.1-1.cdh5.9.1.p0.4/lib/hadoop/sbin/hadoop-daemon.sh --config /etc/hadoop/conf start datanode"

  修改hbase配置:  /etc/hbase/conf
  # 同步hbase配置
  cat /home/hadoop/hbase/conf/regionservers|xargs -i -t scp /home/hadoop/hbase/conf/hbase-site.xml hadoop@{ip}:/home/hadoop/hbase/conf/hbase-site.xml

  #hadoop fs -du /hbase                                #所有regionserver中所有表大小
  #hadoop fs -dus /hbase                            #当前regionserver中所有表大小
  #count ‘tablename′, INTERVAL => 10, CACHE => 1000               #统计表行数

 

分类:

技术点:

相关文章: