zookeeper:spark-project專案的hive和mysql配置

花和尚也有春天發表於2018-09-18

安裝hive

1、將hive-0.13.1-cdh5.3.6.tar.gz使用WinSCP上傳到sparkproject1的/usr/local目錄下。

2、解壓縮hive安裝包:tar -zxvf hive-0.13.1-cdh5.3.6.tar.gz

3、重新命名hive目錄:mv hive-0.13.1-cdh5.3.6 hive

4、配置hive相關的環境變數

vi ~/.bashrc

export HIVE_HOME=/usr/local/hive

export PATH=$HIVE_HOME/bin

source ~/.bashrc

安裝mysql

1、在sparkproject1上安裝mysql。

2、使用yum安裝mysql server。

yum install -y mysql-server

service mysqld start

chkconfig mysqld on

3、使用yum安裝mysql connector

yum install -y mysql-connector-java

4、將mysql connector拷貝到hive的lib包中 cp /usr/share/java/mysql-connector-java-5.1.17.jar /usr/local/hive/lib

下載:https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.17 

5、在mysql上建立hive後設資料庫,建立hive賬號,並進行授權

create database if not exists hive_metadata;

 

--以下注意:第一個hive是使用者名稱 第二個hive是密碼 中間百分號是host的限制範圍為所有,配置為localhost的話,則限制本地

grant all privileges on hive_metadata.* to 'hive'@'%' identified by 'hive';

grant all privileges on hive_metadata.* to 'hive'@'localhost' identified by 'hive';

grant all privileges on hive_metadata.* to 'hive'@'spark1' identified by 'hive';--spark1為主機名

flush privileges;

use hive_metadata;

grant all privileges on hive_metadata.* to 'hive'@'sparkproject1' identified by 'hive';

配置hive相關配置檔案(使用預設debry的話預設不改以下配置就行)

配置hive-site.xml

mv hive-default.xml.template hive-site.xml

//hive後設資料存放在mysql中,這裡不使用hive原帶的debry

<property>  

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

<value>jdbc:mysql://spark1:3306/hive_metadata?createDatabaseIfNotExist=true</value>

</property>

//包含後設資料的資料儲存的JDBC驅動類名稱。預設值為org.apache.derby.jdbc.Embedded,這裡配置jdbc,需要連線mysql。

<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>

 

擴充套件:

Hive 將後設資料儲存在 RDBMS 中,一般常用 MySQL 和 Derby。預設情況下,Hive 後設資料儲存在內嵌的 Derby 資料庫中,只能允許一個會話連線,只適合簡單的測試。實際生產環境中不適用, 為了支援多使用者會話,則需要一個獨立的後設資料庫,使用 MySQL 作為後設資料庫,Hive 內部對 MySQL 提供了很好的支援。
內建的derby主要問題是併發效能很差,可以理解為單執行緒操作。
Derby還有一個特性。更換目錄執行操作,會找不到相關表等。
比如在/usr下執行建立表,在/usr下可以找到這個表。在/etc下執行查詢這個表,就會找不到 。

配置hive-env.sh和hive-config.sh

建立hive-env.sh

mv hive-env.sh.template hive-env.sh

修改hive-config.sh(後來我又配置單機版的,發現沒有這個檔案,就沒有配)

vi /usr/local/hive/bin/hive-config.sh

export JAVA_HOME=/usr/java/latest

export HIVE_HOME=/usr/local/hive

export HADOOP_HOME=/usr/local/hadoop

驗證hive是否安裝成功

直接輸入hive命令,可以進入hive命令列

create table users(id int, name string)

load data local inpath '/usr/local/users.txt' into table users

select name from users 

users.txt 

 

 

瀏覽:

 

 

 

 

 

相關文章