我在CSV格式的HDFS中有一个大型数据集,我需要批量上传到ElasticSearch服务器。有没有办法使用unix命令行从HDFS批量上传这些数据?
我在SOLR(https://wiki.apache.org/solr/UpdateCSV)中使用一些简单的shell命令完成了这个:
hadoop fs -ls <dir-name> | awk '{ print $NF }'|
while read inDir ; do hadoop fs -cat $inDir |
parallel --pipe --block 50000 curl -v --data-binary @- -H
"Content-type:text/plain” ‘http://localhost:8983/solr/update/csv?commit=false\&fieldnames=name,address,city' ;
done
是否有类似的方法/工具我可以从HDFS文件中读取数据,将其转换为格式良好的JSON并将其流式传输到ElasticSearch服务器以进行批量索引?另一个选择是我使用Java / Python来执行此处理。我只是想探索是否有一套简单的unix工具可以用来实现同样的目的。
感谢。