91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Hive與HBase有什么區別

發布時間:2021-12-09 09:13:40 來源:億速云 閱讀:6747 作者:小新 欄目:云計算

這篇文章主要為大家展示了“Hive與HBase有什么區別”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“Hive與HBase有什么區別”這篇文章吧。

兩者的共同點:
1.hbase與hive都是架構在hadoop之上的。都是用hadoop作為底層存儲
兩者的區別:

2.Hive是建立在Hadoop之上為了減少MapReduce jobs編寫工作的批處理系統,HBase是為了支持彌補Hadoop對實時操作的缺陷的項目

3.想象你在操作RMDB數據庫,如果是全表掃描,就用Hive+Hadoop,如果是索引訪問,就用HBase+Hadoop

4.Hive query就是MapReduce jobs可以從5分鐘到數小時不止,HBase是非常高效的,肯定比Hive高效的多。

5.Hive本身不存儲和計算數據,它完全依賴于HDFS和MapReduce,Hive中的表純邏輯

6.hive借用hadoop的MapReduce來完成一些hive中的命令的執行

7.hbase是物理表,不是邏輯表,提供一個超大的內存hash表,搜索引擎通過它來存儲索引,方便查詢操作。

8.hbase是列存儲。所以Hbase可以對數據進行增改刪等操作,但Hive是行的,只能追加數據。

9.hdfs作為底層存儲,hdfs是存放文件的系統,而Hbase負責組織文件。

10.hive需要用到hdfs存儲文件,需要用到MapReduce計算框架。

Hive與HBase有什么區別

Chapter 2: Hive操作

基礎操作:

登錄Hadoop的Master節點--》切換到Hadoop帳號-->使用Hive查看表,并exit退出:

Hive與HBase有什么區別

\

聯合查詢:

內連接:
hive> SELECT sales.*, things.* FROM sales JOIN things ON (sales.id = things.id);

查看hive為某個查詢使用多少個MapReduce作業
hive> Explain SELECT sales.*, things.* FROM sales JOIN things ON (sales.id = things.id);

外連接:
hive> SELECT sales.*, things.* FROM sales LEFT OUTER JOIN things ON (sales.id = things.id);
hive> SELECT sales.*, things.* FROM sales RIGHT OUTER JOIN things ON (sales.id = things.id);
hive> SELECT sales.*, things.* FROM sales FULL OUTER JOIN things ON (sales.id = things.id);

in查詢:Hive不支持,但可以使用LEFT SEMI JOIN
hive> SELECT * FROM things LEFT SEMI JOIN sales ON (sales.id = things.id);

CREATE TABLE ... AS SELECT:新表預先不存在
hive>CREATE TABLE target AS SELECT col1,col2 FROM source;


視圖查詢:

創建視圖:
hive> CREATE VIEW valid_records AS SELECT * FROM records2 WHERE temperature !=9999;

查看視圖詳細信息:

hive> DESCRIBE EXTENDED valid_records;

外部表、內部表、分區表的區別及操作:

此時,會在hdfs上新建一個tt表的數據存放地,例如,筆者是在 hdfs://master/input/table_data

上傳hdfs數據到表中:

load data inpath '/input/data' into table tt;

view source      print      ?

1.      load data inpath '/input/data' into table tt;    


此時會將hdfs上的/input/data目錄下的數據轉移到/input/table_data目錄下。

刪除tt表后,會將tt表的數據和元數據信息全部刪除,即最后/input/table_data下無數據,當然/input/data下再上一步已經沒有了數據!

如果創建內部表時沒有指定location,就會在/user/hive/warehouse/下新建一個表目錄,其余情況同上。

注意的地方就是:load data會轉移數據!

2. 外部表:

create external table et (name string , age string);

view source      print      ?

1.      create external table et (name string , age string);    


此時,會在/user/hive/warehouse/新建一個表目錄et

load data inpath '/input/edata' into table et;

此時會把hdfs上/input/edata/下的數據轉到/user/hive/warehouse/et下,刪除這個外部表后,/user/hive/warehouse/et下的數據不會刪除,但是/input/edata/下的數據在上一步load后已經沒有了!數據的位置發生了變化!本質是load一個hdfs上的數據時會轉移數據!

