您的位置:首页 > 大数据 > Hadoop

java在线学习-Hadoop读写Elasticsearch

2020-08-05 20:27 751 查看

源码学院

使用Hadoop操作Elasticsearch的方法,关键是指定InputFormatClass : EsInputFormat.classOutputFormatClass:EsOutputFormat.class,这个好像是ES官方提供的集成包。网上查了相关资料貌似挺少的。直接用一个例子来看如何使用了,java实现。例子:通过Map/Reduce将yy/test中sample值为2的数据移到javaman/yy中

1、在Elasticsearch中建一些测试数据吧yy/test中总共14条数据,sample=2的有7条数据

2、导入jar包

3、设置ES节点信息:getConf().set(ConfigurationOpti .ES_NODES, C tant.ES_NODES);指定index和type:getConf().set(ConfigurationOpti .ES_RESOURCE, args[0]);如果对一个index操作这里直接这样写就可以了,如果读写不同index就需要分别指定了:getConf().set(“es.resource.read”, args[0]);getConf().set(“es.resource.write”, args[1]);查询条件:getConf().set(ConfigurationOpti .ES_QUERY, “?q=sample:2”);

4、写Map/RedueceEsOutputFormat没有使用这里的key作为id,所以这里的key是没有用的,随便写啥都行。。。

5、直接运行查看下结果成功将7条记录复制到了javaman中了。这时候id是ES自动生成的,如何我们自己指定id呢?

6、使用指定属性的值来作为id,我这里测试就用timestamp吧。使用中用你的值唯一的可以作为主键的属 可以的。getConf().set(“ConfigurationOpti .ES_MAPPING_ID”, “timestamp”);也可以在reduce中在MapWritable中添加唯一属性也是可以的。

7、删除javaman的index,重新运行看下结果吧新的index中的id和timestamp值一致。OK,这里主要时对ES的读写,后面把操作MongoDB、Mysql。。也简单整理下,也方便时间久了之后查看。

尽管java在线学习资料已经分享给大家,但有多少人能认真的去践行,这个就难说了。互联网寒冬已经到来,作为程序员,更应在此时提高自己,有着更高远的追求。

篇幅有限,如果需要更详细的java在线学习资料可加博主扣:1993712276,或者去源码官网查看

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: