hadoop安裝hive


CentOS7下默認沒有安裝MySQL,有MariaDB數據庫
MariaDB數據庫是MySQL的一個分支,主要是開源社區在維護,採用GPL授權許可,開發此分支的原因之一是:甲骨文收購了MySQL後,有將MySQL閉源風險。MariaDB目的是完全兼容MySQL,包括API和命令行。

1. 卸載MariaDB

# 查看系統上的MariaDB
[root@master hive3.1]# rpm -qa | grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
# 卸載
[root@master hive3.1]# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

說明:
rpm -qa 列出所有已安裝軟件包
rpm -e packagename 刪除軟件包
rpm -e --nodeps packagename 強制刪除軟件和依賴包
rpm -q 包名 查詢包是否安裝
rpm -ivh 包名 安裝軟件包

2. 下載hive,mysql,mysqlconnect

http://mirrors.estointernet.in/apache/hive/

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

https://dev.mysql.com/downloads/connector/j/

2.1 安裝mysql

下載的mysql安裝包,傳到centos中,解壓,會看到
MySQL-server-5.6.43-1.el7.x86_64.rpm
MySQL-client-5.6.43-1.el7.x86_64.rpm

rpm -ivh MySQL-server-5.6.43-1.el7.x86_64.rpm
rpm -ivh MySQL-server-5.6.43-1.el7.x86_64.rpm

rpm -i 需要安裝的包文件
rpm -iv 需要安裝的包文件(顯示安裝詳情)
rpm -ivh 需要安裝的包文件(顯示安裝詳情及進度)

2.2 安裝配置hive

把下載的文件放到/opt/hive 下
解壓,把目錄改爲hive2.3

  1. 配置hive環境變量

vi /etc/profile

export HIVE_HOME=/opt/hive/hive2.3
export PATH=$PATH:$HIVE_HOME/bin

source /etc/profile

  1. 在conf目錄下,從模板文件增加hive-site.xml和hive-env.sh文件
mv hive-default.xml.template hive-site.xml
mv hive-env.sh.template hive-env.sh
  1. 修改在$HIVE_HOME/conf下面,修改hive的配置文件hive-env.sh,內容如下:
export JAVA_HOME=/opt/java/jdk1.8
export HADOOP_HOME=/opt/hadoop/hadoop2.8
export HIVE_HOME=/opt/hive/hive2.3
export HIVE_CONF_DIR=/opt/hive/hive2.3/conf
export HIVE_AUX_JARS_PATH=/opt/hive/hive2.3/lib
  1. 修改在$HIVE_HOME/conf下面,修改hive的配置文件hive-site.xml,內容如下:
		<property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
         </property>

        <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://192.168.2.5:3306/hivedemo?createDatabaseIfNotExsit=true&amp;characterEncoding=UTF-8&amp;verifyServerCertificate=false&amp;useSSL=false</value>
        </property>

		<property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
        </property>
                            
        <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>password</value>
        </property>
        
        <property>
        <name>datanucleus.schema.autoCreateAll</name>
        <value>true</value>
        </property>

        <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
        </property>

同時,
在hive 配置文件hive-site.xml 中找到${system:java.io.tmpdir},並把此都替換成具體目錄,如/opt/hive/hive2.3/tmpdir

  1. 拷貝剛纔下載的驅動包到$HIVE_HOME/lib目錄下
  2. 對數據庫用戶授權
mysql> grant all on *.* to 'root'@master identified by 'password';
Query OK, 0 rows affected (0.00 sec)
  1. 初始化,啓動hive
    在$HIVE_HOME/bin目錄下
./schematool -initSchema -dyType mysql
# 初始化完成之後
hive

3. 掉過的坑

3.1 登錄到hive數據倉庫後,輸入一些命令,出現如下錯誤

Failed with exception java.io.IOException:java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:user.name%7D

解決辦法:
進入$HIVIE_HOME/conf,打開hive-site.xml文件
找到如下屬性

<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/opt/hive/hive2.3/iotmp/${system:user.name}</value>
    <description>Local scratch space for Hive jobs</description>
  </property>

修改爲:

<property>
    <name>hive.exec.local.scratchdir</name>
    <value>/opt/hive/hive2.3/iotmp/${user.name}</value>
    <description>Local scratch space for Hive jobs</description>
  </property>

問題解決!

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