閱讀841 返回首頁    go 阿裏雲 go 技術社區[雲棲]


Hive初認識(2)

配置hive首先需要安裝在hadoop主節點的linux上
需要注意的需要同時安裝MYSQL
對於hive安裝呢 唯一要注意的就是配置site.xml文件
配置參數 通用的首先就是


javax.jdo.option.ConnectionURL

javax.jdo.option.ConnectionURL
jdbc:mysql://127.0.0.1:3306/hive?createDatabaseIfNotExist=true
JDBC connect string for a JDBC metastore

java.jdo.option.ConnectionDriverName


javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
Driver class name for a JDBC metastore

java.jdo.ConnectionUserName

javax.jdo.option.ConnectionUserName
root
Username to use against metastore database

java.jdo.ConnectionPassword

javax.jdo.option.ConnectionPassword
sa
password to use against metastore database

hive.exec.local.scratchdir


hive.exec.local.scratchdir
/usr/tools/apache-hive-2.0.0-bin/tmp
Local scratch space for Hive jobs

hive.downloaded.resources.dir

hive.downloaded.resources.dir
/usr/tools/apache-hive-2.0.0-bin/tmp/resources
Temporary local directory for added resources in the remote file system.

hive.querylog.location


hive.querylog.location
/usr/tools/apache-hive-2.0.0-bin/tmp
Location of Hive run time structured log file

hive.server2.logging.operation.log.location


hive.server2.logging.operation.log.location
/usr/tools/apache-hive-2.0.0-bin/tmp/operation_logs
Top level directory where operation logs are stored if logging functionality is enabled

配置完後,使用
schematool -initSchema -daType mysql

最後運行即可
如果報錯 可能星有兩個hive的site.xml信息配置出錯
不然就是mysql有問題

*關於*hive的使用
確保集群開啟
運行 hiveserver2
重新打開一個命令窗口
運行beeline
當出現
beeline>則表示運行成功
然後輸入!connect jdbc:hive2://localhost:10000
會出現讓你輸入user和password 當輸入完成後 則
會變成
0 : jdbc:hive://localhost:10000>

官網文檔為
image
當然你也可以指定鏈接參數在命令行它的意思就是可以找到你在unix shell命令的曆史記錄的字符串(所以第一次登錄個估計不行吧)
image

登錄進入後
可以執行一些讀寫操作

比如講hdfs上的文檔寫入到數據庫中
創建數據庫
create database test;
使用 數據庫
use test;
創建table
create table docs(line string);
講HDFS係統上的README.txt 文件寫入到docs 表中 以字符串的形式
load data inpath '/reversetext/README.txt' overwrite into table docs;

接下來做一個簡單的單詞計數
操作為
select explode (split(line,'\s')) from docs;
意思為講字符串參數 line 用空格分割開來
展示效果為 所有單個單詞
接下來聚合單詞 講上條sql作為子令
select word,count(*) from (select explode(split(line,'\s'))as word from docs)a group by word;

這樣的展示並未輸出寫入到hive數據庫中或者hdfs中
我們可以通過 下麵這條指令 將結果寫到table表格中
create table wc_result as select word,count(*) as wccount from (select explode (split(line,'\s'))as word from docs)a group by word;

這條語句中 我們是通過創建table表名為wc_result 將上麵的聚合結果當做輸入寫入到wc_result中 你可以發現 在這個創建的table中沒有指定字段.
所以說 hive中是可以不用指定字段,但是問題在於table如何創建的.

運用hive必須會數據語言
DDL 數據定義語言 創建刪除表數據庫 更改表結構
DML 數據操作語言 對表的增刪改查
DQL 數據查詢語言 Select ..
DCL 數據庫控製語言 grant priliages on , create user..

最後更新:2017-10-23 22:03:50

  上一篇:go  今年雙十一,和阿裏雲一起,通往智能之路
  下一篇:go  UC瀏覽器全免流活動正在進行