HBase介绍(4)---常用shell命令

    1. 进入hbase shell console
      $HBASE_HOME/bin/hbase shell
      如果有kerberos认证,需要事先使用相应的keytab进行一下认证(使用kinit命令),认证成功之后再使用hbase shell进入可以使用whoami命令可查看当前用户

      hbase(main)> whoami

    2. 表的管理
      1)查看有哪些表

      hbase(main)> list

      2)创建表

      # 语法:create <table>, {NAME => <family>, VERSIONS => <VERSIONS>}

      # 例如:创建表t1,有两个family name:f1,f2,且版本数均为2

      hbase(main)> create ‘t1‘,{NAME => ‘f1‘, VERSIONS => 2},{NAME => ‘f2‘, VERSIONS => 2}

      3)删除表
      分两步:首先disable,然后drop
      例如:删除表t1

      hbase(main)> disable ‘t1‘

      hbase(main)> drop ‘t1‘

      4)查看表的结构

      # 语法:describe <table>

      # 例如:查看表t1的结构

      hbase(main)> describe ‘t1‘

      5)修改表结构
      修改表结构必须先disable

      # 语法:alter ‘t1‘, {NAME => ‘f1‘}, {NAME => ‘f2‘, METHOD => ‘delete‘}

      # 例如:修改表test1的cf的TTL为180天

      hbase(main)> disable ‘test1‘

      hbase(main)> alter ‘test1‘,{NAME=>‘body‘,TTL=>‘15552000‘},{NAME=>‘meta‘, TTL=>‘15552000‘}

      hbase(main)> enable ‘test1‘

    3. 权限管理
      1)分配权限

      # 语法 : grant <user> <permissions> <table> <column family> <column qualifier> 参数后面用逗号分隔

      # 权限用五个字母表示: "RWXCA".

      # READ(‘R‘), WRITE(‘W‘), EXEC(‘X‘), CREATE(‘C‘), ADMIN(‘A‘)

      # 例如,给用户‘test‘分配对表t1有读写的权限,

      hbase(main)> grant ‘test‘,‘RW‘,‘t1‘

      2)查看权限

      # 语法:user_permission <table>

      # 例如,查看表t1的权限列表

      hbase(main)> user_permission ‘t1‘

      3)收回权限

      # 与分配权限类似,语法:revoke <user> <table> <column family> <column qualifier>

      # 例如,收回test用户在表t1上的权限

      hbase(main)> revoke ‘test‘,‘t1‘

    4. 表数据的增删改查
      1)添加数据

      # 语法:put <table>,<rowkey>,<family:column>,<value>,<timestamp>

      # 例如:给表t1的添加一行记录:rowkey是rowkey001,family name:f1,column name:col1,value:value01,timestamp:系统默认

      hbase(main)> put ‘t1‘,‘rowkey001‘,‘f1:col1‘,‘value01‘

      用法比较单一。

      2)查询数据
      a)查询某行记录

      # 语法:get <table>,<rowkey>,[<family:column>,....]

      # 例如:查询表t1,rowkey001中的f1下的col1的值

      hbase(main)> get ‘t1‘,‘rowkey001‘, ‘f1:col1‘

      # 或者:

      hbase(main)> get ‘t1‘,‘rowkey001‘, {COLUMN=>‘f1:col1‘}

      # 查询表t1,rowke002中的f1下的所有列值

      hbase(main)> get ‘t1‘,‘rowkey001‘

      b)扫描表

      # 语法:scan <table>, {COLUMNS => [ <family:column>,.... ], LIMIT => num}

      # 另外,还可以添加STARTROW、TIMERANGE和FITLER等高级功能

      # 例如:扫描表t1的前5条数据

      hbase(main)> scan ‘t1‘,{LIMIT=>5}

      c)查询表中的数据行数

      # 语法:count <table>, {INTERVAL => intervalNum, CACHE => cacheNum}

      # INTERVAL设置多少行显示一次及对应的rowkey,默认1000;CACHE每次去取的缓存区大小,默认是10,调整该参数可提高查询速度

      # 例如,查询表t1中的行数,每100条显示一次,缓存区为500

      hbase(main)> count ‘t1‘, {INTERVAL => 100, CACHE => 500}

      3)删除数据
      a )删除行中的某个列值

      # 语法:delete <table>, <rowkey>,  <family:column> , <timestamp>,必须指定列名

      # 例如:删除表t1,rowkey001中的f1:col1的数据

      hbase(main)> delete ‘t1‘,‘rowkey001‘,‘f1:col1‘

      注:将删除改行f1:col1列所有版本的数据
      b )删除行

      # 语法:deleteall <table>, <rowkey>,  <family:column> , <timestamp>,可以不指定列名,删除整行数据

      # 例如:删除表t1,rowk001的数据

      hbase(main)> deleteall ‘t1‘,‘rowkey001‘

      c)删除表中的所有数据

      # 语法: truncate <table>

      # 其具体过程是:disable table -> drop table -> create table

      # 例如:删除表t1的所有数据

      hbase(main)> truncate ‘t1‘

    5. Region管理
      1)移动region

      # 语法:move ‘encodeRegionName‘, ‘ServerName‘

      # encodeRegionName指的regioName后面的编码,ServerName指的是master-status的Region Servers列表

      # 示例

      hbase(main)>move ‘4343995a58be8e5bbc739af1e91cd72d‘, ‘db-41.xxx.xxx.org,60020,1390274516739‘

      2)开启/关闭region

      # 语法:balance_switch true|false

      hbase(main)> balance_switch

      3)手动split

      # 语法:split ‘regionName‘, ‘splitKey‘

      4)手动触发major compaction

      #语法:

      #Compact all regions in a table:

      #hbase> major_compact ‘t1‘

      #Compact an entire region:

      #hbase> major_compact ‘r1‘

      #Compact a single column family within a region:

      #hbase> major_compact ‘r1‘, ‘c1‘

      #Compact a single column family within a table:

      #hbase> major_compact ‘t1‘, ‘c1‘

    6. 配置管理及节点重启
      1)修改hdfs配置
      hdfs配置位置:/etc/hadoop/conf

      # 同步hdfs配置

      cat /home/hadoop/slaves|xargs -i -t scp /etc/hadoop/conf/hdfs-site.xml [email protected]{}:/etc/hadoop/conf/hdfs-site.xml

      #关闭:

      cat /home/hadoop/slaves|xargs -i -t ssh [email protected]{} "sudo /home/hadoop/cdh4/hadoop-2.0.0-cdh4.2.1/sbin/hadoop-daemon.sh --config /etc/hadoop/conf stop datanode"

      #启动:

      cat /home/hadoop/slaves|xargs -i -t ssh [email protected]{} "sudo /home/hadoop/cdh4/hadoop-2.0.0-cdh4.2.1/sbin/hadoop-daemon.sh --config /etc/hadoop/conf start datanode"

      2)修改hbase配置
      hbase配置位置:

      # 同步hbase配置

      cat /home/hadoop/hbase/conf/regionservers|xargs -i -t scp /home/hadoop/hbase/conf/hbase-site.xml [email protected]{}:/home/hadoop/hbase/conf/hbase-site.xml

      # graceful重启

      cd ~/hbase

      bin/graceful_stop.sh --restart --reload --debug inspurXXX.xxx.xxx.org

