Hbase 操作命令
文章目錄
- Hbase Shell 操作
- 一,基本操作
- 1,啟動hbase
- 2,命名空間操作命令
- 3,表操作命令
- 二,DML
- 1,寫入數據
- 2,讀取數據
- 三、刪除與版本介紹
Hbase Shell 操作
一,基本操作
1,啟動hbase
首先啟動hbase: start-hbase.sh
進入hbase 命令行命令: hbase shell
2,命名空間操作命令
1,查看幫助命令: help 想要查看具體命令的話,需要加上引號 例如 help ‘create_namespace’
能夠展示Hbase中所用能使用的命令,主要是使用的命令有 namespace 命令空間有關,DDL創建修改表格,DML寫入讀取數據.
輸入help ‘create_namespace’ 下面例出了兩種創建命名空間的語法格式
2, namespace 命名空間
創建命名空間: create_namespace 要先創建命名空間。然后在命名空間里面創建表格
3,查看命名空間: list_namespace 可以查看創建好了的所有的命名空間,系統自帶的有兩個,其中這個default 沒寫命名空間的時候就存儲在default里面,NAMESPACE 是系統的命名空間,我們是不會人為的去用到的,有系統需要用到的表格
4,修改命名空間: alter_namespace
5,刪除命名空間:drop_namespace
3,表操作命令
通過help幫助命令,可以看到有很多的創建方式
1,創建一個表
輸入命令: create ‘bigdata:test1’,{NAME=>‘h1’,VERSIONS=>5}
創建表之前需要先創建一個命名空間,要是是在default默認空間里的話就可以省略命令空間
如果是在默認的命名空間default 里的話,是可以省略的,直接表名,如果沒有其他的參數需要更改的話,直接加上兩個列族就行
輸入命令: describe ‘default:student’ 查看剛剛創建的表
可以看得到,我們直接加入了兩個列族,h1和h2
想要創建多個列族和里面的參數的話,直接用逗號隔開
輸入命令: list 可以查看所有的命名空間和表名 下面那種沒有命名空間的就是在默認的命名空間default 下
2,修改表
表名創建時寫的所有和列族相關的信息,都可以后續通過alter修改,包括增加刪除列族,也是在修改操作里的
增加列族和修改信息都使用覆蓋的方法,
沒增加前前的 ‘bigdata:hbase1’ 的列族名和維護的版本
1)輸增加列族命令:alter ‘bigdata:hbase1’,{NAME=>‘list1’,VERSIONS=>9},{NAME=>‘list2’,VERSIONS=>9}
查看修改之后的 ‘bigdata:hbase1’ 表里面的信息 發現增加了兩個列族
2)修改’bigdata:hbase1’ 的 列族list1 的版本信息 從版本6改為3,修改列族信息的時候不要加大括號,直接列族名,后面跟要修改的參數
可以看到list1的版本號已經從6改為3了
3)刪除列族的話有兩種語法:
alter ‘bigdata:hbase1’, NAME=>‘list1’, METHOD=>‘delete’ 第一種 method的參數改為delete
alter ‘bigdata:hbase1’ ,‘delete’=> ‘list2’ 第二種delete 直接跟 列族名
我比較喜歡第二種
可以看到下面在table1和table2的列族已經不存在了
3,刪除表
刪除表需要drop命令,使用help查看,可以看到drop 命令的語法非常簡單
先查看有哪些表
刪除 ‘mydb1:mytbl’ 表 ,發現下面報錯了
需要先把表標記為 disable 不可用,才能刪除, 直接disable 加表名就可以了
輸入命令: disable ‘mydb1:mytbl’ 修改后查看,可以看到已經成disable了
再進行刪除表
刪除成功,‘mydb1:mytbl’ 表不存在
二,DML
1,寫入數據
在Hbase 中如果想要寫入數據,只能添加結果中最底層的 cell ,可以手動加入時間戳指定的cell版本,推薦不寫默認使用當前的系統時間
在hbase里面想要寫入數據都使用put,想要修改的話也可以用他,是直接覆蓋的,查看put的語法
輸入命令: put ‘bigdata:hbase1’,‘1001’,‘list1:name’,‘zhangsan’
語法是 put 然后表名,然后是列族,列名是name,最后這個張三就是1001行,name列下的數據
要是是在同一行號,同一列下增加數據的話,就會覆蓋
要是想在同一列下增加數據的話,直接把行號改了就行了
要是想增加多列的話,直接行號不變,修改列名增加數據就行了
2,讀取數據
讀取數據使用get 和 scan
get最大的數據是一行數據,也可以進行列的過濾,讀取數據的結果為多行cell
查看get和scan的使用方法
輸入命令: get ‘bigdata:hbase1’ ,‘1003’ 直接get 表明加行號,所有的數據都讀出來了,get只能讀一行1的數據
要是想要指定查看哪些列的話,行號后面加上{COLUMN=>},里面是具體的列名,要是有多個的話,就用列表裝起來
如果想要讀取多行數據的話,get就不行了,得使用scan掃描
scan可以掃描整張表,所有的行和所有的列
輸入命令: scan ‘bigdata:hbase1’
輸入命令: scan ‘bigdata:hbase1’,{STARTROW=>‘1001’,STARTROW=>‘1002’} ,可以指定掃描從哪里到哪里
三、刪除與版本介紹
刪除數據的方法有兩個: delete 和 deleteall
這里就要涉及當初創建表的時候,設置的維護版本的問題
delete ‘bigdata:hbase1’,‘1001’,‘list1:sex’ delete 加 表名加行名加 列名 刪除sex列
刪除之后,再次查看 1003 行的,sex列已經沒有了,因為這里的VERSIONS設置的是1
把列族list1的版本號改為7,然后下面讀取多個版本的數據
查看一行的多個版本的數據,COLUNM是列,VERSIONS=>7,讀取的是7個版本的數據,但是具體是多少,還是要看當時創建列族的時候,版本號是多少
2) deleteall 表示刪除所有版本的數據,即為當前行,當前列的多個cell。(執行命令會標記數據為要刪除,不會直接將數據徹底刪除,刪除數據只在特定的時期清理磁盤時進行)
輸入命令: deleteall ‘bigdata:hbase1’,‘1001’,‘list1:name’ 刪除這個列所有的版本數據
再次查看這個1001 行 name的數據就為空了
總結
以上是生活随笔為你收集整理的Hbase 操作命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 流媒体之RTMP——librtmp推流测
- 下一篇: 从计算、建模到回测:因子挖掘的最佳实践