Hive的三種搭建模式及遠端方式詳細搭建步驟
hive搭建
hive三種方式區別和搭建按照Hive中metastore(元資料儲存)不同位置分為三種方式:
- 內嵌Derby方式 :hive將源資料儲存在HDFS中,而元資料預設儲存在hive自帶的資料庫Derby中。但是Derby不支援多使用者同時訪問,所以這種模式僅供測試使用。
- Local方式:使用mysql資料庫替代Derby來儲存元資料,以解決多使用者併發訪問問題
- Remote方式:以本地模式為基礎,mysql資料庫所在的節點提供metastore service服務,其他節點可以連線該服務來獲取元資料資訊
1,安裝Hive
解壓下載好的apache-hive-1.2.1-bin.tar.gz安裝包到 /opt/apache-hive-1.2.1目錄下 tar -zxvf apache-hive-1.2.1-bin.tar.gz /opt/apache-hive-1.2.1
2,配置環境變數
export HIVE_HOME=/opt/apache-hive-1.2.1
export PATH=$HIVE_HOME/bin:$PATH
3,三種方式的搭建(配置檔案的不同)
①Derby方式
修改hive-site.xml
配置檔案,修改如下
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:derby:;databaseName=metastore_db;create=true</value> </property> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>org.apache.derby.jdbc.EmbeddedDriver</value> </property> <property> <name>hive.metastore.local</name> <value>true</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property>
啟動hive
./hive
注意:將hive/lib目錄下的jline jar包拷貝到hadoop的yarn lib下
這種模式的弊端
使用derby儲存方式時,執行hive會在當前目錄生成一個derby檔案和一個metastore_db目錄。這種儲存方式的弊端是在同一個目錄下同時只能有一個hive客戶端能使用資料庫,否則會提示如下錯誤
[html] view plaincopyprint? hive> show tables; FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Failed to start database 'metastore_db', see the next exception for details. NestedThrowables: java.sql.SQLException: Failed to start database 'metastore_db', see the next exception for details. FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask hive> show tables; FAILED: Error in metadata: javax.jdo.JDOFatalDataStoreException: Failed to start database 'metastore_db', see the next exception for details. NestedThrowables: java.sql.SQLException: Failed to start database 'metastore_db', see the next exception for details. FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask
②Local(mysql)方式
這種儲存方式需要在本地執行一個mysql伺服器,並作如下配置(下面兩種使用mysql的方式,需要將 mysql的jar包拷貝到$HIVE_HOME/lib目錄下)。 即是hive和mysql都配置在客戶端修改hive-site.xml,配置如下
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive_remote/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost/hive_remote?createDatabaseIfNotExist=true</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>password</value>
</property>
注意一個坑:
許可權,雖然hive使用者對hive_meta資料庫是由操作許可權的,但是這個資料庫如果不存在,hive使用者也是沒有許可權建立這個資料庫,所以需要提前建立好hive_remote資料庫
③Remote(mysql)方式
- 配置server端hive-site.xml
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://192.168.57.6:3306/hive?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
- 配置客戶端hive-site.xml
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name>
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name>
<value>thrift://192.168.57.5:9083</value>
</property>
啟動hive服務端程式
hive --service metastore
客戶端啟動
hive
Remote方式搭建詳細步驟
1.安裝mysql
- 檢查是否已安裝mysql
rpm ‐qa|grep mysql
- 如果已安裝,解除安裝,然後使用上一步命令檢視是否已解除安裝
rpm ‐e ‐‐nodeps mysql‐libs‐5.1.73‐5.el6_6.x86_64(後面是響應的版本名稱)
- 線上安裝mysql
yum install -y mysql-server
- 開啟mysql服務
service mysqld start
- 設定mysql 服務自啟動
chkconfig mysqld on
- 新安裝的mysql沒有密碼輸入以下命令即可進入,提示輸入密碼直接回車
mysql -uroot -p
- 進入mysql後,設定許可權,修改密碼
修改root許可權:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123' WITH GRANT OPTION;
重新整理:
flush privileges;
- 新增使用者
新增使用者:
CREATE USER 'hive'@'%' IDENTIFIED BY '123';
授權使用者:這裡給hive使用者操作hive_meta資料庫的許可權
grant all privileges on hive_meta.* to [email protected]"%" identified by '123';
重新整理:
flush privileges;
- 為hive使用者建立資料庫 hive_mata,然後檢視一下資料庫
mysql> create database if not exists hive_mata;
Query OK, 1 row affected (0.04 sec)
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| hive_meta |
| mysql |
| test |
+--------------------+
4 rows in set (0.00 sec)
- 使用mysql資料庫
mysql> use mysql;
- 查看錶,裡面有一個user表儲存著資料庫使用者的資訊,這裡可能會出現許可權衝突問題,所以我們將多餘使用者資訊刪除
mysql> show tables;
mysql> delete from user where Host != '%';
- 退出mysql,使用hive登入
mysql -uhive -p123
2. 安裝hive
- 開啟最開始解壓後hive安裝包進入conf目錄下,
cp hive-default.xml.template hive-site.xml
- 修改hive-site.xml 將原有的所有配置檔案全部刪除,用以下內容替換
<property>
<name>hive.metastore.warehouse.dir</name> <!-- hive工作目錄 -->
<value>/user/hive_localmysql/warehouse</value>
</property>
<property>
<name>hive.metastore.local</name> <!-- 是否是本地模式,即hive和mysql是否在同一節點 -->
<value>true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionURL</name> <!-- 連線mysql的URL -->
<value>jdbc:mysql://localhost/hive_meta?createDatabaseIfNotExist=true</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name> <!-- 連線mysql的驅動 -->
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name> <!-- 連線的使用者名稱,使用上面建立的hive使用者 -->
<value>hive</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name> <!-- 連線的使用者的密碼 -->
<value>123</value>
</property>
- 環境變數配置
vim /etc/profile
export HIVE_HOME=/opt/zgl/hive-1.2.1
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:$PATH
- 將mysql的連線驅動包放到 hive 的 lib 目錄下
- 將hive lib下的 jline 的jar包拷到 hadoop的 share/hadoop/yarn/lib 中(這裡因為hadoop內的 jline 的jar包過時了,我們令其和 hive 中的版本保持一致)
- 服務端啟動metastore服務(啟動後臺執行)
hive --service metastore >> /tmp/meta.log 2>&1 &
- 啟動HDFS和YARN,在命令列輸入hive即可進入hive shell,在這裡便可以對hive進行操作。
客戶端配置
配置步驟和以上服務端基本一致,可以直接用scp命令傳送到客戶端節點
唯一不同的地方修改hive-site.xml
<property>
<name>hive.metastore.local</name> <!-- 是否是本地模式,即hive和mysql是否在同一節點 -->
<value>false</value>
</property>
<property>
<name>hive.metastore.uris</name> <!-- 連線的服務的 uri -->
<value>thrift://node04:9083</value> <!-- 通過 thrift 協議連線,連線的服務端的 IP 和埠號 -->
</property>
然後,在客戶端直接 hive 即可進入hive shell。這裡的資料庫存放的是源資料,預設只有一個default
到此就配置結束了 QAQ。
相關推薦
Hive的三種搭建模式及遠端方式詳細搭建步驟
hive搭建 hive三種方式區別和搭建按照Hive中metastore(元資料儲存)不同位置分為三種方式: 內嵌Derby方式 :hive將源資料儲存在HDFS中,而元資料預設儲存在hive自帶的資料庫Derby中。但是Derby不支援多使用者同時訪問,所以
瞭解虛擬機器三種網路模式及遠端工具(SSH)基本使用方法
虛擬機器網路模式:點選虛擬機器軟體的編輯選單,選擇虛擬網路編輯器,可以看到虛擬機器的三種網路的配置,如圖:①橋接模式:克隆宿機上的ip,在同一ip段內例如宿機上的ip:192.168.1.XXXLinux產生的ip:192.168.1.1~255中的任一一個,但是不能與宿機上
linux vi的三種工作模式及轉化過程
Vi有三種基本的工作模式:指令行模式、文字輸入模式、行末模式。他們的相互關係如所示。指令模式(Command Mode) 下輸入 a、i、o進入文字輸入模式(Input Mode) 文字輸入模式(Input Mode) 下按ESC進入指令模式(Command Mode) 指令
VMWare/VirtualBox三種網路模式及NAT/host-only模式設定上網與主機互聯通訊
VMWare/VirtualBox中,提供了bridged(橋接模式)、NAT(網路地址轉換模式)和host-only(主機模式)三種網路模式。但有時候我們在搭建偽分散式的實驗中需要僅主機網絡卡虛擬機器能聯網,NAT網絡卡虛擬機器相互通訊,這時候三種網路的侷限性就凸顯
hadoop初識之三:搭建hadoop環境(配置HDFS,Yarn及mapreduce 執行在yarn)上及三種執行模式(本地模式,偽分散式和分散式介)
--===============安裝jdk(解壓版)================== --root 使用者登入 --建立檔案層級目錄 /opt下分別 建 modules/softwares/datas/tools 資料夾 --檢視是否安裝jdk rpm -
hive 三種方式區別和搭建
一、安裝模式介紹: Hive官網上介紹了Hive的3種安裝方式,分別對應不同的應用場景。 1、內嵌模式(元資料保村在內嵌的derby種,允許一個會話連結,嘗試多個會話連結時會報錯) 2、本地模式(本地安裝mysql 替代derby儲存元資料)
Android中三種常用解析XML的方式(DOM、SAX、PULL)簡介及區別
字符串 lan win name屬性 Coding 空間 toc log fin XML在各種開發中都廣泛應用,Android也不例外。作為承載數據的一個重要角色,如何讀寫XML成為Android開發中一項重要的技能。今天就由我向大家介紹一下在Android平臺下幾種常見的
CentOS6.5下搭建ftp服務器(三種認證模式:匿名用戶、本地用戶、虛擬用戶)
所有者 start 生效 用戶權限 密碼 新建 over 使用 則無 CentOS 6.5下搭建ftp服務器 vsftpd(very secure ftp daemon,非常安全的FTP守護進程)是一款運行在Linux操作系統上的FTP服務程序,不僅完全開源而且免費,此外,
vmware三種網路模式介紹及nat模式下使用同一區域網的非宿主機ssh連線虛擬機器
1、vmware虛擬機器三種網路模式 開啟vmware虛擬機器,我們可以在選項欄的“編輯”下的“虛擬網路編輯器”中看到VMnet0(橋接模式)、VMnet1(僅主機模式)、VMnet8(NAT模式),那麼這些都是有什麼作用呢?其實,我們現在看到的VMnet0表示的是用於橋接
django 三種快取模式的使用及注意點
Django 快取模式的使用(主要針對RestFul設計模式的專案) 有三種模式: 全站使用快取模式(整個專案每個介面都會使用快取,缺點:所以介面都無法實時性獲取資料) 單獨檢視快取模式(單個介面使用快取) 區域性檢視快取模式 第一種:實現方式: 必須在 settings中設定 快取中介軟
轉發【VMWARE-三種網絡卡配製方式及實驗部署詳解】
轉發【VMWARE-三種網絡卡配置方式及實驗部署詳解】 參考:https://blog.csdn.net/babyxue/article/details/80970526 我的測試環境 VMWare12 ConetOS7 測試結
LVS三種工作模式以及最主流的DR模式搭建流程
LVS常用的工作模式有NAT、DR、和TUN三種,其中DR模式效能最為優越,使用最為廣泛NAT模式:網路地址轉換 NAT(Network Address Translation)是一種外網和內網地址對映的技術。NAT模式下,資料的進出都要經過LVS的處理。LVS需要作為Real Server(真實伺
Hive三種不同的資料匯出的方式
Hive三種不同的資料匯出的方式 1、匯出到本地檔案系統 insert overwrite local directory '/home/anjianbing/soft/export_data/app_order_city_d' row format delimited fiel
hadoop的三種執行模式區別及配置詳解
基於hadoop進行開發時,有時候,會被hadoop的三種執行模式搞混,也會被hadoop叢集有哪些配置弄得暈頭轉向,因為看不同的文件有不同的配置方法。所以要先弄明白hadoop的執行模
hive 三種去重方式
在hive資料清洗這裡總結三種常用的去重方式 1.distinct 2.group by 3.row_number() 例項: SELECT tel, link_name, certificate_no, certificate_type, modify_time FR
VMware虛擬機器三種網路模式的區別及配置方法
轉載:https://blog.csdn.net/Alpha_B612/article/details/80979101 本文參照文章: https://www.linuxidc.com/Linux/2016-09/135521.htm https://www.jb51.
大資料(二十三)Hive【Hive三種啟動方式 、 HIVE Server2詳解 、 jdbc連結HIVE】
一:Hive的三種啟動方式 1, hive 命令列模式 進入hive安裝目錄,輸入bin/hive的執行程式,或者輸入 hive –service cli 用於linux平臺命令列查詢,查詢語句基本跟mysql查詢語句類似 2, hive
linux下hive三種方式的安裝
本次以apache-hive-1.2.1-bin.tar.gz為例伺服器node5192.168.13.135伺服器node6192.168.13.136伺服器node7192.168.13.137伺服器node8192.168.13.138一、配置本地內建derby模式1.
ADF VO排序及VO的三種查詢模式(轉)
常規應用中,當需要使用Table向終端使用者展示資料時,Table中資料的顯示排序一致性極大程度的影響到了客戶體驗。通常希望諸如多次查詢結果顯示順序相同、插入資料在原資料上方等的實現。ADF為開發人員提供了兩種級別的排序,即資料庫級別的排序及記憶體級別(In-Memory
通過fsharp 使用Enterprise Library Unity 3 - 三種攔截模式的探索
clean stc ane adding clas 是什麽 idc 內部函數 ash 這篇就三種攔截模式進行一下探索。 特性總結 類型 特點 其它 InterfaceInter