我有一个要求,我必须索引hdfs文件(包括txt,pdf,docx,其他丰富的文件)到solr。
目前,我正在使用 DirectoryIngestMapper
对lucidworks连接器实现同样的功能。https://github.com/lucidworks/hadoop-solr
但是我不能使用它,因为它有一些限制(主要的限制是您不能指定要考虑的文件类型)。
所以现在我正在研究使用 MapReduceIndexerTool
. 但初学者不多(我是说绝对基础!)水平示例。
有没有人可以发布一些链接,并举例说明如何使用mapreduceindexertool?有没有其他更好或更简单的方法来索引hdfs中的文件?
2条答案
按热度按时间disho6za1#
在cloudera上,我认为您有以下选择:
MapReduceIndexer工具
CrunchIndexer工具
自定义spark或map reduce任务,例如使用spark solr
关于mapreduceindexertool这里有一个快速指南:
使用mapreduceindexertool将csv索引到solr
本指南向您展示如何索引/上载
.csv
使用mapreduceindexertool将文件保存到solr。此过程将从hdfs读取csv,并直接在hdfs中写入索引。另请参见https://www.cloudera.com/documentation/enterprise/latest/topics/search_mapreduceindexertool.html .
假设你有:
有效的cloudera安装(请参阅
THIS_IS_YOUR_CLOUDERA_HOST
,如果使用docker quickstart,则应quickstart.cloudera
)存储在hdfs中的csv文件(参见
THIS_IS_YOUR_INPUT_CSV_FILE
,就像/your-hdfs-dir/your-csv.csv
)已配置预期字段的有效目标solr集合(请参阅
THIS_IS_YOUR_DESTINATION_COLLECTION
)输出目录将是配置的solr
instanceDir
(见THIS_IS_YOUR_CORE_INSTANCEDIR
)应该是hdfs路径对于本例,我们将使用
uid
,firstName
以及lastName
柱。第一行包含标题。morphlines配置文件将跳过第一行,因此实际的列名并不重要,列的顺序应该是这样的。在solr上,我们应该用类似的东西配置字段:然后您应该创建一个morphlines配置文件(
csv-to-solr-morphline.conf
)代码如下:要导入,请在群集中运行以下命令:
一些注意事项:
你可以用
sudo -u hdfs
无法运行上述命令,因为您不应具有在hdfs输出目录中写入的权限。默认情况下,clouderaquickstart具有非常小的内存和堆内存配置。如果您收到内存不足异常或堆异常,我建议使用cloudera manager->yarn->configurations来增加它(http://this_is_your_cloudera_host:7180/cmf/services/11/config#filterdisplaygroup=resource+management)我对map和reduce作业使用了1GB内存和500mb堆。同时考虑改变
yarn.app.mapreduce.am.command-opts
,mapreduce.map.java.opts
,mapreduce.map.memory.mb
以及mapreduce.map.memory.mb
内部/etc/hadoop/conf/map-red-sites.xml
其他资源:http://kitesdk.org/docs/1.1.0/morphlines/morphlines-reference-guide.html#readcsv
https://github.com/kite-sdk/kite/blob/master/kite-morphlines/kite-morphlines-core/src/test/resources/test-morphlines/readcsv.conf
https://www.cloudera.com/documentation/enterprise/latest/topics/search_flume_nrt_index_ref.html#csug_topic_7
https://community.cloudera.com/t5/cloudera-search-apache-solrcloud/solr-indexing-on-hive-table/td-p/46809/page/2
fdbelqdn2#
但是我不能使用它,因为它有一些限制(主要的限制是您不能指定要考虑的文件类型)。
与https://github.com/lucidworks/hadoop-solr 输入是一条路径。
因此,可以按文件名指定。
-i /path/*.pdf
编辑:您可以添加
add.subdirectories
争论。但是*.pdf
不是递归设置的源-Dadd.subdirectories=true