Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将Hashmap作为输入提供给映射器而不是文件_Java_Regex_Hadoop_Mapreduce_Hashmap - Fatal编程技术网

Java 将Hashmap作为输入提供给映射器而不是文件

Java 将Hashmap作为输入提供给映射器而不是文件,java,regex,hadoop,mapreduce,hashmap,Java,Regex,Hadoop,Mapreduce,Hashmap,我正在编写一个MR代码,以便对HBASE和HDFS中可用的数据执行正则表达式模式匹配。 我的输入文件是一个大型CSV文件,具有从HBASE获取唯一数据的键。此输入文件可以有重复项 我的问题- 在我的主类中,我希望读取输入文件并执行一些处理,并在将数据提供给mapper类之前将其保存到hashmap中。 在我看到的所有示例中,我们只能输入文件路径作为mapper类的输入, 有没有办法将hashmap输入到mapper而不是文件 多谢各位 呼吸法有两件事: Map reduce处理HDFS中的数据。

我正在编写一个MR代码,以便对HBASE和HDFS中可用的数据执行正则表达式模式匹配。 我的输入文件是一个大型CSV文件,具有从HBASE获取唯一数据的键。此输入文件可以有重复项

我的问题- 在我的主类中,我希望读取输入文件并执行一些处理,并在将数据提供给mapper类之前将其保存到hashmap中。 在我看到的所有示例中,我们只能输入文件路径作为mapper类的输入, 有没有办法将hashmap输入到mapper而不是文件

多谢各位 呼吸法有两件事: Map reduce处理HDFS中的数据。所以,您最好的选择是将地图数据保存为HDFS中的文件,然后转向map reduce。
但是,既然您的数据来自HBase,为什么不使用、读取数据并对其执行正则表达式操作呢。如果我遗漏了什么,请告诉我。谢谢Ramzy,我必须处理输入文件中的数据。对于输入文件中的每条记录,从HBASE和HDFS获取详细信息,并执行正则表达式扫描。下面是我所做的工作-将此输入文件传递给mapper类,在mapper类中,我正在读取HBASE、HDFS并扫描文档中的正则表达式。找到post regex后,我更新了HBASe和SolR索引。由于我的输入文件的大小非常小,无法创建多个映射器,因此我实现了基于输入文件大小创建映射器数量的方法。根据大小和记录计数,最多12个映射器,最少1个映射器。确定。做同一件事可以有多种方法。如果您正在实现所需的性能,那么一切都很好。但是,映射器的数量由框架根据输入拆分的数量决定。因此,除非您说“不要拆分”,或者已经编写了自己的记录阅读器,否则我不确定在代码中控制映射器是否是一种好的做法。谢谢,映射器的控制和控制级别在配置文件中参数化。我的输入文件通常小于块大小,因此默认情况下,我将始终有1个映射器。因此,我要么编写自己的分割代码,要么根据输入记录的数量控制映射器。但总的来说,我能够达到预期的性能,我能够用11个映射器在21秒内扫描50个文档,查找70个正则表达式。