Linux中基於hadoop安裝hive(SUSE12+hadoop2.6.4+hive2.3.4)

 說明:安裝hive前提是要先安裝hadoop集羣,而且hive只須要再hadoop的namenode節點集羣裏安裝便可(須要再全部namenode上安裝),能夠不在datanode節點的機器上安裝。另外還須要說明的是,雖然修改配置文件並不須要你已經把hadoop跑起來,可是本文中用到了hadoop命令,在執行這些命令前你必須確保hadoop是在正常跑着的,並且啓動hive的前提也是須要hadoop在正常跑着,因此建議你先將hadoop跑起來在按照本文操做。html

如何安裝和啓動hadoop集羣,請參考:java

https://www.cnblogs.com/doubleuncle/p/10375454.htmlnode

 

1.安裝hivemysql

下載hivesql

地址:http://hive.apache.org/downloads.html數據庫

使用SecureFX將hive上傳至hadoop1的/opt/hive文件夾中apache

解壓文件函數

#tar -zxvf apache-hive-2.3.4-bin.tar.gzoop

修改配置文件測試

#vi /etc/profile

在任意位置添加如下內容

export JAVA_HOME=/opt/java/jdk1.8.0_201
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin

export HADOOP_HOME=/opt/hadoop/hadoop-2.6.5
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export HADDOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
export PATH=$PATH:$HADOOP_HOME/bin

export HIVE_HOME=/opt/hive/apache-hive-2.3.4-bin
export HIVE_CONF_DIR=$HIVE_HOME/conf
export CLASSPATH=$:CLASSPATH:$HIVE_HOME/lib/
export PATH=$PATH:$HIVE_HOME/bin:$HIVE_HOME/sbin

重啓profile文件

#source /etc/profile

hive配置文件修改:

新建並修改hive-site.xml文件

#cp   /opt/hive/apache-hive-2.3.4-bin/conf/hive-default.xml.template   /opt/hive/apache-hive-2.3.4-bin/conf/hive-site.xml

修改這個新建的hive-site.xml文件

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

將hive-site.xml文件中的全部的${system:java.io.tmpdir}替換爲hive的臨時目錄(例如我替換爲/opt/hive/tmp,該目錄若是不存在則要本身手工建立,而且賦予讀寫權限)

將hive-site.xml文件中的全部的${system:user.name}都替換爲root

 

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

搜索javax.jdo.option.ConnectionURL,將該name對應的value修改成MySQL的地址,例如我修改後是:

<name>javax.jdo.option.ConnectionURL</name>  

<value>jdbc:mysql://hadoop1:3306/hive?createDatabaseIfNotExist=true</value>

    

搜索javax.jdo.option.ConnectionDriverName,將該name對應的value修改成MySQL驅動類路徑,例如個人修改後是:

<property> 

  <name>javax.jdo.option.ConnectionDriverName</name> 

  <value>com/mysql/cj/jdbc/Driver</value> 

</property>      

(

tips:

jdk7+老版5.0驅動請填入com/mysql/jdbc/Driver 

jdk8+新版6.0驅動請填入com/mysql/cj/jdbc/Driver

我這裏使用的驅動是mysql-connector-java-6.0.6.jar

)

 

搜索javax.jdo.option.ConnectionUserName,將對應的value修改成MySQL數據庫登陸名:

<name>javax.jdo.option.ConnectionUserName</name>

<value>root</value>

 

搜索javax.jdo.option.ConnectionPassword,將對應的value修改成MySQL數據庫的登陸密碼:

<name>javax.jdo.option.ConnectionPassword</name>

<value>root</value>

 

搜索hive.metastore.schema.verification,將對應的value修改成false:

<name>hive.metastore.schema.verification</name>

<value>false</value>

使用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目錄,執行命令:

$HADOOP_HOME/bin/hadoop   fs   -mkdir   -p   /user/hive/warehouse

給剛纔新建的目錄賦予讀寫權限,執行命令:

$HADOOP_HOME/bin/hadoop   fs   -chmod   777   /user/hive/warehouse 

讓hadoop新建/tmp/hive/目錄,執行命令:

$HADOOP_HOME/bin/hadoop   fs   -mkdir  -p   /tmp/hive/

給剛纔新建的目錄賦予讀寫權限,執行命令:

$HADOOP_HOME/bin/hadoop   fs   -chmod  777   /tmp/hive


檢查hdfs目錄是否建立成功

$HADOOP_HOME/bin/hadoop fs -ls /user/hive/

$HADOOP_HOME/bin/hadoop fs -ls /tmp/

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

將hive-env.sh.template文件複製一份,而且更名爲hive-env.sh

cp /opt/hive/apache-hive-2.3.4-bin/conf/hive-env.sh.template /opt/hive/apache-hive-2.3.4-bin/conf/hive-env.sh

打開hive-env.sh配置而且添加如下內容

export  HADOOP_HOME=/opt/hadoop/hadoop-2.6.5

export  HIVE_CONF_DIR=/opt/hive/apache-hive-2.3.4-bin/conf

export  HIVE_AUX_JARS_PATH=/opt/hive/apache-hive-2.3.4-bin/lib

 

2.安裝mysql(由於hive自帶關係型數據庫derby不夠穩定,建議使用mysql數據庫)

下載hive

地址:https://dev.mysql.com/downloads/mysql/5.6.html#downloads

使用SecureFX將mysql上傳至hadoop1的/opt/mysql文件夾中

解壓文件

#tar -zxvf MySQL-5.6.43-2.sles12.x86_64.rpm-bundle.tar

安裝文件

#rpm -ivh *.rpm

從新啓動機器

#reboot

進入mysql數據庫,修改root用戶密碼

#set password for root@localhost = password('root'); 

修改遠程登錄權限

#update user set host = '%' where user = 'root';

#flush privileges;

 

3.啓動和測試

對MySQL數據庫進行初始化

進入到hive的bin目錄

#cd   /opt/hive/apache-hive-2.1.1-bin/bin

對數據庫進行初始化

#./schematool   -initSchema  -dbType  mysql

(

tips:

[INFO] Unable to bind key for unsupported operation: backward-delete-word

……

報錯緣由暫未找到,但顯示schemaTool completed說明數據化初始已成功

)

執行成功後,hive數據庫裏已經有一堆表建立好了

啓動hive

進入到hive的bin目錄

#cd   /opt/hive/apache-hive-2.1.1-bin/bin

執行hive腳本進行啓動

#./hive

執行簡單命令測試

查看函數的命令

#show  functions;

查看sum函數的詳細信息

#desc function  sum;

新建數據庫db_hive_edu

create database  db_hive_edu;

相關文章
相關標籤/搜索