配置hive環境以及mysql配置后必須做


1、先在主節點上安裝阿里雲配置(看別的文檔)

2、把需要的兩個jar包加入進來(放到hadoop用戶目錄下面即可即/home/hadoop/

mysql-connector-java-5.1.47.tar.gz

apache-hive-2.3.4-bin.tar.gz

3、解壓壓縮包(在hadoop用戶主節點下運行)

下載地址

然后下載hive文件

http://mirror.bit.edu.cn/apache/hive/hive-2.3.4/

或者這個

 http://archive.apache.org/dist/hive/hive-2.3.4/ 

MySQL Java 連接器添加到 $HIVE_HOME/lib 目錄下(后續創建)。我安裝時使用的是 mysql-connector-java- 5.1.47.jar。

在mysql-connector-java-5.1.47.tar.gz解壓后的下面

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

http://ftp.ntu.edu.tw/MySQL/Downloads/Connector-J/

運行程序

tar -xvf apache-hive-2.3.4-bin.tar.gz -C hadoop_home/

tar -xvf mysql-connector-java-5.1.47.tar.gz

4、配置環境變量

vi ~/.profile

export HIVE_HOME=/home/hadoop/hadoop_home/apache-hive-2.3.4-bin

export PATH=$PATH:$HIVE_HOME/bin

source ~/.profile

5、在apache-hive-2.3.4-bin/conf

cp hive-env.sh.template hive-env.sh

cp hive-default.xml.template hive-site.xml

cp hive-log4j2.properties.template hive-log4j2.properties

cp hive-exec-log4j2.properties.template hive-exec-log4j2.properties

6、修改hive-env.sh

因為 Hive 使用了 Hadoop, 需要在 hive-env.sh 文件中指定 Hadoop 安裝路徑:

export JAVA_HOME=/home/hadoop/hadoop_home/jdk1.8.0_181    ##Java路徑

export HADOOP_HOME=/home/hadoop/hadoop_home   ##Hadoop安裝路徑

export HIVE_HOME=/home/hadoop/hadoop_home/apache-hive-2.3.4-bin    ##Hive安裝路徑

export HIVE_CONF_DIR=/home/hadoop/hadoop_home/apache-hive-2.3.4-bin/conf    ##Hive配置文件路徑

7、然后apt-get install mysql-server

若是沒有設置密碼

根據提示安裝就可以了,不過安裝完成后沒有密碼,需要重置密碼

4.重置mysql密碼

$ mysql -u root

1

登錄時有可能報這樣的錯:

ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2)

1

原因是/var/lib/mysql的訪問權限問題。下面的命令把/var/lib/mysql的擁有者改為當前用戶:

$ sudo chown -R root:root /var/lib/mysql

1

5.重啟mysql服務

$ service mysqld restart   或者/etc/init.d/mysql restart

1

6.接下來登錄重置

$ mysql -u root  //直接回車進入mysql控制台

mysql > use mysql;

mysql > update user set password=password('123456') where user='root';

mysql > exit;

進入以下界面

cd   /etc/mysql/mysql.conf.d

然后

vi vi mysqld.cnf

 

把最下面的bind-address  =127.0.0.1

注釋掉就好(后面sqoop用到)

 

8設置遠程連接

設置遠程連接

mysql> CREATE DATABASE hive;創建數據庫

mysql> USE hive;進入數據庫

mysql> CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';創建hive用戶,並且密碼為hive,允許本地登錄

mysql> GRANT ALL ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive';把hive數據庫的內容到hive用戶下,即配置權限

mysql> GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';

mysql> FLUSH PRIVILEGES;

mysql> quit;

在root用戶下執行

service mysqld restart   或者/etc/init.d/mysql restart

重啟服務

 

9創建HDFS目錄

在 Hive 中創建表之前需要創建以下 HDFS 目錄並給它們賦相應的權限。

 先啟動集群  :start-all.sh

hdfs dfs -mkdir -p /user/hive/warehouse

hdfs dfs -mkdir -p /user/hive/tmp

hdfs dfs -mkdir -p /user/hive/log

hdfs dfs -chmod g+w /user/hive/warehouse

hdfs dfs -chmod g+w /user/hive/tmp

hadoop fs -chmod -R 777 /user/hive/tmp

hdfs dfs -chmod g+w /user/hive/log

10創建數據庫和用戶

假定你已經安裝好 MySQL。下面創建一個 hive 數據庫用來存儲 Hive 元數據,且數據庫訪問的用戶名和密碼都為 hive。

mysql> CREATE DATABASE hive;

mysql> USE hive;

mysql> CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';

mysql> GRANT ALL ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive';

mysql> GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive';

mysql> FLUSH PRIVILEGES;

mysql> quit;

11修改hive-site.xml 

然后在配置文件hive-site.xml中,把所有的${system:java.io.tmpdir} 都替換為/usr/local/hive/tmp (有可能需要轉義字符)

把所有的${system:user.name}替換為${user.name}

直接修改為下面這樣也可以,注意用戶名和密碼,對應上一步中mysql創建的用戶名和密碼

依次查找下面的修改。

 <property>

    <name>hive.exec.scratchdir</name>

    <value>/user/hive/tmp</value>

</property>

<property>

    <name>hive.metastore.warehouse.dir</name>

    <value>/user/hive/warehouse</value>

</property>

<property>

    <name>hive.querylog.location</name>

    <value>/user/hive/log</value>

</property>

<property>

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

    <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&amp;characterEncoding=UTF-8&amp;useSSL=false</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</value>

</property>

12.創建/usr/local/hive/tmp文件夾

切換到root用戶執行

mkdir -p /usr/local/hive/tmp

chown -R hadoop:hadoop /usr/local/hive/tmp

chown -R hadoop:hadoop /user/local/hive/tmp 設置權限(root權限下面)

4.運行Hive

在命令行運行 hive 命令時必須保證以下兩點:

HDFS 已經啟動。可以使用 start-dfs.sh 腳本來啟動 HDFS。

運行 schematool 命令來執行初始化操作。

schematool -dbType mysql -initSchema

注意一定要英文下的杠

如果還是失敗,一、試一下遠成連接能否成功,不成功重新配置遠程然后重啟數據庫二、檢查配置或者命令的格式問題三、檢查數據庫hive下是否會莫名導入很多亂七八糟的包,刪除然后重建

然后執行

hive

 

 

在最后補充

1)在 hive-site.xml 文件中添加如下配置信息,就可以實現顯示當前數據庫,以及查詢 表的頭信息配置。

<property>
<name>hive.cli.print.header</name>
<value>true</value>
</property>
<property>
<name>hive.cli.print.current.db</name>
<value>true</value>
</property>


2)重新啟動 hive,對比配置前后差異

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM