Tag: mapreduce

以编程方式将数据批量加载到HBase的最快方法是什么?

我有一个纯文本文件,可能有数百万行需要自定义解析,我想尽快加载到HBase表中(使用Hadoop或HBase Java客户端)。 我目前的解决方案是基于没有Reduce部分的MapReduce作业。 我使用FileInputFormat读取文本文件,以便将每一行传递给Mapper类的map方法。 此时,解析该行以形成写入context的Put对象。 然后, TableOutputFormat获取Put对象并将其插入表中。 该解决方案产生的平均插入速率为每秒1,000行,低于我的预期。 我的HBase设置在单个服务器上处于伪分布式模式。 一个有趣的事情是,在插入1,000,000行时,会产生25个Mappers(任务),但它们会连续运行(一个接一个); 这是正常的吗? 这是我当前解决方案的代码: public static class CustomMap extends Mapper { protected void map(LongWritable key, Text value, Context context) throws IOException { Map parsedLine = parseLine(value.toString()); Put row = new Put(Bytes.toBytes(parsedLine.get(keys[1]))); for (String currentKey : parsedLine.keySet()) { row.add(Bytes.toBytes(currentKey),Bytes.toBytes(currentKey),Bytes.toBytes(parsedLine.get(currentKey))); } try { context.write(new ImmutableBytesWritable(Bytes.toBytes(parsedLine.get(keys[1]))), row); } catch (InterruptedException […]

在OOZIE-4.1.0中运行多个工作流时出错

我按照http://gauravkohli.com/2014/08/26/apache-oozie-installation-on-hadoop-2-4-1/中的步骤在Linux机器上安装了oozie 4.1.0 hadoop version – 2.6.0 maven – 3.0.4 pig – 0.12.0 群集设置 – MASTER NODE runnig – Namenode,Resourcemanager,proxyserver。 SLAVE NODE正在运行 -Datanode,Nodemanager。 当我运行单个工作流程时,工作意味着它成功。 但是当我尝试运行多个Workflow作业时,即两个作业都处于接受状态 检查错误日志,我深入研究了问题, 014-12-24 21:00:36,758 [JobControl] INFO org.apache.hadoop.ipc.Client – Retrying connect to server: 172.16.***.***/172.16.***.***:8032. Already tried 9 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1000 MILLISECONDS) 2014-12-25 09:30:39,145 [communication thread] INFO org.apache.hadoop.ipc.Client – Retrying connect […]

在Hadoop中更改文件分割大小

我在HDFS目录中有一堆小文件。 虽然文件量相对较小, 但每个文件的处理时间量很大 。 也就是说, 64mb文件是TextInputFormat的默认分割大小,甚至需要几个小时才能处理。 我需要做的是减少分割大小 ,这样我就可以利用更多的节点来完成工作。 所以问题是,怎么可以分开文件让我们说10kb ? 我需要为此实现自己的InputFormat和RecordReader ,还是要设置任何参数? 谢谢。

没有这样的方法exceptionHadoop

当我从命令提示符运行Hadoop .jar文件时,它会抛出一个exception,说没有这样的方法StockKey方法。 StockKey是我为自己的键类型定义的自定义类。 这是例外: 12/07/12 00:18:47 INFO mapred.JobClient: Task Id : attempt_201207082224_0007_m_000000_1, Status : FAILED java.lang.RuntimeException: java.lang.NoSuchMethodException: SecondarySort$StockKey. () at org.apache.hadoop.util.ReflectionUtils.newInstance(ReflectionUtils.java:115) at org.apache.hadoop.io.WritableComparator.newKey(WritableComparator.java:109) at org.apache.hadoop.io.WritableComparator.(WritableComparator.java:95) at org.apache.hadoop.io.WritableComparator.get(WritableComparator.java:51) at org.apache.hadoop.mapred.JobConf.getOutputKeyComparator(JobConf.java:795) at org.apache.hadoop.mapred.MapTask$MapOutputBuffer.(MapTask.java:817) at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:383) at org.apache.hadoop.mapred.MapTask.run(MapTask.java:325) at org.apache.hadoop.mapred.Child$4.run(Child.java:270) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:396) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1127) at org.apache.hadoop.mapred.Child.main(Child.java:264)

hadoop中的MultipleOutputFormat

我是Hadoop的新手。 我正在尝试Wordcount程序。 现在尝试多个输出文件,我使用MultipleOutputFormat 。 这个链接帮助我做到了这一点。 http://hadoop.apache.org/common/docs/r0.19.0/api/org/apache/hadoop/mapred/lib/MultipleOutputs.html 在我的司机课上我有 MultipleOutputs.addNamedOutput(conf, “even”, org.apache.hadoop.mapred.TextOutputFormat.class, Text.class, IntWritable.class); MultipleOutputs.addNamedOutput(conf, “odd”, org.apache.hadoop.mapred.TextOutputFormat.class, Text.class, IntWritable.class);` 而我的减少课就变成了这个 public static class Reduce extends MapReduceBase implements Reducer { MultipleOutputs mos = null; public void configure(JobConf job) { mos = new MultipleOutputs(job); } public void reduce(Text key, Iterator values, OutputCollector output, Reporter reporter) throws IOException { int […]