1. 程式人生 > >Hive安裝配置要點

Hive安裝配置要點

操作 ont tex val 自動創建 官網 後來 sql value

官網下載安裝包; 在Profile下面定義HIVE_HOME以及HADOOP_HOME,然後在PATH下面添加HOME/bin目錄,用於在命令行直接敲beeline,hive即可執行命令; 需要在hadoop中創建: /user/hive/warehouse /tmp (記得當前目錄以及子目錄要賦權限777,否則會爆異常,見下面的異常) Hive有兩種客戶端,一種是HiveCLI已經被拋棄,現在Hive主推Beeline客戶端,在啟動的時候需要指定用戶: beeline -u jdbc:hive2://localhost:10000 HiveServer2的啟動方式是 bin/hiveserver2 hive日誌存放在/tmp/username/
hive.log show tables:展示所有的表; describe tablename:展示指定表的列信息; hive服務監聽端口:10000 hive網頁的端口:10002 Error executing SQL query "select "DB_ID" from "DBS"".(啟動hiveserver2的時候) 這是因為需要將hive下面的conf裏面的hive-default-site.xml.template變為hive-site.xml datanucleus.schema.autoCreateAll節點值設為true,自動創建必要的schema hive.metastore.schema.verification節點設置為false,不驗證schema的完備 java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D(啟動hiveserver2的時候) system:java.io.tmpdir單獨定義一個properyt名字就叫system:java.io.tmpdir,然後賦值value即可 User: hadoop is not allowed to impersonate anonymous(啟動beeline客戶端的時候) 需要配置hadoop裏面的core-site.xml文件添加如下節點: <property> <name>hadoop.proxyuser.hadoop.hosts
</name> <value>*</value> </property> <property> <name>hadoop.proxyuser.hadoop.groups</name> <value>*</value> </property> 粗體替換為執行bin/hiveserver2的用戶即可。這是因為Hadoop的安全機制,讓所有的應用通過指定的代理用戶來和Hadoop交互,而不是外部應用的實際用戶,避免外部應用對於hadoop的高權限訪問(難道是避免外部應用模擬管理員對其進行操作);後來我看了了一下core-default.xml,裏面並沒有hadoop.proxyuser.*的節點,這說明默認情況下是沒有指定代理用戶,這就導致任何外部應用都無法訪問hadoop,只有在外部的core-site.xml中進行手工指定才可以。 org.apache.hadoop.security.AccessControlException Permission denied: user=anonymous, access=WRITE, inode="/user/hive/warehouse":hadoop:supergroup:drwxrwxr-x(在beeline中執行語句的時候)
需要在: hadoop fs -chmod -R +777 /tmp hadoop fs -chmod -R +777 /user java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D (state=,code=0),在執行show tables語句的時候; 需要在hive-site.xml添加如下節點 <property> <name>system:user.name</name> <value>hadoop</value> </property>

Hive安裝配置要點