Centos基於hadoop集羣安裝hive

1.安裝hive 2.1.1

#解壓:
tar -zxvf apache-hive-2.1.1-bin.tar.gz
#把解壓後的文件移到目錄/usr/local/下:
mv apache-hive-2.1.1-bin /usr/local/apache-hive-2.1.1
#配置hive環境變量
vim /etc/profile
--------------------------------------------------
HIVE_HOME=/usr/local/apache-hive-2.1.1
HIVE_CONF_DIR=$HIVE_HOME/conf
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/bin:$HIVE_HOME/bin
export JAVA_HOME JRE_HOME PATH CLASSPATH HADOOP_HOME  HIVE_HOME HIVE_CONF_DIR
-------------------------------------------------
#使配置文件的修改生效
source /etc/profile

2.配置hive

2.1.配置hive-site.xml

#進入目錄
cd $HIVE_CONF_DIR
#拷貝hive-default.xml.template並重命名爲hive-site.xml
cp hive-default.xml.template hive-site.xml
#編輯hive-site.xml
vim hive-site.xml

2.1.1 使用hadoop新建hdfs目錄

因爲在hive-site.xml中有這樣的配置:

  <name>hive.metastore.warehouse.dir</name>
  <value>/user/hive/warehouse</value>
   <name>hive.exec.scratchdir</name>
  <value>/tmp/hive</value>

所以要在Hadoop集羣新建/user/hive/warehouse目錄,執行命令

cd $HADOOP_HOME #進入Hadoop主目錄
bin/hadoop fs -mkdir -p  /user/hive/warehouse #創建目錄
bin/hadoop fs -chmod -R 777 /user/hive/warehouse #新建的目錄賦予讀寫權限
bin/hadoop fs -mkdir -p /tmp/hive/#新建/tmp/hive/目錄
bin/hadoop fs -chmod -R  777 /tmp/hive #目錄賦予讀寫權限
#用以下命令檢查目錄是否創建成功
bin/hadoop fs -ls /user/hive
bin/hadoop fs -ls /tmp/hive

2.1.2.修改hive-site.xml中的臨時目錄

將hive-site.xml文件中的${system:java.io.tmpdir}替換爲hive的臨時目錄,例如我替換爲/usr/local/apache-hive-2.1.1/tmp/,該目錄如果不存在則要自己手工創建,並且賦予讀寫權限。

cd $HIVE_HOME
mkdir tmp
chmod -R 777 tmp/

例如原來:

  <property>    
<name>hive.downloaded.resources.dir</name><value>${system:java.io.tmpdir}/${hive.session.id}_resources</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>

替換爲:

  <property>
    <name>hive.downloaded.resources.dir</name>
    <!--value>${system:java.io.tmpdir}/${hive.session.id}_resources</value-->
    <value>/user/local/apache-hive-2.1.1/tmp/${hive.session.id}_resources</value>
    <description>Temporary local directory for added resources in the remote file system.</description>
  </property>

2.1.3.將配置文件中${system:user.name}都替換爲root

例如原來:

  <property>
    <name>hive.server2.logging.operation.log.location</name><value>${system:java.io.tmpdir}/${system:user.name}/operation_logs</value>
    <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
  </property>

替換爲:

  <property>
    <name>hive.server2.logging.operation.log.location</name>
    <value>/user/local/apache-hive-2.1.1/tmp/root/operation_logs</value>
    <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
  </property>

說明: 以上給出的只是配置文件中截取了幾處以作舉例,你在替換時候要認真仔細的全部替換掉。

2.1.4.修改hive-site.xml數據庫相關的配置

2.1.4.1.javax.jdo.option.ConnectionDriverName,將該name對應的value修改爲MySQL驅動類路徑:
<property
  <name>javax.jdo.option.ConnectionDriverName</name
  <value>com.mysql.jdbc.Driver</value>
</property>  
2.1.4.2.javax.jdo.option.ConnectionURL,將該name對應的value修改爲MySQL的地址:
 <name>javax.jdo.option.ConnectionURL</name>
 <value>jdbc:mysql://192.168.56.101:3306/hive?createDatabaseIfNotExist=true</value>
2.1.4.3.javax.jdo.option.ConnectionUserName,將對應的value修改爲MySQL數據庫登錄名:
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
2.1.4.4.javax.jdo.option.ConnectionPassword,將對應的value修改爲MySQL數據庫的登錄密碼:
<name>javax.jdo.option.ConnectionPassword</name><value>*******</value>
2.1.4.5.將MySQL驅動包上載到Hive的lib目錄下
cp /home/dtadmin/spark_cluster/mysql-connector-java-5.1.36.jar $HIVE_HOME/lib/

2.2.新建hive-env.sh文件並進行修改

cd $HIVE_CONF_DIR
cp hive-env.sh.template hive-env.sh #基於模板創建hive-env.sh
vim hive-env.sh #編輯配置文件並加入以下配置:
-------------------------------------------------
export HADOOP_HOME=/home/hadoop/hadoop-2.7.3
export HIVE_CONF_DIR=/usr/local/apache-hive-2.1.1/conf
export HIVE_AUX_JARS_PATH=/usr/local/apache-hive-2.1.1/lib
--------------------------------------------------

3.啓動和測試

3.1.對MySQL數據庫初始化

    先將mysql的驅動包放到hive/lib

#進入到hive的bin目錄
cd $HIVE_HOME/bin
#對數據庫進行初始化
schematool -initSchema -dbType mysql
 執行成功後查看相對應的mysql數據庫會生成相應的表。

./hive 可以進入hive的命令 行並執行命令。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章