草庐IT

hadoop_simple

全部标签

hadoop - 多文件流式传输 hdfs

我在不同的文件上有两个矩阵。我必须将文件读入缓存,以便我可以将它们相乘。我一直在想HDFS是否会帮助我。我怀疑HDFS没有,因为它没有足够的缓存内存来读取文件和处理它。简而言之,我可以同时打开两个文件吗 最佳答案 要回答您的问题的较短版本,是的,HDFSAPI确实允许一次并发读取两个文件。您可以简单地在两个文件上创建两个输入流并并行读取它们(就像您对常规文件所做的那样)并围绕它管理您的逻辑。但是,HDFS是一个简单的文件系统,没有自己的缓存(操作系统缓冲区缓存除外),您需要携带的任何计算缓存都需要由您自己的应用程序处理。作为另一个一

hadoop - reducer 阶段根本没有启动。它总是 'reducer=0%'

我一直在等待reducer阶段开始,但它没有开始。我试过格式化名称节点,但仍然是同样的问题。无论reducer必须运行在哪里,我都会遇到这个问题。任何人都可以在这方面帮助我。hive>LOADDATALOCALINPATH'/home/training/Desktop/student_performs_CSV.csv'OVERWRITEINTOTABLEstud_marks;Copyingdatafromfile:/home/training/Desktop/student_performs_CSV.csvCopyingfile:file:/home/training/Desktop/

hadoop - 在 FOREACH 中计算 SUM

假设我有以下内容DATA=foreachINPUT{//..generategroup,count(name)astotal;}我最终会得到一个键按名称分组的关系('mike','someprop',10)('mike','otherprop',3)('doug','xprop',5)...我想得到每个名字的前10名的总和:ALIAS=groupDATAbyname;RESULT=foreachALIAS{SORTED=ORDERDATAbytotaldesc;TOP10=LIMITSORTED10;//doesn'twork!can'thaveGROUPinsideFOREACHAG

Hadoop 映射/归约排序

我有一个map-reduce作业,我只使用映射器,因为每个映射器的输出肯定会有一个唯一的键。我的问题是当这个作业运行时我得到输出文件,比如part-m-00000、part-m-00001...它们会按键顺序排序吗?或者我是否需要实现一个reducer,它什么都不做,只是将它们写入part-r-00000、part-r-000001之类的文件。并且这些是否保证输出按键的顺序排序。 最佳答案 如果要对文件内的key进行排序,并保证当i小于j时,文件内的key小于文件j内的key,那么不仅需要reducer,还需要partitioner

Hadoop LongSumReducer

我正在使用hadoop“2.0.0-cdh4.1.1”,我尝试将LongSumReducer用于我的wordCount程序。job.setReducerClass((newLongSumReducer()).getClass());但是有一个编译错误:setReducerClass(java.lang.Class)inorg.apache.hadoop.mapreduce.Jobcannotbeappliedto(java.lang.Class) 最佳答案 它是否实现了正确的接口(interface)或为reducer实现扩展了正确

hadoop - 将文件从 AWS EMR 集群中的映射器上传到 S3

我有一个现有的mapreduce作业在AWSEMR上运行,它处理数十亿行日志并进行一些计算以从映射器形成(键,值)对。这些计算非常耗时,我需要在其他一些mapreduce作业中使用这些计算的某些中间步骤的输出。所以,我想利用计算的输出并上传到s3,而不影响现有的工作(即不改变当前的映射器或缩减器)。在上传之前,我首先将这些行收集到一个本地临时文件中,一旦文件变得足够大,我将把这个文件上传到s3。问题是-与reducer不同,Mapper不能根据键对数据进行排序。我如何为s3设计唯一的文件名以从不同的映射器上传数据,这样就不会有任何文件名冲突?我正在使用Java。如果有办法获取映射器集群

hadoop - 在 pig 中使用加载数据流步骤与使用(使用 PigStorage)和不使用它有什么区别?

在pig中使用加载数据流步骤与使用(使用PigStorage)和不使用它有什么区别?想知道以下步骤之间的区别。movie2=load'movie/part-m-00000'as(mid:int,mname:chararray,myr:int);movie2=load'movie/part-m-00000'usingPigStorage(',')as(mid:int,mname:chararray,myr:int); 最佳答案 默认使用PigStorage,它是一个文本文件,其中字段由定界符分隔,制表符作为定界符。指定usingPig

hadoop - Map 任务写入 Hive 临时文件夹时权限被拒绝

我在UbuntuPrecise12.04x64机器上使用ClouderaCDH4.1。我使用ClouderaManager免费版进行了顺利安装(在我自己安装时遇到了一些困难)。但是,我仍然无法让Hive工作。现在我可以向它发出HiveQL命令来创建表,并加载本地数据(示例中的原始表)。但是当我尝试将数据插入另一个表(具有适当的serde和存储的表)时,由于本地文件夹权限而失败。org.apache.hadoop.hive.ql.metadata.HiveException:java.io.IOException:Mkdirsfailedtocreatefile:/home/yaboul

hadoop - 在不同的数据库列集上工作的映射器任务

我们有一个场景,我们希望单个Hadoop作业创建/管理多个映射器任务,其中每个映射器任务将查询关系数据库表中的列子集。我们研究了DataDrivenDBInputFormat,但这似乎只是为了促进分区,其中每个映射器任务可以查询关系数据库表中的行子集。感谢这方面的任何建议。谢谢。 最佳答案 我建议您编写一个映射器来读取两组列的并集。您可以在同一个映射器中执行多个映射器任务,或者只是将数据转储到一个顺序文件中,多个后续映射器仅使用该文件中所需的内容。这取决于两组映射器输出之间的相关程度,以及它们在流程后期输入到同一hadoop步骤的速

hadoop - 不用java怎么把数据放到Hbase

有什么方法可以不使用任何java从文件中读取数据并将它们放入Hbase表中吗?我尝试使用存储来自pig脚本的数据sample=LOAD'/mapr/user/username/sample.txt'AS(all:chararray);使用org.apache.pig.backend.hadoop.hbase.HBaseStorage('mysampletable:intdata');将deneme存储到'hbase://sampledata';但这给出了这个错误信息:ERRORorg.apache.pig.tools.grunt.Grunt-ERROR2998:Unhandledint