Hive(2.1.0)配置過程

一、解壓hive到hadoop的source目錄下html

二、配置環境變量java

export HIVE_HOME=/usr/local/hadoop/hive
export HIVE_CONF_DIR=$HIVE_HOME/conf
export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib
export PATH=$PATH:$HIVE_HOME/bin

三、配置教程參考地址:http://www.cnblogs.com/bjtu-leefon/p/3170044.html (不能徹底參考)    mysql

 1)更改用戶權限。在終端中輸入以下命令:sql

sudo chown -R hadoop:hadoop hive

2)進入hive的conf目錄數據庫

      複製hive-default.xml.template文件兩次,將文件名分別更改成,hive-default.xml和hive-site.xml,hive-default.xml爲hive默認配置文件,不須要修改,hive-site.xml爲用戶自定義配置文件,在啓動hive時用戶自定義修改的部分會覆蓋默認配置。服務器

3)在hive的目錄下,新建warehouse、tmp、log文件夾。oracle

      此時修改hive-site.xml中的對應路徑。oop

<property>
   <name>hive.metastore.warehouse.dir</name>
   <value>修改成warehouse文件夾路徑(例如:/usr/local/hadoop/hive/warehouse)
   </value>
   <description>location of default database for the warehouse</description>
</property>
<property>
   <name>hive.querylog.location</name>
   <value>修改成log文件夾的路徑(例如:/usr/local/hadoop/hive/log)</value>
   <description>
    Location of Hive run time structured log file
   </description>
</property>
<property>
    <name>hive.downloaded.resources.dir</name>
    <value>修改成tmp文件夾的地址(例如:/usr/local/hadoop/hive/tmp</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
</property>

4)進入hive的conf目錄post

      複製hive-env.sh.template更更名字爲hive-env.sh優化

      修改hive-env.sh的內容。

      將export HADOOP_HEAPSIZE=1024前面的‘#’去掉,固然能夠根據本身的環境對這個默認的1024進行優化;

      將export HADOOP_HOME前面的‘#’號去掉,並讓它指向所安裝hadoop的目錄,例如:/usr/local/hadoop

      export HIVE_CONF_DIR、export HIVE_AUX_JARS_PATH同理,配置相應路徑。

      將export HIVE_CONF_DIR=/usr/local/hadoop/hive/conf,而且把‘#’號去掉;

      將export HIVE_AUX_JARS_PATH=/usr/local/hadoop/hive/lib,而且把‘#’號去掉。

四、初始化元數據庫

     本例中將初始化元數據爲遠程mysql(同時替換內置derby元數據庫爲mysql)

     未初始化數據庫會報以下錯誤:

     Exception in thread 「main」 java.lang.RuntimeException: Hive metastore database is not initialized. Please use schematool (e.g. ./schematool -initSchema -dbType …) to create the schema.

    運行./schematool -initSchema -dbType ...命令初始化元數據

   -dbType後跟的相關參可選:derby|mysql|postgres|oracle

   derby數據庫爲hive的內置數據庫,不須要修改配置文件,若是使用mysql,須要修改配置文件:

   參考教程:http://www.cnblogs.com/linjiqin/archive/2013/03/04/2943025.html

 1)新建mysql數據庫hivedb,並創建用戶hivedb,設置密碼

 2)修改hive-site.xml中本來爲derby的配置項

修改內容以下:

 

<property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://遠程mysql服務器IP地址:3306/hivedb</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>hivedb(mysql用戶名)</value>
    </property>
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>hivedb(mysql用戶密碼)</value>
</property>

 3)由於上面配置了com.mysql.jdbc.Driver,因此須要引入mysql-connector-java-5.1.27.jar,將jar包放入hive目錄下的lib文件夾中。

 4)在進入hive目錄下的bin目錄,運行命令:./schematool -initSchema -dbType mysql

 運行成功,結果以下:

5)而後輸入hive,啓動hive,出現輸入框即啓動成功。

   6)進一步驗證:

   1)在Hive上創建數據表

   hive> CREATE TABLE test(id INT,name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

  2)在hive輸入框中輸入 show tables 命令,查看是否顯示錶test。

  3)從 MySQL 數據庫上查看元數據信息,從mysql的終端輸入命令

     select * from tbls

     查看是否顯示錶test的相關信息,顯示,即建表成功。

五、啓動報錯: 

Logging initialized using configuration in jar:file:/usr/local/hadoop/hive/lib/hive-common-2.1.0.jar!/hive-log4j2.properties Async: true

Exception in thread "main" java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwxr-xr-x

權限問題,解決方案:

輸入命令:hadoop fs -chmod -R 777 /tmp/hive

相關文章
相關標籤/搜索