環境搭建 Hadoop+Hive(orcfile格式)+Presto實現大數據存儲查詢一

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&amp;characterEncoding=UTF-8&amp;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。

以上純屬本身的理解以及本地部署的過程,若是有什麼地方有誤敬請諒解!

相關文章
相關標籤/搜索