1、前言java
Hadoop簡介node
Hadoop就是一個實現了Google雲計算系統的開源系統,包括並行計算模型Map/Reduce,分佈式文件系統HDFS,以及分佈式數據庫Hbase,同時Hadoop的相關項目也很豐富,包括ZooKeeper,Pig,Chukwa,Hive,Hbase,Mahout,flume等.接下來咱們使用的是Hivemysql
Hive簡介linux
Hive 是一個基於 Hadoop的開源數據倉庫工具,用於存儲和處理海量結構化數據。 它把海量數據存儲於 hadoop 文件系統,而不是數據庫,但提供了一套類數據庫的數據存儲和處理機制,並採用 HQL (類 SQL )語言對這些數據進行自動化管理和處理。咱們能夠把 Hive 中海量結構化數據當作一個個的表,而實際上這些數據是分佈式存儲在 HDFS 中的。 Hive 通過對語句進行解析和轉換,最終生成一系列基於 hadoop 的 map/reduce 任務,經過執行這些任務完成數據處理。sql
Presto簡介數據庫
Presto是一個開源的分佈式SQL查詢引擎,適用於交互式分析查詢,數據量支持GB到PB字節。Presto的設計和編寫徹底是爲了解決像Facebook這樣規模的商業數據倉庫的交互式分析和處理速度的問題。Presto支持在線數據查詢,包括Hive, Cassandra, 關係數據庫以及專有數據存儲。 一條Presto查詢能夠將多個數據源的數據進行合併,能夠跨越整個組織進行分析。apache
2、環境準備centos
Hadoop2.X服務器
apache-hive-2.1.0jvm
presto-server-0.156.tar.gz
Mysql5.7
3、速度測試
4、本機服務器準備
虛擬機使用linux的centos
Hadoop 192.168.209.142,192.168.209.140
hive 192.168.209.140
presto 192.168.209.140
mysql 10.0.0.7
5、環境搭建
1.Hadoop環境搭建<略>
2.Hive環境搭建
解壓Hive文件
[root@HDP134 ~]# tar -zxvf /home/hive/apache-hive-2.1.0-bin.tar.gz
配置hive
[root@HDP134 ~]# vi /etc/profile
由於HIVE用到了Hadoop須要在最下邊加上hadoop和Hive的路徑
#Hadoop
export HADOOP_INSTALL=/opt/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export HADOOP_HOME=$HADOOP_INSTALL
#Hive
export HIVE_HOME=/home/hive/apache-hive-2.1.0-bin
export PATH=$PATH:$HIVE_HOME/bin
保存退出以後進入配置文件,複製並生命名hive-env.sh,hive-site.xml
[root@HDP134 ~]# cd /home/hive/apache-hive-2.1.0-bin/conf
[root@HDP134 ~]# cp hive-env.sh.template hive-env.sh
[root@HDP134 ~]# cp hive-default.xml.template hive-site.xml
配置hive-site.xml
替換hive-site.xml文件中的 ${system:java.io.tmpdir} 和 ${system:user.name}
默認狀況下, Hive的元數據保存在了內嵌的 derby 數據庫裏, 但通常狀況下生產環境使用 MySQL 來存放 Hive 元數據。
繼續修改Hive-site.xml配置Mysql
<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false</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>hive</value> </property>
保存退出
因爲Hive要使用Hadoop,因此如下全部操做均是在hadoop用戶下操做先爲Hadoop賦值目錄權限使用以下命令
chown -R hadoop:hadoop /home/hive
切換用戶
在 Hive 中建立表以前須要使用如下 HDFS 命令建立 /tmp 和 /user/hive/warehouse (hive-site.xml 配置文件中屬性項 hive.metastore.warehouse.dir 的默認值) 目錄並給它們賦寫權限。
至此基本配置已經完成,能夠運行Hive了,運行Hive以前須要先開啓Hadoop.
從 Hive 2.1 版本開始, 咱們須要先運行 schematool 命令來執行初始化操做。
執行成功以後,能夠查看本身的Mysql,我剛配置的mysql庫爲Hive,咱們能夠進行MYSQL執行show databases;查看是否已經建立hive數據庫
咱們能夠看到已經自動生成了不少表。說明Hive已成功鏈接Mysql
咱們來運行一下Hive,直接輸入hive命令,便可(必定要是在hadoop下操做,否則會報一些無權限的一大堆錯誤)
hive已啓動,咱們能夠執行一下show tables;查看一下;
至此hive已安裝完成,後邊會說到如何建立一個orcfile格式的文件。
3.Presto安裝
首先解壓下載好的tar.gz包
配置presto
進入etc文件,咱們總共須要建立並配置5個文件
除去hadoop那個文件夾,另外的5個下邊一一說明
node.properties:每一個節點的環境配置
jvm.config:jvm 參數
config.properties:配置 Presto Server 參數
log.properties:配置日誌等級
Catalog Properties:Catalog 的配置
1>node.properties配置
節點配置node.id=1
切記:每一個節點不能重複我本地把協調和生產節點部署到了一塊兒
2>config.properties
discover.uri是服務地址,http://HDP134:8080是我192.168.209.140的映射
3>catalog hive.properties的配置
connector.name是鏈接器,咱們就用Hive-cdh5
4>jvm.config配置
這個能夠根據本身的機器配置進行相應調整
5>log.properties配置
配置完成以後,能夠運行presto服務了,前提是要先爲hadoop賦值目錄權限,使用以下命令
chown -R hadoop:hadoop /home/presto
presto服務的啓動方式有兩種,第一種是strat後臺運行看不到日誌輸出 ,run前臺運行,可在前臺看到打印日誌,建議前期使用run進行前臺運行
一樣的,要使用hadoop用戶啓動服務
當出現這樣的關鍵詞時,恭喜搭建完成
接下來能夠測試一下,咱們使用一個工具presto-cli-0.90-executable.jar 下載以後,重命名爲presto-cli
啓動Hive服務
Presto客戶端鏈接
鏈接Hive庫,並進入如上命令行,能夠執行一下show tables;進行測試
能夠顯示出hive的全部表,表示presto鏈接Hive成功
今天就先寫到這裏,接下來會寫建立一個orcfile的幾種方法,包括從txtfile轉成orcfile,另外一種是經過jdbc直接生成orcfile。
以上純屬本身的理解以及本地部署的過程,若是有什麼地方有誤敬請諒解!