一、先在主節點上安裝阿里雲配置(看別的文檔)html
二、把須要的兩個jar包加入進來(放到hadoop用戶目錄下面便可即/home/hadoop/)java
mysql-connector-java-5.1.47.tar.gzmysql
apache-hive-2.3.4-bin.tar.gzsql
三、解壓壓縮包(在hadoop用戶主節點下運行)數據庫
下載地址apache
而後下載hive文件socket
http://mirror.bit.edu.cn/apache/hive/hive-2.3.4/oop
或者這個ui
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
四、配置環境變量
vi ~/.profile
export HIVE_HOME=/home/hadoop/hadoop_home/apache-hive-2.3.4-bin
export PATH=$PATH:$HIVE_HOME/bin
source ~/.profile
五、在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
六、修改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配置文件路徑
七、而後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&characterEncoding=UTF-8&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
注意必定要英文下的槓
若是仍是失敗,1、試一下遠成鏈接可否成功,不成功從新配置遠程而後重啓數據庫2、檢查配置或者命令的格式問題3、檢查數據庫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,對比配置先後差別