时间: 2024-10-13 12:16:15

HBase介绍(4)---常用shell命令的相关文章

Linux简单介绍与基本使用(文件操作、压缩与解压、常用shell命令)

文件管理(查找+操作) 使用图形界面 使用文本命令行 精确查找 查找find命令,递归的方式在目录下面层次查找 find 查找路径  [ 命令选项 ] [ 动作 ] 常用命令选项 按文件属性查找命令选项 -name 按文件名查找,区分大小写 -iname 按文件名查找,不区分大小写 -empty 查找空文件或目录 -maxdepth 查找最大深度 /第一级 /var/tmp/ 就是三级 / var tmp -mindepth 从哪个深度开始查找 /var 第二级 -perm 文件权限 比如477

常用shell命令和vi编辑器

Shell 介绍 Shell:壳(区别于:核) 普通意义上的shell就是可以接受用户输入命令的程序.它之所以被称作shell是因为它隐藏了操作系统低层的细节. Bourne-Again shell(bash):应用非常广泛的一种shell工具,是一个命令处理器,bash也是大多数Linux系统默认的Shell. 常用shell命令 shell 命令的使用 1. mkdir made dirctory 创建文件夹 mkdir 文件夹名称 mkdir img 创建了一个img文件夹 mkdir i

Hadoop常用shell命令

为了方便自己回顾记忆,将今天实验的hadoop命令总结一下,方便后续查看. 注意,下述命令是在hadoop/bin 下操作的. 1.hadoop fs -ls \    ->查看当前下面的所有目录. 2.hadoop fs -mkdir xxx ->创建xxx文件夹在hadoop文件系统上. 3.hadoop fs -rmr xxx -> 删除在文件系统上面创建的文件夹 4.hadoop fs -put /home/xuzhang/file1 xxx 将文件放入创建的xxx目录中 5.h

常用shell命令中你所不熟悉的参数

1.   ls: 类似于dos下的dir命令 ls最常用的参数有三个: -a -l -F. ls –a Linux上的文件以.开头的文件被系统视为隐藏文件,仅用ls命令是看不到他们的,而用ls -a除了显示一般文件名外,连隐藏文件也会显示出来. ls –l 该参数显示更详细的文件信息. ls –F 使用这个参数表示在文件的后面多添加表示文件类型的符号,例如*表示可执行,/表示目录,@表示连结文件,这都是因为使用了-F这个参数.但是现在基本上所有的Linux发行版本的ls都已经内建了-F参数,也就

Linux常用shell命令(学习小结)

1. man 对你熟悉或不熟悉的命令提供帮助解释 eg:man ls 就可以查看ls相关的用法 注:按q键或者ctrl+c退出,在linux下可以使用ctrl+c终止当前程序运行. 2. ls 查看目录或者文件的属性,列举出任一目录下面的文件 eg: ls /usr/man ls -l a.d表示目录(directory),如果是一个"-"表示是文件,如果是l则表示是一个连接文件(link) b.表示文件或者目录许可权限.分别用可读(r),可写(w),可运行(x). 3. cp 拷贝文

(转)HBase 常用Shell命令

转自:http://my.oschina.net/u/189445/blog/595232 hbase shell命令                             描述  alter 修改列族(column family)模式 count 统计表中行的数量 create 创建表 describe 显示表相关的详细信息 delete 删除指定对象的值(可以为表,行,列对应的值,另外也可以指定时间戳的值) deleteall 删除指定行的所有元素值 disable 使表无效 drop 删

Mac下的常用Shell命令

今天介绍一下在Mac的终端中一些常用的Shell命令: 1.查看当前工作目录的完整路径 pwd (pwd的原意是:print work directiory,而不是密码password的意思,呵呵) 2.查看命令的详细帮助man 命令名比如要看看 pwd 命令的详细用法,执行 man pwd 3.列出文件ls 参数 目录名例: 想看看跟目录下有什么,ls /想看看驱动目录下有什么,ls /System/Library/Extensions参数 -w 显示中文,-l 详细信息, -a 包括隐藏文件

Android_ADB 常用 shell命令 和 sqlite3 简单增删改查

今天学习了一个ADB的常用命令.接下来简单使用几个常用ADB shell 命令. 首先我们得明白什么是adb.exe ADB -Android Debug Bridge, 是 Android sdk 里的一个工具,用这个工具可以直接操作管理 Android 模拟器或者真实的 Android 设备 简单来说,ADB 是一个[客户端(pc)-服务器端(android)]程序. 当然,重要的一点是,你的 Android 设备得打开 USB 调试 ADB 的主要功能有: 1.运行设备的 shell(命令

linux安装系统分区详细介绍及常用ls命令

linux对于没有基础的初学者来说,最难的就是第一步,不为什么因为万事开头难,第一步就是装系统分区,而这里面最难的我认为就是分区部分,如果是让系统自动分区那就很简单,但对于初学者一般都是要手动分区的,特别是全英文的系统,对于英语基础差的童鞋,分区那里无疑是最难的,下面就跟好我的节奏带你上分!大家看下图,我们要选择最后一个,意思是要手动安装分区.接下来就会出现下个画面在这里就是重要的分区了,讲分区之前给大家说一下windows的分区,比方说windows上面有一个硬盘,我要把这个硬盘分四个区:C