hive的安裝(後設資料庫: MySQL)

wangmm0218發表於2014-05-07

hive的安裝(後設資料庫: MySQL)


hive介紹:

Apache Hive資料倉儲軟體提供對儲存在分散式中的大型資料集的查詢和管理,它本身是建立在Apache Hadoop之上,主要提供以下功能:
(1)它提供了一系列的工具,可用來對資料進行提取/轉化/載入(ETL);
(2)是一種可以儲存、查詢和分析儲存在HDFS(或者HBase)中的大規模資料的機制;
(3)查詢是通過MapReduce來完成的(並不是所有的查詢都需要MapReduce來完成,比如select * from XXX就不需要;
(4)在Hive0.11對類似select a,b from XXX的查詢通過配置也可以不通過MapReduce來完成

   在hadoop生態圈中屬於資料倉儲的角色。他能夠管理hadoop中的資料,同時可以查詢hadoop中的資料。
  本質上講,hive是一個SQL解析引擎。Hive可以把SQL查詢轉換為MapReduce中的job來執行。
  hive有一套對映工具,可以把SQL轉換為MapReduce中的job,可以把SQL中的表、欄位轉換為HDFS中的檔案(夾)以及檔案中的列。
  這套對映工具稱之為metastore,一般存放在derby、mysql中。

 hive在hdfs中的預設位置是/user/hive/warehouse,是由配置檔案hive-conf.xml中屬性hive.metastore.warehouse.dir決定的。


  1) 在mysql裡建立hive使用者,並賦予其足夠許可權
[root@node01 mysql]# mysql -u root -p
Enter password:


mysql> create user 'hivedb' identified by 'hivedb';
Query OK, 0 rows affected (0.00 sec)


mysql> grant all privileges on *.* to 'hivedb' with grant option;
Query OK, 0 rows affected (0.00 sec)


mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)


2)測試hive使用者是否能正常連線mysql,並建立hive資料庫


[root@node01 mysql]# mysql -u hivedb-p
Enter password:

mysql> create database hivedb;
Query OK, 1 row affected (0.00 sec)


mysql> use hivedb;
Database changed
mysql> show tables;
Empty set (0.00 sec)


3)解壓縮hive安裝包

tar -xzvf hive-0.9.0.tar.gz

mv hive-0.9.0 hive
cd hive
 ls

4)下載mysql連線java的驅動 並拷入hive home的lib下

 mv mysql-connector-java-5.1.24-bin.jar ./hive/lib


5)修改環境變數,把Hive加到PATH

vi .bash_profile
export HIVE_HOME=/home/hadoop/hive
export PATH=$PATH:$HIVE_HOME/bin

儲存退出;
source  .bash_profile

6)修改hive-env.sh
cp hive-env.sh.template hive-env.sh

7)拷貝hive-default.xml 並命名為 hive-site.xml

修改四個關鍵配置 為上面mysql的配置
cp hive-default.xml.template hive-site.xml
vi hive-site.xml


<property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://localhost: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>hivedb</value>
  <description>username to use against metastore database</description>
</property>


<property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>hivedb</value>
  <description>password to use against metastore database</description>
</property>


8)修改hadoop的配置檔案hadoop-env.sh

修改hadoop的配置檔案hadoop-env.sh,修改內容如下:
export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin


9)在目錄$HIVE_HOME/bin下面,修改檔案hive-config.sh

在目錄$HIVE_HOME/bin下面,修改檔案hive-config.sh,增加以下內容:
     export JAVA_HOME=/usr/java/jdk
     export HIVE_HOME=/home/hadoop/hive
     export HADOOP_HOME=/home/hadoop/hadoop


10)啟動hadoop

      ./start-all.sh

11)啟動hive

cd hive/bin

        ./hive

       





相關文章