日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用

發布時間:2023/11/28 生活经验 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

全網最詳細的Hive文章系列,強烈建議收藏加關注!

后面更新文章都會列出歷史文章目錄,幫助大家回顧知識重點。

目錄

系列歷史文章

前言

Hive的三種安裝模式和MySQL搭配使用

一、Hive的安裝方式

1、內嵌模式

2、本地模式

3、遠程模式

二、Hive的安裝

1、準備工作

2、安裝mysql數據庫

3、安裝Hive

三、Hive的交互方式

第一種交互方式:bin/hive

第二種交互方式:使用sql語句或者sql腳本進行交互

第三種交互方式:Beeline Client

四、Hive一鍵啟動腳本

1、安裝expect

2、創建腳本

3、修改腳本權限

4、啟動beeline


系列歷史文章

2021年大數據Hive(十二):Hive綜合案例!!!

2021年大數據Hive(十一):Hive調優

2021年大數據Hive(十):Hive的數據存儲格式

2021年大數據Hive(九):Hive的數據壓縮???????

2021年大數據Hive(八):Hive自定義函數

2021年大數據Hive(七):Hive的開窗函數

2021年大數據Hive(六):Hive的表生成函數

2021年大數據Hive(五):Hive的內置函數(數學、字符串、日期、條件、轉換、行轉列)

2021年大數據Hive(四):Hive查詢語法

2021年大數據Hive(三):手把手教你如何吃透Hive數據庫和表操作(學會秒變數倉大佬)

2021年大數據Hive(二):Hive的三種安裝模式和MySQL搭配使用

2021年大數據Hive(一):Hive基本概念???????

前言

2021大數據領域優質創作博客,帶你從入門到精通,該博客每天更新,逐漸完善大數據各個知識體系的文章,幫助大家更高效學習。

有對大數據感興趣的可以關注微信公眾號:三幫大數據

Hive的三種安裝模式和MySQL搭配使用

一、Hive的安裝方式

?hive的安裝一共有三種方式:內嵌模式、本地模式、遠程模式

元數據服務(metastore)作用是:客戶端連接metastore服務,metastore再去連接MySQL數據庫來存取元數據。有了metastore服務,就可以有多個客戶端同時連接,而且這些客戶端不需要知道MySQL數據庫的用戶名和密碼,只需要連接metastore 服務即可。

1、內嵌模式

內嵌模式使用的是內嵌的Derby數據庫來存儲元數據,也不需要額外起Metastore服務。數據庫和Metastore服務都嵌入在主Hive Server進程中。這個是默認的,配置簡單,但是一次只能一個客戶端連接,適用于用來實驗,不適用于生產環境。

解壓hive安裝包 ?bin/hive 啟動即可使用

缺點:不同路徑啟動hive,每一個hive擁有一套自己的元數據,無法共享。

2、本地模式

本地模式采用外部數據庫來存儲元數據,目前支持的數據庫有:MySQL、Postgres、Oracle、MS SQL Server.在這里我們使用MySQL。

本地模式不需要單獨起metastore服務,用的是跟hive在同一個進程里的metastore服務。也就是說當你啟動一個hive 服務,里面默認會幫我們啟動一個metastore服務。

hive根據hive.metastore.uris 參數值來判斷,如果為空,則為本地模式。

缺點是:每啟動一次hive服務,都內置啟動了一個metastore。

3、遠程模式

遠程模式下,需要單獨起metastore服務,然后每個客戶端都在配置文件里配置連接到該metastore服務。遠程模式的metastore服務和hive運行在不同的進程里。

在生產環境中,建議用遠程模式來配置Hive Metastore。

在這種情況下,其他依賴hive的軟件都可以通過Metastore訪問hive。

遠程模式下,需要配置hive.metastore.uris 參數來指定metastore服務運行的機器ip和端口,并且需要單獨手動啟動metastore服務

hiveserver2是Hive啟動了一個server,客戶端可以使用JDBC協議,通過IP+ Port的方式對其進行訪問,達到并發訪問的目的。

二、Hive的安裝

我們在此處選擇第三臺機器node3作為我們hive的安裝機器,安裝方式使用遠程方式。

1、準備工作

1、下載hive的安裝包,這里我們選用hive的版本是2.1.0,軟件包為:apache-hive-2.1.0-bin.tar.gz

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

2、下載mysql的安裝包,我們使用的mysql版本是5.7.29,軟件包為:mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

?下載地址:https://downloads.mysql.com/archives/community/?

3、將apache-hive-2.1.0-bin.tar.gz上傳到/export/software目錄

