まず、プレストは何ですか?
- 背景:欠点ハイブとプレスト背景
ハイブMapReduceは、基礎となるコンピューティングフレームワークとして使用したバッチのために特別に設計されています。しかし、ハイブデータクエリを使用するように簡単なを実行し、より多くのデータとしては、数時間に数分かかることがあり、明らかに、対話型のクエリのニーズを満たすことができません。プレストは、高速、リアルタイムデータ分析のために特別に設計された分散SQLクエリエンジン、です。これは、複雑なクエリ、重合(集約)を含む、標準のANSI SQLをサポートし、接続(参加)と窓関数(ウィンドウ関数)。その2点の価値が模索があり、最初のアーキテクチャの、タイムリーな相互作用をサポートするために、低レイテンシを実現する方法である自然が続きます。
- 何PRESTOこと?
プレストは、データ量がGB PBはバイトサポートするために、インタラクティブ分析クエリのSQLクエリ・エンジンを分散オープンソースです。プレストは設計された、インタラクティブな分析やFacebookのこのサイズの処理速度の商用データウェアハウスのような問題点を解決するために完全に書かれています。
- それは何ができますか?
プレストはハイブ、カサンドラ、リレーショナルデータベース、および独自のデータストアを含むオンラインデータクエリを、可能にします。プレスト複数のデータソースからのクエリデータが合成され、それは組織全体を分析することができます。プレスト需要のアナリストは、ターゲットとして、それらは数分に1秒未満の応答時間を期待されています。プレストはジレンマデータ分析を終了、または高速高価な商用プログラムを使用し、または使用することは、ハードウェアの遅い「自由な」プログラムを大量に消費します。
- 誰がそれを使用していますか?
Facebookは300PBデータウェアハウスを含むプレストインタラクティブクエリ、内部データ記憶装置を複数、使用します。毎日1000人の以上のFacebookの従業員プレスト、クエリの数は、1PBを介してスキャンデータの量を30,000以上回実行しました。AirbnbとのDropboxなどの大手インターネット企業は、プレストを使用しています。
二、プレストアーキテクチャ
プレストは、分散システム内の複数のサーバ上で実行されます。コーディネーターと労働者を複数備え完全インストール。プレストコーディネーターからのCLIコマンドラインに提出し、クライアントによってクエリを送信します。コーディネーターの解析は、分析し、クエリプランを実行した後、作業者に処理キューを配布します。
プレストクエリエンジンは、マスタ・スレーブ・アーキテクチャは、コーディネータ・ノード、ディスカバリサーバノード、複数のノードワーカーから構成され、ディスカバリサーバは、通常、コーディネータ・ノードに埋め込まれています。コーディネーターは、ワーカーノードを実行するためにタスクを分散、SQL文の実行計画を解析するための責任があります。ワーカーノードは、クエリタスクの実際の実装を担当しています。労働者は、サービス登録ディスカバリーServerを起動するノードの後、コーディネーター労働者が適切に検出サーバーから作業を取得するノード。あなたはハイブコネクタを構成する場合は、サービスを設定する必要がありプレストためハイブハイブメタストアのメタ情報を提供し、労働者は、HDFSと対話するノードデータを読み込みます。
第三には、プレストServerをインストールします
- インストールメディア
プレスト-CLI-0.217-executable.jar プレスト・サーバ0.217.tar.gz
- プレストServerのインストール・設定
1、インストールパッケージを抽出
タール-zxvfプレスト・サーバー・0.217.tar.gz -C〜/トレーニング/
2、etcディレクトリを作成します
CD〜/トレーニング/ PRESTO-サーバー-0.217 / MKDIRなど
3、etcディレクトリにある次の構成ファイルを含める必要性
ノード構成情報:ノードプロパティ JVM設定:コマンドラインツールJVMの設定パラメータ コンフィグプロパティ:設定パラメータプレストサーバーの カタログプロパティ:データソース(コネクタ)の構成パラメータ ログのプロパティ:設定パラメータ
- 編集node.properties
#クラスタ名。プレスト同じクラスタ内のすべてのノードが同じクラスタ名を持つ必要があります。 node.environment =生産は 一意プレスト#ノードを特定します。Node.id各ノードは一意である必要があります。またはアップグレードプロセスは不変でなければなりませんプレスト内の各ノードをnode.id再起動します。複数のインスタンスが一つのノード上にインストールされている場合は、プレスト(例えば:同じマシン上にインストールされたノードのプレスト複数)は、次いで、各ノードは、一意のプレストnode.id.を有していなければなりません node.id = FFFFFFFFFFFF-FFFFFFFF-FFFFFFFFFFFF 位置データ格納ディレクトリ番号(オペレーティング・システム上のパス)。プレストは、このディレクトリの日付を入れて、データに保存されます。 node.data-DIR = /ルート/トレーニング / PRESTO-サーバー-0.217 /データ
- 編集のjvm.config
JVMのOutOfMemoryErrorが矛盾した状態になりますので、私たちが遭遇したときに、このエラー・アクションは、ダンプheadp(デバッグ用)の一般的な情報を収集することですし、処理を終了することを強制します。プレストクエリがバイト・コード・ファイルにコンパイルされ、したがって番号プレスト・クラスを生成する、我々はサイズを増やす必要があり、我々パーマ領域とJVMクラスのアンロードを可能にすることによって(パーマは、主クラスに格納されています)。
-server -Xmx16G -XX:+ UseG1GC -XX:G1HeapRegionSize = 32M -XX:+ UseGCOverheadLimit -XX:+ ExplicitGCInvokesConcurrent -XX:+ HeapDumpOnOutOfMemoryError -XX:+ ExitOnOutOfMemoryError
- 編集config.properties
コーディネーターの設定
コーディネータ=真 ノードscheduler.includeコーディネータ=偽 HTTP-server.http.port = 8080 query.maxメモリ= 5ギガバイトの query.maxメモリ・パー・ノード= 1ギガバイト query.max-総メモリ・パー・ノード= 2GBの 発見-server.enabled =真 discovery.uri =のhttp://192.168.157.226:8080
労働者の構成
コーディネータ=偽 HTTP-server.http.port = 8080 query.maxメモリ= 5ギガバイト query.maxメモリ・パー・ノード= 1ギガバイト query.max-総メモリ・パー・ノード= 2ギガバイト discovery.uri = HTTP:/ /192.168.157.226:8080
我々は、単一のマシンには、configureコーディネーターと労働者でテストしたい場合は、以下の構成を使用してください:
コーディネータ=真 ノードscheduler.includeコーディネータ=真 HTTP-server.http.port = 8080 query.maxメモリ= 5ギガバイト query.maxメモリ・パー・ノード= 1ギガバイト query.max-総メモリ・パー・ノード= 2GBの 発見-server.enabled =真 discovery.uri =のhttp://192.168.157.226:8080
パラメータ:
- 編集log.properties
設定したログレベル。
com.facebook.presto = ABOUT
- カタログのプロパティの設定
プレストアクセスデータコネクタ。これらのコネクタは、カタログに取り付けられました。コネクタは、すべてのスキーマとテーブルのカタログを提供することができます。例えば、各ハイブのハイブコネクタは、ハイブコネクタはハイブと呼ばれるカタログに取り付けられている場合は、データベース・スキーマにマップされ、そしてウェブハイブがテーブル名前クリックを有し、その後プレストにハイブができます。このテーブルにアクセスするweb.clicks。登録は、/ etcカタログディレクトリ内のカタログのプロパティファイルのカタログを作成することによって行われます。次のようにデータ・ソース・コネクタハイブを作成するなど/カタログ/ hive.propertiesファイルを作成することができ、コンテンツファイルがローディングA hiveconnector hivecatalogの完了時に、です。
#示しHadoopのバージョン connector.name =ハイブ-hadoop2 #ハイブサイト構成されたアドレス hive.metastore.uri =スリフト://192.168.157.226:9083 #hadoopのプロファイルパス hive.config.resources = /ルート/training/hadoop-2.7.3/etc/hadoop/core-site.xml,/root/training/hadoop-2.7.3/etc/hadoop/hdfs-site.xml
注:ハイブにアクセスするには、その後、あなたはメタストアのハイブを開始する必要があります:ハイブ--serviceメタストア
第四に、プレストServerを起動
スタート./launcher
6.3.5オペレーティングプレスト-CLI
- ダウンロード:プレスト-CLI-0.217-executable.jar
- JARパッケージの名前を変更し、実行権限を追加します
CPのプレスト-CLI-0.217-executable.jarプレスト のchmod A + Xプレスト
- プレストサーバー接続
./presto --serverはlocalhost:8080 --catalogハイブ--schemaデフォルト
第六に、使用プレスト
- ハイブを使用してプレスト操作
- プレストWebコンソールの使用:ポート:8080
- プレストを使用してJDBC操作
1、Mavenの依存必要が含まれるように
<依存性> <のgroupId> com.facebook.presto </のgroupId> <たartifactId>プレスト-JDBC </たartifactId> <バージョン> 0.217 </バージョン> </依存>
2、JDBCコード
************************************************** *****************************************