公共のマイクロチャネル番号にオリジナルリリース:テンセントクラウドストレージ(ウォッチ驚き)
利用シナリオ
ElasticSearchは非常に人気のあるオープンソースのドキュメントのインデックス作成エンジンで、中小企業は、ログの取得、分析、クエリを実行するために、より一般的なツールです。
あなたは、データの6ヶ月間に、このような30日間などのデータ、の長い歴史を保持する場合でも、ElasticSearchデータは、ローカルElasticSearchのメカニズムの3つのコピーがありますが、データの信頼性を保証するために、ローカル・ディスク・ストレージに依存しませんが、ディスク容量が限られていますストレージは、最大伸びとなります。
ES + CHDFS:履歴データの記憶及び検索よりよく満たすために、非常に信頼性の高いストレージソリューションをお勧めします。
クラウドHDFS(クラウドHDFS、CHDFS)は HDFS契約と完全に互換性があり、テンセントクラウド・ストレージ・チームの新拠点は、ビッグデータのシーン解析に膨大なデータストレージとデータを解決するために主に、ユーザーができビッグデータのための既存のコードを変更せずCHDFSへのローカル自己HDFSファイルシステムのシームレスな移行。過去のインデックスデータのESを保存CHDFSに移動することができます。
次に、我々はあなたがCHDFS ESデータストリームに介して取得する方法をステップバイステップで教えてくれます。
準備
始める前に、次のことを行う必要があります。
Hadoopの環境のセットアップ、2.xの、および3.xが用意されています。また、時間と労力を節約し、テンセントクラウドEMRパッケージを使用することができます。
2. ES-Hadoopのプラグインの作者は、Hadoopの-7.4.2.jar-elasticsearchをダウンロードしインストールします(クリックでダウンロードする)、各サーバ上のCLASSPATHにはプラグインをダウンロードします(あなたが表示するために、Javaクラスパスコマンドを使用することができます)アセンブリHadoopのインストール;
3.ダウンロードCHDFSプラグイン、およびのconfigure CHDFSプラグ(詳細を参照してください)。
4. 创建CHDFS文件系统并配置好权限组和挂载点(查看详情);
当上面4个步骤均准备成功,恭喜你,离成功越来越近了。
编写备份代码
编写MapReduce程序,编写自己的Mapper,示例:
package org.chdfs.es_chdfs;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Mapper;import org.elasticsearch.hadoop.mr.LinkedMapWritable;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import java.io.IOException;class TestMapper extends Mapper<Text, LinkedMapWritable, Text, LinkedMapWritable> { private static final Logger LOG = LoggerFactory.getLogger(TestMapper.class); @Override protected void setup(Context context) throws IOException, InterruptedException { super.setup(context); } @Override protected void map(Text key, LinkedMapWritable value, Context context) throws IOException, InterruptedException { context.write(key, value); } @Override protected void cleanup(Context context) throws IOException, InterruptedException { super.cleanup(context); }}
编写Main函数,指定ES的实例及索引,示例代码:
package org.chdfs.es_chdfs;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce.Job;import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;import org.elasticsearch.hadoop.mr.EsInputFormat;import org.elasticsearch.hadoop.mr.LinkedMapWritable;import org.slf4j.Logger;import org.slf4j.LoggerFactory;public class EsToCHDFS { private static Logger LOG = LoggerFactory.getLogger(EsToCHDFS.class); public static void main(String[] args) { try { Configuration conf = new Configuration(); conf.setBoolean("mapred.map.tasks.speculative.execution", false); conf.setBoolean("mapred.reduce.tasks.speculative.execution", false); //ElasticSearch节点 conf.set("es.nodes", "10.0.1.11:9200"); //ElaticSearch 索引 conf.set("es.resource", "logstash-2019.11.29-000001"); if (args.length != 1) { LOG.error("error : " + args.length); System.exit(1); } Job job = Job.getInstance(conf, " EsToCHDFS "); job.setJarByClass(EsToCHDFS.class); job.setInputFormatClass(EsInputFormat.class); job.setMapperClass(TestMapper.class); job.setMapOutputKeyClass(Text.class); job.setMapOutputValueClass(LinkedMapWritable.class); FileOutputFormat.setOutputPath(job, new Path(args[0])); System.out.println(job.waitForCompletion(true)); } catch (Exception e) { LOG.error(e.getMessage(), e); } }}
コンパイルされたコードのJARパッケージを生成し、例えばES-chdfs-0.0.1-SNAPSHOT.jarに
バックアップデータ
優れたjarパッケージを生成する場合、例えば、Hadoopのコマンドジョブの実行環境を起動します。
HadoopのジャーES-chdfs-0.0.1-SNAPSHOT.jarにorg.chdfs.es_chdfs.E2HJob01 OFS://f4mnighxmwd-tiW9.chdfs.ap-beijing.myqcloud.com/e2h
前記CHDFSの指定されたストレージ・パス、
OFS://f4mnighxmwd-tiW9.chdfs.ap-beijing.myqcloud.com/e2h
注:制限によりはE2Hディレクトリが存在しないことを確認する必要がMapReduceの。
結果を表示
MapReduceのを提出した後は、ジョブが正常に完了したかどうかを観察するために、ページのHadoopのモニターを表示することができます。
CHDFS世代上のファイルがある場合、正常終了した場合、あなたは見ることができます。あなたは次のような表示を確認する必要がある場合、我々は、データダンプCHDFSにESが正常に完了したことを、あなたを祝福します。
データ分析
正常なバックアップが完了したら、ElasticSearchに過去のデータ、ElasticSearch上のストレージ・コストの大幅な削減を解放することができます。
こうしたスパーク、ハイブ、TEZ、さきがけ、などCHDFSシームレス缶主流の大規模なデータパッケージ、 MapReduceの、 などのテンセント雲EMR。CHDFS、データのさらなる分析のために大規模なデータに共通のコンポーネントを簡単かつ効率的な利用に着陸データの後、および顧客のためのより多くの価値を作成します。
以上のマスターにウォッチテンセントクラウドクラウド技術
受け取るにはクリック:1元の酒宴のCOS制限!