4、將mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz上傳到/export/software目錄

2、安裝mysql數據庫

在這里,我們使用mysql數據庫作為Hive的元數據存儲,所以在安裝Hive之前,必須安裝好mysql

注意!!!!!,在安裝Mysql之前,給虛擬機保存一個快照,一旦安裝失敗,可以恢復快照,重新安裝!

1、解壓mysql安裝包

#將MySQL的安裝包提前上傳到Linux的/export/software目錄
cd?/export/software
tar??-zxvf mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz -C /export/server/

2、重命名

cd /export/server
mv?mysql-5.7.29-linux-glibc2.12-x86_64 ?mysql-5.7.29

3、添加用戶組與用戶

groupadd mysql
useradd?-r -g mysql mysql

4、修改目錄權限

chown?-R mysql:mysql /export/server/mysql-5.7.29/

5、配置mysql服務

cp?/export/server/mysql-5.7.29/support-files/mysql.server /etc/init.d/mysql

6、修改mysql配置文件

1)修改/etc/init.d/mysql文件

vim?/etc/init.d/mysql

將該文件的basedir和datadir路徑修改為以下內容

basedir=/export/server/mysql-5.7.29
datadir=/export/server/mysql-5.7.29/data

2)修改配置文件my.cnf

修改/etc/my.cnf文件

vim?/etc/my.cnf

將/etc/my.cnf原來的內容全部刪除,然后將以下內容復制進去.

[client]port=3306default-character-set=utf8[mysqld]basedir=/export/server/mysql-5.7.29datadir=/export/server/mysql-5.7.29/dataport=3306character-set-server=utf8default_storage_engine=InnoDB

7、初始化mysql

/export/server/mysql-5.7.29/bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql --basedir=/export/server/mysql-5.7.29 --datadir=/export/server/mysql-5.7.29/data

執行該命令之后,會生成一個mysql的臨時密碼,這個密碼后邊要使用。

8、啟動服務

service?mysql start

9、登錄mysql

使用第7步生成的臨時密碼

/export/server/mysql-5.7.29/bin/mysql -uroot -p臨時密碼

請注意,如果回車之后臨時密碼報錯,則可以執行以下指令,然后手動輸入臨時密碼:

/export/server/mysql-5.7.29/bin/mysql -uroot -p

10、修改密碼

注意這條命令是在登錄mysql之后執行

set?password=password('123456');

11、開啟遠程訪問權限

注意這條命令是在登錄mysql之后執行

GRANT ALL PRIVILEGES ON *.*?TO 'root'@'%'?IDENTIFIED BY '123456';?flush privileges;

12、修改環境變量

退出mysql,然后修改Linux的/etc/profile文件

vim?/etc/profile

在該文件末尾最后添加以下內容

export?MYSQL_HOME=/export/server/mysql-5.7.29
export?PATH=$PATH:$MYSQL_HOME/bin

保存修改之后,讓該文件的修改生效

source /etc/profile

13、將mysql設置為開機啟動

chkconfig --add mysql ?#mysql服務到自啟服務
chkconfig mysql on #設置自啟

3、安裝Hive

1、解壓Hive安裝包并重命名

cd /export/software
tar -zxvf apache-hive-2.1.0-bin.tar.gz ?-C /export/server
cd /export/server
mv apache-hive-2.1.0-bin hive-2.1.0

2、修改hive的配置文件

hive-env.sh ?

添加我們的hadoop的環境變量

cd??/export/server/hive-2.1.0/conf
cp?hive-env.sh.template hive-env.sh
vim?hive-env.sh

修改內容如下:

HADOOP_HOME=/export/server/hadoop-2.7.5
export?HIVE_CONF_DIR=/export/server/hive-2.1.0/conf

3、修改hive-site.xml

cd??/export/server/hive-2.1.0/conf
vim?hive-site.xml

在該文件中添加以下內容

<?xml?version="1.0"?encoding="UTF-8"?standalone="no"?><?xml-stylesheet?type="text/xsl"?href="configuration.xsl"?><configuration><property><name>javax.jdo.option.ConnectionUserName</name><value>root</value></property><property><name>javax.jdo.option.ConnectionPassword</name><value>123456</value></property><property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://node3:3306/hive?createDatabaseIfNotExist=true&useSSL=false</value></property><property><name>javax.jdo.option.ConnectionDriverName</name><value>com.mysql.jdbc.Driver</value></property><property><name>hive.metastore.schema.verification</name><value>false</value></property><property><name>datanucleus.schema.autoCreateAll</name><value>true</value></property><property><name>hive.server2.thrift.bind.host</name><value>node3</value></property></configuration>

