我是hadoop新手。我在分配用于从oracle数据库的表中读取记录的输入拆分时遇到了一个混乱。我试过了, Configuration conf = new Configuration(); conf.set("mapreduce.input.fileinputformat.split.maxsize","<size in bytes>"); conf.set("mapreduce.input.fileinputformat.split.minsize","<size in bytes>");
而且,
job.getConfiguration().setInt("mapred.map.tasks",<number of map tasks>);
甚至,
JobConf jobcon = new JobConf(conf,MyDBtoHdfsClass.class);
jobcon.setNumMapTasks(<number of map tasks>);
但当我从数据库中读取记录时,它们都不起作用。我创建了一个表
100000条记录,包含一个唯一的数字键(1到100000)作为主键,后跟第二个字段中的数字值。
不管我设置了什么输入分割限制,它只创建一个分割。
但是,当我运行一个简单的wordcount程序时,输入分割工作得非常好。
我不知道为什么,当我搜索这个问题,我发现了一个类似的问题由丹哈维问,我在这里附上。
http://grokbase.com/t/hadoop/general/104dnx4yq0/dbinputformat-number-of-mappers
请帮我澄清这个疑问。
(我正在使用eclipseide进行测试)
暂无答案!
目前还没有任何答案,快来回答吧!