1. 程式人生 > 其它 >hive安裝部署

hive安裝部署

hive安裝部署

hive官網地址:http://hive.apache.org/

下載地址:http://archive.apache.org/dist/hive/

這裡用的hive版本是:apache-hive-1.1.0-bin.tar.gz

1. Hadoop叢集配置

(1)必須啟動hdfs和yarn

啟動hdfs:
[root@master hadoop]# sbin/start-dfs.sh
啟動yarn:
[root@master hadoop]# sbin/start-yarn.sh
也可全部啟動:
[root@master hadoop]# sbin/start-all.sh

(2)在HDFS上建立/user/hive/warehouse目錄並修改同組許可權可寫

建立目錄:
hadoop fs -mkdir -p /user/hive/warehouse
修改許可權:
hadoop fs -chmod g+w /user/hive/warehouse

如圖所示:

2. hive安裝及配置

(1)把 apache-hive-1.1.0-bin.tar.gz上傳到 linux 的/opt/software 目錄下

(2)進入/opt/software目錄,解壓 apache-hive-1.1.0-bin.tar.gz 到/opt/module/目錄下面

tar -zxvf apache-hive-1.1.0-bin.tar.gz -C /opt/module/

進入解壓後的hive目錄,修改 apache-hive-1.1.0-bin 的名稱為 hive

mv apache-hive-1.1.0-bin hive

(3)新增環境變數

命令:

vi /root/.bash_profile

加入下面內容:

#HIVE_HOME
export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin

使設定立即生效:

source /root/.bash_profile

(4)修改/opt/module/hive/conf目錄下的hive-env.sh.template名稱為hive-env.sh

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

(5)配置hive-env.sh檔案

命令:

vi hive-env.sh

新增如下內容:

export HADOOP_HOME=/opt/module/hadoop   	# 配置 HAOOP_HOME 目錄
export HIVE_CONF_DIR=/opt/module/hive/conf  # 配置 Hive 配置目錄資訊

(6)在Hadoop裡面進入目錄

cd /opt/module/hadoop/share/hadoop/yarn/lib/

刪除 jline-0.9.94.jar

rm -rf jline-0.9.94.jar

然後把/opt/module/hive/lib裡面的複製過去

cp jline-2.12.jar /opt/module/hadoop/share/hadoop/yarn/lib/

(7)進入hive目錄,初始化元資料庫

bin/schematool -dbType derby -initSchema

(8)啟動並使用 Hive

(1)啟動 Hive

bin/hive

2)使用 Hive

hive> show databases;
hive> show tables;
hive> create table test(id int);
hive> insert into test values(1);
hive> select * from test;

3. MySQL安裝

(1)檢查當前系統是否安裝過 MySQL

rpm -qa|grep mariadb

如果存在通過如下命令解除安裝

rpm -e --nodeps mariadb-libs

(2)將 MySQL 安裝包拷貝到/opt/software 目錄下

(3)進入/opt/software目錄,解壓 MySQL 安裝包

tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar

(4)在安裝包解壓後的目錄下執行 rpm 安裝

rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm

注意:按照順序依次執行!

(5)刪除/etc/my.cnf 檔案中 datadir 指向的目錄下的所有內容,如果有內容的情況下:

檢視/etc/my.cnf檔案中datadir指向的目錄

cat /etc/my.cnf

刪除/var/lib/mysql 目錄下的所有內容:

