在僞分佈hadoop-1.2.1環境下配置hive-0.12.0

環境:Ubuntu14.04

            hadoop-1.2.1

1,下載解壓縮Hive

        下載地址:http://mirrors.cnnic.cn/apache/hive/hive-0.12.0/   版本是hive-0.12.0

            解壓:tar -xvzf hive-0.12.0.tar.gz /opt/hive


         更改hive文件夾所有者爲hadoop用戶:chown -R hadoop hive

2,配置環境參數

        vim /etc/profile

        添加以下內容:

HIVE_HOME=/opt/hive
PATH=$HIVE_HOME/bin:$PATH
export HIVE_HOME
export PATH

      使更改生效:source /etc/profile

3,更改配置文件

        1,更改/opt/hive/conf/hive-env.sh.tmplate中的 HADOOP_HOME=/opt/hadoop

        然後複製並改hive-env.sh.template爲hive-env.sh : cp hive-env.sh.template hive-env.sh

        並加上可執行權限:chmod +777 hive-env.sh

        2,在hdfs中創建/tmp文件夾和/user/hive/warehouse文件夾並給予一定的權限

        hadoop fs -mkdir /tmp

        hadoop fs -mkdir /user/hive/warehouse

        hadoop fs -chmod g+w /tmp

        hadoop fs -chmod g+w /user/tmp/warehouse

        3,將/opt/hive/conf/hive-default.xml.tmplate複製兩份,一份爲hive-default.xml作爲備份,一份爲hive-site.xml做配置用。上面定義的/tmp和/user/hive/warehouse就在hive-site.xml中的屬性hive.metastore.warehouse.dir和hive.exec.scratchdir屬性指定。如果有修改也要記得修改配置文件。

       4,運行hive如果進入

          hive>

          輸入命令show tables;

          如果出現錯誤:FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.metastore.HiveMetaStoreClient

          將hive-site.xml文件中的

<property>
  <name>hive.metastore.schema.verification</name>
  <value>true</value>
   <description>
   </description>
</property>
         true改爲false之後成功了。

         在這種情況下,hive使用的是最簡單的元數據存儲方式,使用derby存儲元數據。但是我們要是使用mysql,所以接下來要配置mysql。


4,安裝mysql

       參見http://www.cnblogs.com/linjiqin/archive/2013/03/04/2942497.html

5,配置mysql

       1,爲hive創建mysql用戶

        首先用自己在安裝時設置的root用戶和密碼登陸mysql:

        mysql -uroot -p<root-passwd>(root-passwd是你的root用戶的密碼)

        mysql> create user 'hive' identified by 'hive-passwd'               (hive-passwd自己設置的hive的密碼)

        mysql> grant all privileges on *.* to 'hive'@'%' with grant option

        mysql> flush privileges;

        2,修改mysql的配置文件允許遠程登陸

        vim /etc/mysql/my.cnf

        將其中的

        #bind-address = 127.0.0.1

        這一行的註釋去掉

        3,修改hive-site.xml

<configuration>
<property>
  <name>hive.exec.scratchdir</name>
  <value>/tmp/hive-${user.name}</value>
  <description>Scratch space for Hive jobs</description>
</property>
<property>
  <name>hive.exec.local.scratchdir</name>
  <value>/tmp/${user.name}</value>
  <description>Local scratch space for Hive jobs</description>
</property>
<property>
  <name>hive.metastore.warehouse.dir</name>
  <value>/user/hive/warehouse</value>
  <description>location of default database for the warehouse</description>
</property>
<property>
    <name>hive.metastore.local</name>
    <value>true</value>
</property>
 <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <!--改成自己本機IP地址>
   <value>jdbc:mysql://10.14.39.47/hive?createDatabaseIfNotExist=true</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>hive-passwd</value>
</property>
<property>
    <name>hive.metastore.schema.verification</name>
    <!--解決一些版本問題>
    <value>false</value>
 </property>
</configuration>
                       

       其中javax.jdo.option.ConnectionURL填自己的IP地址

       ConnectionUserName和ConnectionPassword填配置的訪問mysql的用戶和密碼

       4,拷貝mysql的JDBC驅動包到hive的lib目錄下

        cp mysql-connector-java-x.y.z-bin.jar /opt/hive/lib

        mysql-connector-java-x.y.z-bin.jar包在官網可以下載http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.33.tar.gz


發佈了47 篇原創文章 · 獲贊 1 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章