1. 程式人生 > >Hive基礎(1)概念、安裝、使用筆記

Hive基礎(1)概念、安裝、使用筆記

Hive
什麼是Hive?
Hive是能夠用類SQL的方式操作HDFS裡面資料一個數據倉庫的框架,這個類SQL我們稱之為HQL(Hive Query Language)
資料倉庫?
存放資料的地方
資料倉庫裡面存放的是能夠為公司的各個級別的決策提供支撐的資料
公司要統計今年各個部門的業務完成指標,依次決定各個部門年終獎的發放,要依賴資料,資料從哪裡來?資料倉庫!
公司要依據前幾年的業務完成和發展情況,來依次制定明年的公司發展規劃,要依賴資料,資料從哪裡來?資料倉庫!
公司要開新品釋出會,要邀請10客戶和10大潛在客戶,怎麼獲取這些客戶呢,要依賴資料,資料從哪裡來?資料倉庫!
公司要針對某一使用者產品的使用情況,依據人物構建模型,來做人物畫像,要依賴資料,資料從哪裡來?資料倉庫!
提取轉化載入(ETL)

E:Extract(提取)
T:Transform(轉化)
L:Load(載入)
Hive的特徵
海量資料的儲存
海量資料的查詢
不支援事務性操作
Hive是SQL解析引擎,它將SQL語句轉譯成M/R Job然後在Hadoop執行。
Hive中的概念和HDFS裡面概念的對應
Hive中的表----HDFS裡面的目錄
Hive中的表中的資料----HDFS目錄下的(資料)檔案
Hive中的行列----HDFS資料檔案中的行列
部署時不一定放在叢集管理節點中,可以放在某個節點上
=======================================================================================
Hive的資料儲存

Hive的資料儲存基於Hadoop HDFS
Hive沒有專門的資料儲存格式
儲存結構主要包括:資料庫、檔案、表、檢視、索引
Hive預設可以直接載入文字檔案(TextFile),還支援SequenceFile、RCFile 
建立表時,指定Hive資料的列分隔符與行分隔符,Hive即可解析資料
Hive的提供架構
使用者介面主要有三個:CLI,JDBC/ODBC和 WebUI
CLI,即Shell命令列
JDBC/ODBC 是 Hive 的Java,與使用傳統資料庫JDBC的方式類似
WebGUI是通過瀏覽器訪問 Hive
Hive將元資料儲存在資料庫中(metastore),目前只支援 mysql、derby。Hive 中的元資料包括表的名字,表的列和分割槽及其屬性,表的屬性(是否為外部表等),表的資料所在目錄等
直譯器、編譯器、優化器完成 HQL 查詢語句從詞法分析、語法分析、編譯、優化以及查詢計劃(plan)的生成。生成的查詢計劃儲存在 HDFS 中,並在隨後由 MapReduce 呼叫執行
Hive 的資料儲存在 HDFS 中,大部分的查詢由 MapReduce 完成(包含 * 的查詢,比如 select * from table 不會生成 MapRedcue 任務)
Hive的元資料Metastore
metastore是hive元資料的集中存放地。
metastore預設使用內嵌的derby資料庫作為儲存引擎
Derby引擎的缺點:一次只能開啟一個會話
使用MySQL作為外接儲存引擎,多使用者同時訪問 
==========================================================================================
Hive的安裝和使用