進入目錄:
cd /var/lib/mysql
刪除所有內容:
rm -rf ./*

(6)初始化資料庫

mysqld --initialize --user=mysql

(7)檢視臨時生成的 root 使用者的密碼

cat /var/log/mysqld.log 

如圖:

(8)啟動 MySQL 服務

systemctl start mysqld

(9)登入 MySQL 資料庫

mysql -uroot -p

(10)必須先修改 root 使用者的密碼,否則執行其他的操作會報錯

mysql> set password = password("新密碼");
mysql> update mysql.user set host='%' where user='root';
mysql> flush privileges;									//立即生效

如圖所示:

4. Hive 元資料配置到 MySQL

4.1 拷貝驅動

(1)將 MySQL 的 JDBC 驅動拷貝到/opt/software 目錄下

(2)進入/opt/software目錄,將 MySQL 的 JDBC 驅動複製到 Hive 的 lib 目錄下

cp mysql-connector-java-5.1.37.jar /opt/module/hive/lib/

4.2 修改配置檔案

(1)在/opt/module/hive/conf 目錄下新建 一個檔名稱為hive-site.xml的 檔案

vi hive-site.xml

新增如下內容

<configuration>
        <!-- jdbc 連線的 URL -->
        <property>
                <name>javax.jdo.option.ConnectionURL</name>
                <value>jdbc:mysql://master:3306/metastore?useSSL=false</value>
        </property>
        <!-- jdbc 連線的 Driver-->
        <property>
                <name>javax.jdo.option.ConnectionDriverName</name>
                <value>com.mysql.jdbc.Driver</value>
        </property>
        <!-- jdbc 連線的 username-->
        <property>
                <name>javax.jdo.option.ConnectionUserName</name>
                <value>root</value>
        </property>
        <!-- jdbc 連線的 password ,修改為前面設定的MySQL的密碼-->
        <property>
                <name>javax.jdo.option.ConnectionPassword</name>
                <value>111111</value>
        </property>
        <!-- Hive 元資料儲存版本的驗證 -->
        <property>
                <name>hive.metastore.schema.verification</name>
                <value>false</value>
        </property>
        <!--元資料儲存授權-->
        <property>
                <name>hive.metastore.event.db.notification.api.auth</name>
                <value>false</value>
        </property>
        <!-- Hive 預設在 HDFS 的工作目錄 -->
        <property>
                <name>hive.metastore.warehouse.dir</name>
                <value>/user/hive/warehouse</value>
        </property>
</configuration>

(2)登陸 MySQL

mysql -uroot -p

(3)新建 Hive 元資料庫

這裡的資料庫名字與hive-site.xml中對應,如圖所示:

mysql> create database metastore;
mysql> quit;						//退出

(4) 進入hive目錄,初始化 Hive 元資料庫

bin/schematool -initSchema -dbType mysql -verbose

5. 再次啟動 Hive

(1)啟動 Hive

bin/hive

(2)使用 Hive

hive> show databases;

6. hive基本操作

(1)啟動hive

[root@master hive]# bin/hive

(2)檢視資料庫

hive> show databases;

(3)開啟預設資料庫

hive> use default;

(4)顯示default資料庫中的表

hive> show tables;

(5)建立一張表

hive> create table student(id int, name string);

(6)顯示資料庫中有幾張表

hive> show tables;

(7)查看錶的結構

hive> desc student;

(8)向表中插入資料

hive> select * from student;

(9)查詢表中資料

hive> select * from student;

(10)刪除已建立的student表

hive> drop table student;

(11)退出hive

hive> quit;

hive建立內部表

hive>create table student
	>(id int,name string,age int)  
	>row format delimited fields terminated by ','   
	>lines terminated by '\n';

將txt檔案資料匯入hive表中

hive> load data local inpath '/opt/software/test.txt' into table student;
# inpath裡面是存放txt檔案的路徑

建立外部表

hive>create external table test
	>(id int,name string,age int)  
	>row format delimited fields terminated by ','   
	>lines terminated by '\n';

建立分割槽表

hive>create external table test1
	>(name string,id int)
	>partitioned by(tel string)
	>row format delimited fields terminated by ','
	>lines terminated by '\n';

內部表與外部表的轉換

修改student為外部表:
hive>alter table student set tblproperties('EXTERNAL'='TRUE');
修改外部表test為內部表:
hive>alter table test set tblproperties('EXTERNAL'='FALSE');

檢視建立的表:

hive> show tables;

如圖所示:

檢視webUI:

在網頁上輸入網址:http://192.168.1.110:50070/

如圖所示: