- Hive是什麼
- Hive是基於Hadoop的一個數據倉庫工具,應該是整個Hadoop系統中最常使用的一個功能組件,通過內部的關係型元資料庫,將存儲在hdfs中的文件有效的管理起來,並提供類SQL的資料庫操作語言,滿足大數據集的統計分析工作。關於Hive的架構原理和基本操作部分.
- Hive操作中常見的問題及處理方法
- 1)如何在腳本中嵌入hive操作語句
- 命令:hive -e 「語句塊」
- 案例:
- hive -e 「set io.sort.mb=10; select did,mac,made,count(*) from table_name where date between 『2016-06-01』 and 『2016-06-30』 and io =』in』 and (did is not null and did<>」) group by did,mac,made 」
- 說明:語句塊中,各個語句之間用分號分隔
- 2)大數據集情況下,hive查詢提示」 Java heap space」錯誤
- 解決辦法:調整hive的io.sort.mb參數(默認值為100),使其值在10-80之間
- 命令:set io.sort.mb=10
- 3)Hive中空值處理
- hive中空值有兩種形態:null 和』 『,其存儲規則為:若欄位類型為string,則null的存儲值為N, 』 『的存儲值為本身,其他欄位類型如int的存儲值均為N;對於string類型,條件is null 查出來的是N的數據;而條件 =』』,查詢出來的是」「的數據
- hive可自定義字元來表示null,比如用』 『表示null,實現空值的存儲統一.
- 命令如下:
- alter table tab_name set serdeproperties(『serialization.null.format』=」)
- 空值條件查詢(針對字元串):
- select b.id,b.name from b where b.name<>』』 and b.name is not null;
- 4)查看hive表數據的存儲路徑
- 指令:show create table table_name;
- 實例:
- (https://img-blog.csdn.net/20170915151428947?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvenlsb3ZlMjAxMA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast)
- 5)Load hdfs文件時報SemanticException [Error 10028]錯誤
- 原因說明:Line 1:17 Path is not legal,Please check that values for params 「default.fs.name」 and 「hive.metastore.warehouse.dir」 do not conflict.
- hive配置文件被更改導致
- 解決辦法:Load 文件時,添加Path的絕對路徑即可,且主機IP需用別名。
- load data inpath 『hdfs://master1:9000/home/liuh3/router_mac/part-00000』 into table router_m;
- 後續遇到新的問題再補充。。
※myeclipse中將整塊的代碼所選中的代碼左右移動的快捷鍵
※代碼實現順序表的操作函數
TAG:程序員小新人學習 |