我的約定:
JAVA_HOME=/usr/local/jdk1.7.0_55
HADOOP_HOME=/usr/local/hadoop-2.6.0
HIVE_HOME=/usr/local/hive-0.14.0
1、Linux下面
線上安裝Mysql
1°、檢視mysql的依賴
rpm -qa | grep mysql
2°、刪除mysql的依賴
rpm -e --nodeps `rpm -qa | grep mysql`
3°、yum安裝mysql
yum -y install mysql-server
4°、啟動mysql服務
service mysqld start
5°、加入到開機啟動項
chkconfig mysqld on
6°、初始化配置mysql服務
whereis mysql_secure_installation
執行指令碼/usr/bin/mysql_secure_installation
7°、訪問mysql服務
mysql -h pc.study.crxy.cn -uroot -proot
問題:Host '192.168.1.102' is not allowed to connect to this MySQL server
解決辦法:
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root';
mysql> flush privileges;
離線安裝Mysql
1°、檢視mysql的依賴
rpm -qa | grep mysql
2°、刪除mysql的依賴
rpm -e --nodeps `rpm -qa | grep mysql`或者
rpm -e --nodeps `rpm -qa | grep MySQL`
3°、離線安裝mysql
rpm -ivh MySQL-server-5.1.73-1.glibc23.x86_64.rpm
rpm -ivh MySQL-client-5.1.73-1.glibc23.x86_64.rpm
4°、啟動mysql服務
service mysql start
5°、加入到開機啟動項
chkconfig mysql on
6°、初始化配置mysql服務
whereis mysql_secure_installation
執行指令碼/usr/bin/mysql_secure_installation
7°、訪問mysql服務
mysql -h pc.study.crxy.cn -uroot -proot
問題:Host '192.168.1.102' is not allowed to connect to this MySQL server
解決辦法:
mysql> grant all privileges on *.* to 'root'@'%' identified by 'root';
mysql> flush privileges;
2、安裝Hive
前提是:hadoop必須已經啟動了***
1°、解壓hive的安裝包
[[email protected] soft]# tar -zxvf apache-hive-0.14.0-bin.tar.gz -C ../
2°、備份配置檔案
[[email protected] conf]# cp hive-env.sh.template hive-env.sh
[[email protected] conf]# cp hive-default.xml.template hive-site.xml
3°、配置hive的配置檔案
1)、修改hive-env.sh
加入三行內容(大家根據自己的情況來新增)
JAVA_HOME=/usr/local/jdk1.7.0_55
   HADOOP_HOME=/usr/local/hadoop-2.6.0
   HIVE_HOME=/usr/local/hive-0.14.0
2)、修改hive-site.xml
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://pc.study.crxy.cn:3306/job12_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>crxy</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/usr/local/hive-0.14.0/tmp</value>
</property>
<property>
<name>hive.exec.local.scratchdir</name>
<value>/usr/local/hive-0.14.0/tmp</value>
</property>
<property>
<name>hive.downloaded.resources.dir</name>
<value>/usr/local/hive-0.14.0/tmp</value>
</property>
4°、拷貝mysql驅動到$HIVE_HOME/lib目錄下
[[email protected] bin]# cp /usr/local/soft/mysql-connector-java-5.1.17.jar ../lib/
5°、啟動Hive
[[email protected] bin]# ./hive <==>等價於
[[email protected] bin]# ./hive --service cli
=================================================================================================
Hive的使用方式
命令列方式cli:控制檯模式
指令碼檔案方式:實際生產中用的最多的方式
JDBC方式:hiveserver
web GUI介面 hwi方式
安裝Web GUI訪問方式的步驟
1、解壓hive原始碼到某個目錄,並進入到解壓後的一個子資料夾hwi(Hive web interface)
[[email protected] soft]# tar -zxvf apache-hive-0.14.0-src.tar.gz
[[email protected] soft]# cd apache-hive-0.14.0-src/hwi
2°、將hwi下面的web/打成一個war包
[[email protected] hwi]# jar cvfM0 hive-hwi-0.14.0.war -C web/ .
3°、將2°中的war拷貝到$HIVE_HOME/lib目錄下
[[email protected] hwi]# cp hive-hwi-0.14.0.war /usr/local/hive-0.14.0/lib/
4°、拷貝$JAVA_HOME/lib/tools.jar到$HIVE_HOME/lib目錄下
[[email protected] hwi]# cp /usr/local/jdk1.7.0_55/lib/tools.jar /usr/local/hive-0.14.0/lib/
5°、修改hive的配置檔案hive-site.xml
<property>
<name>hive.hwi.listen.host</name>
<value>pc.study.crxy.cn</value>
<description>This is the host address the Hive Web Interface will listen on</description>
</property>
<property>
<name>hive.hwi.listen.port</name>
<value>9999</value>.
<description>This is the port the Hive Web Interface will listen on</description>
</property>
<property>
<name>hive.hwi.war.file</name>
<value>lib/hive-hwi-0.14.0.war</value>
<description>This sets the path to the HWI war file, relative to ${HIVE_HOME}. </description>
</property>
6°、啟動hwi
[[email protected] bin]# ./hive --service hwi &
查詢9999埠程序
netstat -tunlp | grep 9999
7°、瀏覽器訪問hwi
http://<IP>:9999/hwi/
http://pc.study.crxy.cn:9999/hwi/
=================================================================================================
Hive CLI終端如何和Linux/hadoop fs進行互動
Linux;
hive>! linux命令;eg.
hive>!pwd;
hadoop:
hive> dfs option args; eg.
hive> dfs -ls /;

  1°、linux終端
  sh $HIVE_HOME/bin/hive -f hive.hql(的路徑)
sh $HIVE_HOME/bin/hive -hiveconf hive.exec.mode.local.auto=true -f hive.hql
  2°、hive終端
  hive> source hive.hql(hql指令碼的linux絕對或相對路徑)

相關推薦

Hive基礎(1)概念安裝使用筆記

Hive什麼是Hive?Hive是能夠用類SQL的方式操作HDFS裡面資料一個數據倉庫的框架,這個類SQL我們稱之為HQL(Hive Query Language)資料倉庫?存放資料的地方資料倉庫裡面存放的是能夠為公司的各個級別的決策提供支撐的資料公司要統計今年各個部門的業

MyBatis 使用筆記(1) 簡介安裝配置

之前做專案的時候,接觸到伺服器端開發,當時伺服器是用SpringMVC做後臺服務 MyBatis做資料庫連線 Mysql資料庫 在那之前 我只接觸過JavaWeb的簡單的Servlet的基本用法,在邊學邊開發的過程中學了一部分SpringMVC和MyBatis的

【原創】運維基礎之Nginx(1)簡介安裝使用

官方:http://nginx.org nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP/UDP proxy server, originally written by

【原創】算法基礎之Anaconda(1)簡介安裝使用

https orf ati 2.7 容易 ice range gcc x86_64 Anaconda 2 官方:https://www.anaconda.com/ 一 簡介 The Most Popular Python Data Science Platform A

Python入門筆記1)_ 安裝IDLE設定 及 opencv 配置

近期學習Python,計劃用Python做影象處理。於是用一天時間學習了imooc中的Python入門教程。這裡做個總結。 安裝 很簡單,直接進官網下載,一般為了相容性,大多選擇 2.7 版本。 按

【原創】大數據基礎之Mesos(1)簡介安裝使用

物理 variable 服務器集群 ast 過程 ould task pos 編譯 Mesos 1.7.1 官方:http://mesos.apache.org/ 一 簡介 Program against your datacenter like it’s a sin

【原創】運維基礎之Redis(1)簡介安裝使用

lists 腳本 分享 ngs 參考 ports eos 運維基礎 lru redis 5.0.3 官方:https://redis.io/ 一 簡介 Redis is an open source (BSD licensed), in-memory data str

【原創】大數據基礎之Presto(1)簡介安裝使用

epo embedded mach img ans 公司 mkdir redis running presto 0.217 官方:http://prestodb.github.io/ 一 簡介 Presto is an open source distrib

Android菜鳥筆記- 獲取未安裝的APK圖標版本號包名名稱是否安裝安裝打開

ack ear 例如 start true intent ble post oca 周末閑來無事,把Android的基礎知識拿出來復習復習,今天主題是《獲取未安裝的APK圖標、版本號、包名、名稱、是否安裝、跳轉安裝、打開》 一、獲取APK圖標 通常讀取APK的圖標能夠用

