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/
如圖所示: