91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

presto集群安裝&整合hive|mysql|jdbc

發布時間:2020-08-03 04:04:47 來源:網絡 閱讀:8858 作者:興趣e族 欄目:大數據

Presto是一個運行在多臺服務器上的分布式系統。 完整安裝包括一個coordinator(調度節點)和多個worker。 由客戶端提交查詢,從Presto命令行CLI提交到coordinatorcoordinator進行解析,分析并執行查詢計劃,然后分發處理隊列到worker中。

目錄:

  • 搭建前環境準備

  • 集群計劃

  • 連接器

  • 安裝步驟

  • 配置文件

  • 運行presto

  • 整合hive測試

  • 整合mysql測試

  • 整合jdbc測試

1.搭建前環境準備

  • CentOS 6.7

  • java8

  • Python3.4.4

  • hadoop2.6.4

2.集群計劃


  • hd1(192.168.174.131) :調度節點(coordinator)

  • hd2(192.168.174.132):worker節點

  • hd3(192.168.174.133):worker節點

3.連接器


Presto支持從以下版本的Hadoop中讀取Hive數據:支持以下文件類型:Text, SequenceFile, RCFile, ORC

Apache Hadoop 1.x  (hive-hadoop1)

Apache Hadoop 2.x  (hive-hadoop2)

Cloudera CDH 4       (hive-cdh5)

Cloudera CDH 5       (hive-cdh6)

此外,需要有遠程的Hive元數據。 不支持本地或嵌入模式。 Presto不使用MapReduce,只需要HDFS

4.單機安裝步驟


  • 下載 presto-server-0.100, ( 下載地址:https://repo1.maven.org/maven2/com/facebook/presto/presto-server/0.100/presto-server-0.100.tar.gz)或者:鏈接:http://pan.baidu.com/s/1qYTvTwg 密碼:4xz6

  • 將 presto-server-0.100.tar.gz 上傳至linux主機(hd1),解壓后的文件目錄結構如下(稱為安裝目錄):Presto需要一個用于存儲日志、本地元數據等的數據目錄。 建議在安裝目錄的外面創建一個數據目錄。這樣方便Presto進行升級,如:/presto/data

presto集群安裝&整合hive|mysql|jdbc

5.配置文件


  • 在安裝目錄中創建一個etc目錄, 在這個etc目錄中放入以下配置文件:

1. config.properties Presto 服務配置

2. node.properties :環境變量配置,每個節點特定配置

3. jvm.config Java虛擬機的命令行選項

4. log.properties: 允許你根據不同的日志結構設置不同的日志級別

5. catalog目錄 :每個連接者配置(data sources

  • config.properties

包含了Presto server的所有配置信息。 每個Presto server既是一個coordinator也是一個worker。 但是在大型集群中,處于性能考慮,建議單獨用一臺機器作為 coordinator,一個coordinator的etc/config.properties應該至少包含以下信息:

coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=18080
task.max-memory=1GB
discovery-server.enabled=true
discovery.uri=http://192.168.174.131:18080

1. coordinator:指定是否運維Presto實例作為一個coordinator(接收來自客戶端的查詢情切管理每個查詢的執行過程)

2. node-scheduler.include-coordinator:是否允許在coordinator服務中進行調度工作, 對于大型的集群,在一個節點上的Presto server即作為coordinator又作為worke將會降低查詢性能。因為如果一個服務器作為worker使用,那么大部分的資源都會被worker占用,那么就不會有足夠的資源進行關鍵任務調度、管理和監控查詢執行

3. http-server.http.port:指定HTTP server的端口。Presto 使用 HTTP進行內部和外部的所有通訊

4. task.max-memory=1GB:一個單獨的任務使用的最大內存 (一個查詢計劃的某個執行部分會在一個特定的節點上執行)。 這個配置參數限制的GROUP BY語句中的Group的數目、JOIN關聯中的右關聯表的大小、ORDER BY語句中的行數和一個窗口函數中處理的行數。 該參數應該根據并發查詢的數量和查詢的復雜度進行調整。如果該參數設置的太低,很多查詢將不能執行;但是如果設置的太高將會導致JVM把內存耗光

5. discovery-server.enabledPresto 通過Discovery 服務來找到集群中所有的節點。為了能夠找到集群中所有的節點,每一個Presto實例都會在啟動的時候將自己注冊到discovery服務。Presto為了簡化部署,并且也不想再增加一個新的服務進程,Presto coordinator 可以運行一個內嵌在coordinator 里面的Discovery 服務。這個內嵌的Discovery 服務和Presto共享HTTP server并且使用同樣的端口

6. discovery.uriDiscovery serverURI。由于啟用了Presto coordinator內嵌的Discovery 服務,因此這個uri就是Presto coordinatoruri。注意:這個URI一定不能以“/“結尾


  • node.properties

包含針對于每個節點的特定的配置信息。 一個節點就是在一臺機器上安裝的Presto實例,etc/node.properties配置文件至少包含如下配置信息

node.environment=test
node.id=bigdata_node_worker_hd1
node.data-dir=presto/data
  1. node.environment: 集群名稱, 所有在同一個集群中的Presto節點必須擁有相同的集群名稱

  2. node.id: 每個Presto節點的唯一標示。每個節點的node.id都必須是唯一的。在Presto進行重啟或者升級過程中每個節點的node.id必須保持不變。如果在一個節點上安裝多個Presto實例(例如:在同一臺機器上安裝多個Presto節點),那么每個Presto節點必須擁有唯一的node.id

  3. node.data-dir: 數據存儲目錄的位置(操作系統上的路徑), Presto將會把日期和數據存儲在這個目錄下

  • jvm.config

包含一系列在啟動JVM的時候需要使用的命令行選項。這份配置文件的格式是:一系列的選項,每行配置一個單獨的選項。由于這些選項不在shell命令中使用。 因此即使將每個選項通過空格或者其他的分隔符分開,java程序也不會將這些選項分開,而是作為一個命令行選項處理,信息如下:

-server
-Xmx16G
-XX:+UseConcMarkSweepGC
-XX:+ExplicitGCInvokesConcurrent
-XX:+CMSClassUnloadingEnabled
-XX:+AggressiveOpts
-XX:+HeapDumpOnOutOfMemoryError
-XX:OnOutOfMemoryError=kill -9 %p
-XX:ReservedCodeCacheSize=150M
  • log.properties

這個配置文件中允許你根據不同的日志結構設置不同的日志級別。每個logger都有一個名字(通常是使用logger的類的全標示類名). Loggers通過名字中的“.“來表示層級和集成關系,信息如下:

com.facebook.presto=DEBUG

配置日志等級,類似于log4j。四個等級:DEBUG,INFO,WARN,ERROR


Catalog Properties

通過在etc/catalog目錄下創建catalog屬性文件來完成catalogs的注冊。 例如:可以先創建一個etc/catalog/jmx.properties文件,文件中的內容如下,完成在jmxcatalog上掛載一個jmxconnector

connector.name=jmx

在etc/catalog目錄下創建hive.properties,信息如下:

connector.name=hive-hadoop2
hive.metastore.uri=thrift://192.169.168.131:9083
hive.config.resources=/root/apps/hadoop/etc/hadoop/core-site.xml,/root/apps/hadoop/etc/hadoop/hdfs-site.xml
hive.allow-drop-table=true

以上,是單機部署presto, 至此已經完成。


6.集群安裝步驟


將hd1中的presto-server-0.100拷貝到hd2,hd3

scp -r /root/apps/presto-server-0.100 root@hd2:/root/apps/
scp -r root/apps/presto-server-0.100 root@hd3:/root/apps/
  • 修改hd2中的配置文件:

config.properties

coordinator=false
http-server.http.port=18080
task.max-memory=1GB
discovery-server.enabled=true
discovery.uri=http://192.168.174.131:18080

node.properties

node.environment=test
node.id=bigdata_node_worker_hd2
node.data-dir=presto/data
  • 修改hd3中的配置文件

config.properties

coordinator=false
http-server.http.port=18080
task.max-memory=1GB
discovery-server.enabled=true
discovery.uri=http://192.168.174.131:18080

node.properties

node.environment=test
node.id=bigdata_node_worker_hd3
node.data-dir=presto/data

到此,presto集群配置完畢。

7.運行presto


hd1,hd2,hd3presto-server-0.100/bin目錄下依次啟動presto:

./launcher start

Presto可以使用如下命令作為一個后臺進程啟動:

bin/launcher start

或者在前臺運行, 可查看具體的日志

bin/launcher run

停止服務進程命令

bin/laucher stop

查看服務進程命令

bin/laucher status

查看進程: ps -aux|grep PrestoServer  jps

presto集群安裝&整合hive|mysql|jdbc


也可通過瀏覽器界面查看:http://192.168.174.131:18080

presto集群安裝&整合hive|mysql|jdbc



8.整合hive測試


想要查詢連接到hive中查詢數據還需要先啟動hivemetastore

啟動方式:

bin/hive --service metastore  #或者后臺啟動:
bin/hive --service metastore 2>&1 >> /var/log.log &
#后臺啟動,關閉shell連接依然存在:
nohup bin/hive --service metastore 2>&1 >> /var/log.log &

如果啟動失敗,查看hive-site.xml中是否有metastore的如下配置,若沒有,加上這段后再啟動metasotre.

<property>
  <name>hive.metastore.uris</name>
  <value>thrift://192.168.174.131:9083</value>
 </property>

然后下載 presto-cli-0.100-executable.jarPresto CLI為用戶提供了一個用于查詢的可交互終端窗口。CLI是一個 可執行 JAR文件, 這也就意味著你可以像UNIX終端窗口一樣來使用CLI https://repo1.maven.org/maven2/com/facebook/presto/presto-cli/0.100/presto-cli-0.100-executable.jar文件下載后,重名名為 presto , 使用 chmod +x 命令設置可執行權限,執行命令:

下面命令的ip和端口和config.properties中的一致

./presto --server 192.168.174.131:18080 --catalog hive --schema default --debug

hive中查一下hive default庫中的表, 結果如下圖

presto集群安裝&整合hive|mysql|jdbc

hive中查詢hive default庫中的表,如圖:

presto集群安裝&整合hive|mysql|jdbc

查詢user表信息:

presto集群安裝&整合hive|mysql|jdbc


此時界面上也會有對應的記錄:

presto集群安裝&整合hive|mysql|jdbc




退出命令:quit或者exit

9.整合mysql測試


hive類似,在hd1etc/目錄下新建文件:mysql.properties文件

connector.name=mysql
connection-url=jdbc:mysql://192.168.174.131:3306
connection-user=root
connection-password=123456

然后將mysql.properties分貝拷貝到hd2hd3/etc目錄下,重新啟動PrestoServer服務。

連接測試:

./presto --server localhost:18080 --catalog mysql --schema test --debug

presto集群安裝&整合hive|mysql|jdbcpresto集群安裝&整合hive|mysql|jdbc

常用寫法:

SHOW SCHEMAS FROM mysql;#查詢數據庫列表
SHOW TABLES FROM mysql.test;#查詢指定數據庫下的數據表
SELECT * FROM mysql.test.user;查詢指定數據表數據

10.整合jdbc測試


代碼連接測試,在pom.xml中引入依賴:

<dependency>
<groupId>com.facebook.presto</groupId>
<artifactId>presto-jdbc</artifactId>
<version>0.100</version>
</dependency>

main方法測試連接:

package com.presto.test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
 
public class TestPrestoJdbc {
public static void main(String[] args) throws Exception {
Class.forName("com.facebook.presto.jdbc.PrestoDriver");
Connection connection = DriverManager.getConnection(
"jdbc:presto://192.168.174.131:18080/hive/default", "root",
null);
Statement stmt = connection.createStatement();
ResultSet rs = stmt.executeQuery("show tables");
while (rs.next()) {
System.out.println(rs.getString(1));
}
rs.close();
connection.close();
 
}
}

運行結果:

presto集群安裝&整合hive|mysql|jdbc

對比命令行:

presto集群安裝&整合hive|mysql|jdbc

以上就是對presto的集群和搭建的使用,你學會了么presto集群安裝&整合hive|mysql|jdbc


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

永福县| 肇庆市| 邵武市| 定南县| 安宁市| 云安县| 贵溪市| 阿拉善左旗| 凤翔县| 乐至县| 白城市| 余姚市| 静海县| 谢通门县| 拉萨市| 灵山县| 栾城县| 泰州市| 玛沁县| 迁安市| 汝州市| 八宿县| 宽甸| 双鸭山市| 汶上县| 武平县| 安庆市| 当涂县| 闽侯县| 休宁县| 滦平县| 陕西省| 四川省| 进贤县| 东丽区| 米泉市| 新乡县| 平山县| 永安市| 宜宾县| 盘锦市|