草庐IT

java - 如何在 map reduce 程序中解析 PDF 文件?

我想在我的hadoop2.2.0程序中解析PDF文件,我找到了this,按照它说的,直到现在,我有这三个类:PDFWordCount:包含map和reduce函数的主类。(就像nativehadoopwordcount示例,但我使用了我的TextInputFormat类而不是PDFInputFormat。PDFRecordReaderextendsRecordReader:这是这里的主要工作。特别是我把我的initialize此处的函数以获得更多说明。publicvoidinitialize(InputSplitgenericSplit,TaskAttemptContextcontex

java - 使用 native 协议(protocol)的 Cassandra 自定义 map-reduce 输入格式化程序

我正在使用ApacheCassandra(1.2)和ApacheMap-Reduce处理一些数据。目前,我使用org.apache.cassandra.hadoop.cql3中的CqlPagingInputFormat。此提供程序使用Thrift来提取数据。Thrift似乎相当慢(300M记录,在3节点集群中需要8多个小时才能读取),并且由于存在原生二进制协议(protocol),我想知道是否有人使用过它。我对任何其他优化和配置调整不感兴趣-这是一个单独的问题。我的问题是是否有直接使用Cassandranative协议(protocol)的map-reduce输入格式化程序的实现?如果

java - 使用来自 hadoop reduce 的复合主键插入到 cassandra 表

我正在使用ApacheHadoop、MapReduce和Cassandra运行一个MapReduce作业,该作业从一个Cassandra表中读入,然后输出到另一个Cassandra表。我有一些作业输出到具有单个主键的表。例如,这个用于计算每种单词数量的表有一个键。CREATETABLEword_count(wordtext,countint,PRIMARYKEY(text))WITHCOMPACTSTORAGE;关联的reduce类看起来有点像这样:publicstaticclassReducerToCassandraextendsReducer>{publicvoidreduce(T

hadoop - 我可以为每个节点定义不同的 map 和 reduce 插槽吗?

我想知道是否可以为hadoop集群中的每个节点定义不同数量的槽。例如:tasktracker1:2个map和2个reducetasktracker2:1个映射和1个缩减等等……或者我必须为集群中的所有节点设置槽数非常感谢,,注意:我使用hadoop版本:1.2.1,因为它是最新的稳定版本,但如果有任何版本可以做到这一点,请告诉我 最佳答案 看看mapreduce.tasktracker.map.tasks.maximum和mapreduce.tasktracker.reduce.tasks.maximum。它们都在mapred-si

file - java eclipse hadoop map reduce程序无法访问我存储在hdfs中的文件

我的javaeclipsehadoopmapreduce程序显示无法定位输入文件的错误。我已经使用hadoop命令通过终端将文件复制到hadoop目录。我可以在javaeclipsedfs位置看到这些文件。并且还在终端中使用命令hadoopdfs-ls。当我创建一个普通文件夹(不是hdfs)时,问题就解决了。但是随后程序正在从本地文件系统访问文件。我已经在redhat服务器32位上安装了hadoop1.2.1,使用javaeclipseluna,我已经包含了hadoop插件和来自hadoop库的外部jar文件。输入和输出路径通过运行时参数给出 最佳答案

hadoop - 哪种方法阻止 reducer 在 hadoop yarn 中启动实际的 reduce 阶段?

我是hadoopyarn的新手,希望reducers在完成所有映射之前开始实际的缩减过程。我试图找出调用reducer但找不到的类。任何人都可以在这方面帮助我吗? 最佳答案 在所有映射器完成之前,reducer只能开始收集映射器的输出。这称为shuffle阶段。但是,它们无法启动sorting和reduce阶段,因为它们需要在开始工作之前拥有ALLmap输出记录在他们。原因很简单:想象一下wordcount示例,您想要计算一个词的出现频率。在reduce阶段,如果您在获取所有映射器的输出(即一些计数是缺少这个词),那么,你可能会给出

java - Hadoop,成功的 Map Reduce 作业但没有输出

目标:我正在尝试使用MapReduce合并数据。我在同一个文件夹中有多组数据。方法:所以我在一个程序/流程中连续多次运行MapReduce合并作业。问题:我面临的问题不是失败的工作,而是没有输出的成功工作。第一个(有时是两个)迭代总是有输出(part-r-00000)但不是以下。我正在使用大小和体积都非常小的示例数据集(1~2kb,大约5个文件)我尝试了什么:让线程在每次运行后hibernate5秒,但无济于事。过了一会儿,我尝试使用webhdfs检查,仍然没有这样的文件。请问您能给我解释一下吗?提前致谢。图片:代码:/**Tochangethislicenseheader,choos

java - 合并来自 hadoop map-reduce 的结果

我有一个Mapper,NullWritable,Text,Text>它有效地接收电子邮件并多次吐出电子邮件地址的键和找到它的字段的值(发件人、收件人、抄送等)。然后我有一个Reducer接受电子邮件地址和字段名称。它吐出一个NullWritable键和一个地址在给定字段中出现的次数的计数。例如...{"address":"joe.bloggs@gmail.com","toCount":12,"fromCount":4}我正在使用FileUtil.copyMerge来合并作业的输出,但(显然)不同reducer的结果没有合并,所以在实践中我看到:{"address":"joe.blogg

hadoop - HDFS 联邦 : Submission of Map Reduce jobs among multiple Name nodes

根据HdfsFederation上的Apache文档,系统可通过多个名称节点的联合进行隔离扩展。多个名称节点/namespace为了横向扩展名称服务,联邦使用多个独立的名称节点/namespace。名称节点是联合的;Namenodes是独立的,不需要相互协调。Datanodes被所有Namenodes用作block的公共(public)存储。我唯一的疑问:我没有看到名称节点之间有任何中央协调器,因为所有节点都在运行隔离。对如何提交和处理作业感到困惑。1)如果我提交一个map-reduce作业,哪个名称节点将处理它?或者2)客户端是否应该知道必须为其提交作业的名称节点?如果客户端不知道哪

hadoop - 如何使用 Ubuntu 终端运行 Map Reduce 程序?

我的hadoop路径是/usr/local/hadoop和jar包含在/usr/local/hadoop/share和java7中。请帮我找出问题所在和JAVA_HOME=/ust/lib/jvm/jdk-7-amd64 最佳答案 您肯定给出了一个很详细的信息!但是您可以按照以下步骤来执行您的jar文件:1-在bashrc中添加依赖:exportHADOOP_PREFIX=/path/to/hadoopexportPATH=$PATH:$HADOOP_PREFIX/binexportCLASSPATH=$CLASSPATH:$HAD