3. 分區表

Hive與HBase有什么區別

為內部表某個分區導入數據,Hive將建立目錄并拷貝數據到分區當中
LOAD DATA LOCAL INPATH '${env:HOME}/california-employees'
INTO TABLE employees
PARTITION (country = 'US', state = 'CA');
為外部表某個分區添加數據
ALTER TABLE log_messages ADD IF NOT EXISTS PARTITION(year = 2012, month = 1, day = 2)
LOCATION 'hdfs://master_server/data/log_messages/2012/01/02';
備注:Hive并不關心分區,目錄是否存在,是否有數據,這會導致沒有查詢結果

從本地文件系統中加載數據。 LOAD DATA LOCAL INPATH "/opt/data/1.txt"> 從HDFS中加載數據 LOAD DATA INPATH "/data/datawash/1.txt" INTO TABLE table1; 意思是從HDFS的/data/datawash/1.txt寫入到table1所在目錄。
關于加載中的OVERWRITE是這樣。 LOAD DATA LOCAL INPATH "/opt/data/1.txt" OVERWRITE INTO TABLE table1; 如果加了OVERWRITE,則覆蓋原先已經存在的數據,如果你確定原先沒有數據,則可以寫上。


Chapter 3: HBase操作

語法:

Hive與HBase有什么區別

 Hive與HBase有什么區別

  • 在安裝Hbase之前需先安裝Zookeeper,見http://xxx

操作 命令表達式
創建表

create 'table_name', 'family1','family2','familyN'

添加(更新)記錄 put 'table_name', 'rowkey', 'family:column', 'value'
查看記錄get 'table_name', 'rowkey'
查看表中的記錄總數count 'table_name'
刪除記錄delete 'table_name' ,'rowkey' , 'family:column'
deleteall 'table_name','rowkey'
刪除一張表disable 'table_name'
drop 'table_name'
查看所有記錄scan "table_name" ,很危險 最好加LIMIT : scan 'table_name',LIMIT=>10
查看某個表某個列中所有數據scan "table" , {COLUMNS =>['family1:','family2' VERSIONS=2]} VERSIONS 選填

練習:

Hive與HBase有什么區別

status //查看服務器狀態

Hive與HBase有什么區別

version //查詢Hbase版本

Hive與HBase有什么區別

create 'test','course','device' //創建表

Hive與HBase有什么區別

list //列出所有的表

Hive與HBase有什么區別

exists 'test' //查詢表是否存在

Hive與HBase有什么區別

put 'test','Li Lei','course:Math','90'

Hive與HBase有什么區別

put 'test','Han Meimei','course:English','92' //插入記錄

Hive與HBase有什么區別

get 'test','Li Lei' //獲取一個Id的所有數據

Hive與HBase有什么區別

get 'test','Li Lei','device' //獲取一個ID,一個列族的所有數據

Hive與HBase有什么區別

get 'test','Li Lei','device:laptop' // 獲取一個ID,一個列族中的一個列的所有數據

Hive與HBase有什么區別

更新一條記錄:

put 'test','Li Yang','device:laptop','Asus'

Hive與HBase有什么區別

count 'test' //查看表中有多少行

Hive與HBase有什么區別

delete 'test','Li Yang','device:laptop‘ //刪除id為’Li Yang’的值的’device:laptop’字段

Hive與HBase有什么區別

deleteall 'test','Li Yang‘ //刪除整行

Hive與HBase有什么區別

刪除表:
disable 'test'
drop 'test‘

退出:

exit
 

以上是“Hive與HBase有什么區別”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

黔西县| 新和县| 普安县| 太康县| 屏边| 三亚市| 嘉兴市| 齐齐哈尔市| 沁水县| 侯马市| 望奎县| 措勤县| 随州市| 盐山县| 小金县| 牙克石市| 盈江县| 淳安县| 毕节市| 五峰| 当涂县| 虞城县| 西吉县| 志丹县| 门源| 石台县| 平乐县| 荆州市| 稻城县| 上林县| 安化县| 南城县| 新巴尔虎左旗| 施秉县| 郧西县| 宁阳县| 磐石市| 阿图什市| 株洲市| 辉南县| 龙山县|