Gradle基本使用(1):安裝IDEA使用

程序 enter epo osi window ont ins window下 cto 安裝配置Gradle Gradle 二進制版下載地址: https://gradle.org/install/ 下載後解壓,並將 GRADLE_HOME/bin 添加到系統 path

Redis簡介安裝配置學習筆記

level syn 結構 cti 設置 href cal 訪問量 com 前一篇文章有介紹關系型數據庫和非關系型數據庫的差異,現在就來學習一下用的較廣的非關系型數據庫:Redis數據庫 Redis 簡介 Redis 是完全開源免費的,遵守BSD協議,是一個高性能的key-v

使用Pycharm的基礎教程,下載安裝使用。

PyCharm是一款著名的Python IDE開發工具,是擁有一整套可以幫助使用者在使用Python語言開發時提高其效率的工具,具備基本的除錯、語法高亮、Project管理、程式碼跳轉、智慧提示、自動完成、單元測試、版本控制。此外,該IDE提供了一些高階功能,以用於支援Django框架下的專業W

Python筆記(一)——Python的優缺點安裝建立HelloWorld程式

一、Python的優缺點分析: 優點:程式碼量少,開發速度快 缺點:執行速度慢,Python原始碼不能加密等 二、Python的安裝 1、進入Python的官網Python.org,選擇Downloads -> All releases 目前Python有兩

No.2 ssd-caffe(1):編譯安裝測試

在這篇文章裡面總結一下ssd-caffe的安裝使用,測試以及如何使用自己的測試樣本,CUDA和OpenCV的安裝在這裡不再介紹,實驗環境Ubuntu16.04 1 . 安裝並測試ssd-caff

1-Linux的安裝檢視命令shell的介紹

1、Linux的安裝方式: 1)硬碟安裝方式、U盤安裝方式、網路安裝方式、光碟機安裝方式。 2)如何安裝雙系統(Linux+Windows):Linux和Windows是兩個完全不同的系統,因此Linux的檔案系統和Windows的檔案系統是互不相容的,如果要安裝Linux系統需要把這個磁碟

Typescript 學習筆記一:介紹安裝編譯

前言 整理了一下 Typescript 的學習筆記,方便後期遺忘某個知識點的時候,快速回憶。 為了避免凌亂,用 gitbook 結合 marketdown 整理的。 若是有不對的地方,歡迎留言指出。 眾所周知,JavaScript 是弱型別的,而這對開發人員來說,在一定程度上算是一個“痛點”。解

JBoss AS7.1.1的下載安裝環境變數配置以及部署

JBoss是純Java的EJB(企業JavaBean)伺服器。 我下載的是:JBoss AS7.1.1.Final 2、解壓安裝包 D:\Java\jboss-as-7.1.1.Final 在環境變數新建一個:JBOSS_HOM

hive的基本簡介及安裝配置使用(一)

hive是什麼? 由facebook開源,用於解決海量結構化日誌的資料統計; 基於hadoop的一個數據倉庫工具,使用HDFS進行儲存並將結構化資料檔案對映成一張表,並提供類sql查詢的功能,其底層採用MR進行計算; 本質是將HQL

OpenCV基礎——OpenCV3和VS的下載安裝環境配置

作為最後一個更新的課,首先和大家說聲抱歉,其次,本次的課不會涉及到過多的C++程式碼,所以大家可以放心(其實這個看標題也能看出來……)第一部分 VS的下載安裝大家可以去官網下載,也可以百度一下壓縮包,我是百度裡找了個壓縮包下載的,因為官網我下載出現了問題,大家如果能在官網下我

ansible概述安裝命令基礎

ase debug pip rgs 新的 change local 優點 false ansible概述 Ansible是2013年推出的一款IT自動化和DevOps軟件,目前由Redhat已簽署Ansible收購協議。其是基於Python研發,糅合了很多老運維工具的優點。