標籤:des style blog http io ar os 使用 sp
hive調試資訊顯示模式:
./hive -hiveconf hive.root.logger=DEBUG,console
非常有用。
預設情況下,Hive中繼資料儲存在內嵌的 Derby 資料庫中,只能允許一個會話串連,只適合簡單的測試。為了支援多使用者多會話,則需要一個獨立的中繼資料庫,我們使用 MySQL 作為中繼資料庫,Hive 內部對 MySQL 提供了很好的支援,配置一個獨立的中繼資料庫需要增加以下幾步驟:
第一步:安裝MySQL伺服器端和MySQL用戶端,並啟動MySQL服務。
此步省略,具體請看http://www.cnblogs.com/wuhou/archive/2008/09/28/1301071.html
第二步:安裝Hive
此步省略,具體請看http://www.cnblogs.com/linjiqin/archive/2013/03/04/2942402.html
第三步:為Hive建立相應的MySQL賬戶,並賦予足夠的許可權,執行命令如下:
[email protected]:~$ mysql -uroot -pmysqlmysql> CREATE USER ‘hive‘ IDENTIFIED BY ‘mysql‘;mysql> GRANT ALL PRIVILEGES ON *.* TO ‘hive‘@‘%‘ WITH GRANT OPTION;mysql> flush privileges;
預設情況下Mysql只允許本地登入,所以需要修改設定檔將地址綁定給注釋掉:
[email protected]:~# sudo gedit /etc/mysql/my.cnf
找到如下內容:
# Instead of skip-networking the default is now to listen only on# localhost which is more compatible and is not less secure.#bind-address = 127.0.0.1 <---注釋掉這一行就可以遠程登入了
重啟mysql服務:
sudo service mysql restart
第四步:建立 Hive 專用的中繼資料庫,記得建立時用剛才建立的“hive”帳號登陸。
mysql> exit;[email protected]:~$ mysql -uhive -pmysqlmysql> create database hive;
第五步:在Hive的conf目錄下的檔案“hive-site.xml”中增加如下配置:
<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration> <property> <name>hive.metastore.local</name> <value>true</value> </property> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://192.168.11.157:3306/hive?characterEncoding=UTF-8</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>hive</value> </property> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>mysql</value> </property></configuration>
從前面我們知道我們的“hive-site.xml”是一個“hive-default.xml.template”的一個拷貝,裡面的配置參數非常之多,但是並不是我們都需要的,我們知道,Hive 系統會載入兩個設定檔一個預設設定檔“hive-default.xml”,另一個就是使用者自訂檔案“hive-site.xml”。當“hive-site.xml”中的配置參數的值與“hive-default.xml”檔案中不一致時,以使用者自訂的為準。所以我們就把我們不需要的參數都刪除掉,只留下上面所示的內容。
備忘:其實修改這裡的設定檔如果在Linux下面進行則非常麻煩,盡然我們都建立了FTP了,為何不用,所以把Master.Hadoop上面的這個設定檔下載下來,按照要求進行修改,這樣的檔案在Windows進行操作是非常方便的,弄好之後在上傳上去,覆蓋原來的即可。
第六步:把MySQL的JDBC驅動包複製到Hive的lib目錄下。
JDBC驅動包的版本:mysql-connector-java-5.1.18-bin.jar
第七步:啟動 Hive Shell, 執行“show tables;”命令,如果不報錯,表明基於獨立中繼資料庫的 Hive 已經安裝成功了。
[email protected]:~$ hiveLogging initialized using configuration in file:/home/hadoop/hive-0.9.0/conf/hive-log4j.propertiesHive history file=/tmp/hadoop/hive_job_log_hadoop_201303041631_450140463.txthive> show tables;OKTime taken: 1.988 secondshive>
第八步:驗證Hive配置是否有誤,進入Hive的shell建立表,在MySQL的Hive資料庫中可以看到相應的中繼資料庫資訊。
1)在Hive上建立資料表
hive> CREATE TABLE xp(id INT,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘\t‘;
2)從 MySQL 資料庫上查看中繼資料資訊
用到的 SQL 陳述式:
use hive; //使用 hive 資料庫庫
show tables;//顯示 hive 資料庫中的資料表
select * from TBLS;//查看 hive 的中繼資料資訊
到此Hive整合Mysql作為中繼資料已完成。
遠程模式安裝
遠程模式安裝是把 metastore 配置到遠程機器上,可以配置多個。在獨立模式的基礎上需要在 hive-site.xml 檔案中增加的配置項如下:
<property> <name>hive.metastore.local</name> <value>local</value></property><property> <name>hive.metastore.uris</name> <value>uri1,uri2,... </value>//可配置多個 uri <description>JDBC connect string for a JDBC metastore</description></property>
hive上mysql中繼資料庫配置