EMRでキリンを構築する
1. EMRクラスターを起動します
公式ウェブサイトによると:
http://kylin.apache.org/docs21/install/kylin_aws_emr.html
EMRを開始するときに、hbaseデータがs3に格納されている場合は、次の構成を指定する必要があります。
[{
"分類": "hbase-site"、
"プロパティ": {
"hbase.rpc.timeout": "3600000"、
"hbase.rootdir": "s3:// yourbucket / EMRROOT"
}
}、
{
"分類": "hbase"、
"プロパティ": {
"hbase.emr.storageMode": "s3"
}
}
]
HBaseストレージとしてs3を使用する場合は、hbase.rpc.timeoutの時間を増やす必要があります。s3への一括ロードはコピー操作であるため、データ量が多い場合、HBaseリージョンサーバーは完了するまでにさらに時間が必要です(HDFSと比較して)。
2. kylinをインストールする
sudo mkdir / usr / local / kylin
sudo chown hadoop / usr / local / kylin
cd / usr / local / kylin /
wget https://mirror.bit.edu.cn/apache/kylin/apache-kylin-2.6.5/apache-kylin-2.6.5-bin-hbase1x.tar.gz
tar -zxvf apache-kylin-2.6.5-bin-hbase1x.tar.gz
3. Kylinを構成する
/etc/hbase/conf/hbase-site.xmlから次の構成をコピーします。
<プロパティ>
<name> hbase.zookeeper.quorum </ name>
<value> ip-10-0-3-107.cn-north-1.compute.internal </ value>
</プロパティ>
そして、kylin_job_conf.xmlに入力します。
EMRは一時/中間ファイルストレージとしてHDFSを使用することを推奨し、S3は初期入力データと最終出力結果のストレージにのみ使用されます。Kylinには構成hdfs-working-dirがあり、キューブ構築、立方体ファイル、一部のメタデータファイル(HBaseには適さないディクショナリやテーブルのスナップショットなど)などの中間データを格納するために使用されます。 HDFSはHDFS用に構成されています。
HDFSがKylinの作業ディレクトリとして使用されている場合、Kylinのデフォルト設定を使用するだけで済みます。kylin.propertiesには、次の構成があります。
kylin.env.hdfs-working-dir = / kylin
クラスターをシャットダウンする前に、/ kylinディレクトリ(HDFS上の)のデータをS3にバックアップしてください。s3-dist-cpを使用してください。そうしないと、データが失われ、後でクラスターを回復できなくなる可能性があります。
S3を「kylin.env.hdfs-working-dir」として使用する場合は、kylin.propertiesで次の構成を変更する必要があります。
kylin.env.hdfs-working-dir = s3:// your_bucket / kylin
kylin.storage.hbase.cluster-fs = s3:// your_bucket
kylin.source.hive.redistribute-flat-table = false
この方法では、中間一時ファイルとHFileがS3に書き込まれ、ビルドのパフォーマンスもHDFSよりも遅くなります。
4. Hadoop構成
S3のパフォーマンスを向上させ、一部のデータ整合性の問題を回避するには、一部のHadoop構成を変更する必要があります。
<プロパティ>
<name> io.file.buffer.size </ name>
<値> 65536 </値>
</プロパティ>
<プロパティ>
<name> mapred.map.tasks.speculative.execution </ name>
<値>偽</値>
</プロパティ>
<プロパティ>
<name> mapred.reduce.tasks.speculative.execution </ name>
<値>偽</値>
</プロパティ>
<プロパティ>
<name> mapreduce.map.speculative </ name>
<値>偽</値>
</プロパティ>
<プロパティ>
<name> mapreduce.reduce.speculative </ name>
<値>偽</値>
</プロパティ>
主にioバッファーを増やし、投機的実行を閉じます。
kylinのhdfs作業ディレクトリーが存在しない場合は、最初にこの作業ディレクトリーを作成します。
hadoop fs -mkdir / kylin
作業ディレクトリがs3にある場合:
hadoop fs -mkdir s3:// your_bucket / kylin
5. Kylinを起動します
起動方法は、基本的にはHadoopメソッドと同じです。
エクスポートKYLIN_HOME = / usr / local / kylin / apache-kylin-3.0.1-bin-hbase1x
$ KYLIN_HOME / bin / sample.sh
$ KYLIN_HOME / bin / kylin.sh start
期間中にspark homeのようなエラーが存在しない場合は、次のコマンドを実行します。
エクスポートSPARK_HOME = $ {SPARK_HOME:-/ usr / lib / spark}
KylinのWebサービスポートは7070で始まるため、クライアントIPにアクセスするには、マスターノードセキュリティグループの7070ポートを開く必要があります。
ログイン後のインターフェースは次のとおりです。