4、上傳mysql的lib驅動包

將mysql的lib驅動包上傳到hive的lib目錄下

cd?/export/server/hive-2.1.0/lib

將mysql-connector-java-5.1.41-bin.jar?上傳到這個目錄下

5、拷貝相關jar包

將hive-2.1.0/jdbc/目錄下的hive-jdbc-2.1.0-standalone.jar 拷貝到hive-2.1.0/lib/目錄

cp /export/server/hive-2.1.0/jdbc/hive-jdbc-2.1.0-standalone.jar /export/server/hive-2.1.0/lib/

6、配置hive的環境變量

node03服務器執行以下命令配置hive的環境變量

vim?/etc/profile

添加以下內容:

export?HIVE_HOME=/export/server/hive-2.1.0
export?PATH=:$HIVE_HOME/bin:$PATH

三、Hive的交互方式

第一種交互方式:bin/hive

cd?/export/server/hive-2.1.0/#初始化元數據bin/schematool -dbType mysql -initSchemabin/hive

創建一個數據庫

create?database ?mytest;
show databases;

第二種交互方式:使用sql語句或者sql腳本進行交互

不進入hive的客戶端直接執行hive的hql語句

cd /export/server/hive-2.1.0/
bin/hive -e "create database mytest2"

或者我們可以將我們的hql語句寫成一個sql腳本然后執行

cd /export/server
vim ?hive.sql

腳本內容如下:

create?database mytest3;
use?mytest3;
create?table?stu(id int,name string);

通過hive -f ??來執行我們的sql腳本

bin/hive -f /export/server/hive.sql

第三種交互方式:Beeline Client

hive經過發展,推出了第二代客戶端beeline,但是beeline客戶端不是直接訪問metastore服務的,而是需要單獨啟動hiveserver2服務。

1)在node1的/export/server/hadoop-2.7.5/etc/hadoop目錄下,修改core-site.xml,在該文件中添加以下配置,實現用戶代理:

<property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.root.groups</name><value>*</value></property>

將修改好的core-site.xml文件分發到node2和node3,然后重啟Hadoop(stop-all.sh start-all.sh)

2)在hive運行的服務器上,首先啟動metastore服務,然后啟動hiveserver2服務。

nohup /export/server/hive-2.1.0/bin/hive --service metastore &
nohup /export/server/hive-2.1.0/bin/hive --service hiveserver2 &

nohup 和 & 表示后臺啟動

3)在node3上使用beeline客戶端進行連接訪問。

/export/server/hive-2.1.0/bin/beeline

根據提醒進行以下操作:

[root@node3 ~]# /export/server/hive-2.1.0/bin/beeline

which: no hbase in (:/export/server/hive-2.1.0/bin::/export/server/hadoop-2.7.5/bin:/export/data/hadoop-2.7.5/sbin::/export/server/jdk1.8.0_241/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/export/server/mysql-5.7.29/bin:/root/bin)

Beeline version 2.1.0 by Apache Hive

beeline>?!connect jdbc:hive2://node3:10000

Connecting to jdbc:hive2://node3:10000

Enter username for jdbc:hive2://node3:10000:?root

Enter password for jdbc:hive2://node3:10000:123456

連接成功之后,出現以下內容,可以在提示符后邊輸入hive sql命令

四、Hive一鍵啟動腳本

這里,我們寫一個expect腳本,可以一鍵啟動beenline,并登錄到hive。expect是建立在tcl基礎上的一個自動化交互套件, 在一些需要交互輸入指令的場景下, 可通過腳本設置自動進行交互通信。

1、安裝expect

yum ?-y?install expect

???????2、創建腳本

cd?/export/server/?hive-2.1.0
vim??beenline.exp

添加以下內容:

#!/bin/expect
spawn beeline
set?timeout 5
expect "beeline>"
send "!connect jdbc:hive2://node3:10000\r"
expect "Enter username for jdbc:hive2://node3:10000:"
send "root\r"
expect "Enter password for jdbc:hive2://node3:10000:"
send "123456\r"
interact

???????3、修改腳本權限

chmod?777?beenline.exp

???????4、啟動beeline

expect beenline.exp

  • 📢博客主頁:https://lansonli.blog.csdn.net
  • 📢歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!
  • 📢本文由 Lansonli 原創,首發于 CSDN博客🙉
  • 📢大數據系列文章會每天更新,停下休息的時候不要忘了別人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活?

總結

以上是生活随笔為你收集整理的2021年大数据Hive(二):Hive的三种安装模式和MySQL搭配使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。