hive+mysql安裝、hive.metastore.local屬性的真正用途

來源:互聯網
上載者:User

  本文對Hive+mysql的安裝做一個總結,後期會把Hive的一些資料放上來:

1.安裝目標:

  Hive搭配遠程Mysql

2.要點總結:

  1).Mysql的配置:

    假如Hive以hive使用者串連Mysql,以root使用者登入Mysql:

      drop user hive@'%';

      grant all on db.* to hive@'%' identified by '密碼';(使使用者可以遠端連線Mysql)

      grant all on db.* to hive@'localhost' identified by '密碼';(使使用者可以本地串連Mysql)
      flush privileges;

  2).Hive的安裝:

    a).安裝包和環境的匹配:

      本人安裝的是apache hadoop-1.0.x+Hive0.8。

    b).Hive安裝

      解壓安裝包,並在~/.bash_profile中添加HIVE_HOME環境變數,同時修改Path;

      從mysql官網下載自己喜歡version的mysql-connector-java-version-bin.jar,放到$HIVE_HOME/lib下;

      在$HIVE_HOME/conf下把hive-site.xml.example rename為hive-site.xml;

      將hive.metastore.local屬性設定為true

      其它需要修改的屬性為:

<property>  <name>javax.jdo.option.ConnectionURL</name>  <value>jdbc:mysql://192.168.1.234:3306/hivedb?createDatabaseIfNotExist=true</value>  <description>JDBC connect string for a JDBC metastore</description></property><property>  <name>javax.jdo.option.ConnectionDriverName</name>  <value>com.mysql.jdbc.Driver</value>  <description>Driver class name for a JDBC metastore</description></property><property>  <name>javax.jdo.option.ConnectionUserName</name>  <value>hive</value>  <description>username to use against metastore database</description></property><property>  <name>javax.jdo.option.ConnectionPassword</name>  <value>hive</value>  <description>password to use against metastore database</description></property>

  <property>
  <name>hive.cluster.delegation.token.store.zookeeper.connectString</name>
  <value>192.168.7.14:2181</value>
  <description>The ZooKeeper token store connect string.</description>
  </property>

 

3.metadata遠程儲存和hive.metastore.local屬性的說明:

  官網上對hive.metastore.local屬性的解釋為:local or remote metastore (Removed as of Hive 0.10: If hive.metastore.uris is empty local mode is assumed, remoteotherwise);即本地或者遠端中繼資料(在hive0.10版本上刪除列這個屬性;如果hive.metastore.uris屬性為空白,則預設為本地模式,否則為遠程模式)。

  而hive將中繼資料存放區在 RDBMS 中,有三種模式可以串連到資料庫:

  1)ingle User Mode: 此模式串連到一個 In-memory 的資料庫 Derby,一般用於 Unit Test。 

  2)Multi User Mode:通過網路連接到一個資料庫中,是最經常使用到的模式。 

  3)Remote Server Mode:用於非 Java 用戶端訪問中繼資料庫,在伺服器端啟動一個 MetaStoreServer,用戶端利用 Thrift 協議通過 MetaStoreServer 訪問中繼資料庫。

  如果配置遠程儲存metadata,則需要先在遠程端啟動hive的中繼資料存放區Server服務:hive --service metastore;Server端配置上面介紹的相同即可。預設的連接埠號碼是9083,我在conf目錄下所有檔案裡沒有grep到此連接埠,但是用netstat -anp |grep 9083能看到此連接埠處於監聽狀態,停止服務後,連接埠釋放,所以此版本連接埠號碼是在程式裡寫死的。

  client端的配置:

hive.metastore.uris thrift://<host_name>:<port> host and port for the thrift metastore server
hive.metastore.local false this is local store
hive.metastore.warehouse.dir <base hdfs path> default location for Hive tables.

  client端配置好後,執行hive命令去Server端取meta資料,而Server端資料存放區於mysql,將中繼資料存放區和Hive服務分開,詳細的官方文檔:https://cwiki.apache.org/Hive/adminmanual-metastoreadmin.html#AdminManualMetastoreAdmin-RemoteMetastore

  至此,終於明白列hive.metastore.local屬性的作用!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.