草庐IT

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

hadoop - hive 。不能在 where 子句中引用分区

我创建了一个按日期分区的表。但是不能在where子句中使用partition。这是过程第一步:CREATETABLEnew_table(astring,bstring)PARTITIONEDBY(dtstring);第二步:Insertoverwritetablenew_tablepartition(dt=$date)Selecta,bfrommy_tablewheredt='$date表已创建。Describenew_table;astringbstringdtstring问题:select*fromnew_tablewheredt='$date'返回空集。鉴于select*from

eclipse - 在项目中包含 Hadoop 类的正确方法是什么

我正在尝试导入一个Hadoop类以在我的项目中使用。importorg.apache.hadoop.fs.*;我通常希望走出去,尝试找到要包含的HadoopJAR文件,将其放在eclipse中的libs文件夹中,然后使用这些类。完成后并没有找到我期望的结果,我问:将Hadoop类包含在我自己的Java类中以便我可以在eclipse中使用它们的正确方法是什么?我发现Hadoop文档令人沮丧,因为它的保质期极短。六个月前的建议显然毫无值(value)。 最佳答案 使用maven和m2e插件,一个hadoop项目非常简单:4.0.0csw

Hadoop 与 hive

我们想要使用Hadoop开发一个简单的JavaEEWeb应用程序,并进行日志文件分析。以下是开发应用程序的方法。但是我们无法通过该方法。日志文件将使用sftp/ftp从客户端计算机上传到Hadoop服务器。调用HadoopJob获取日志文件并将日志文件处理到HDFS文件系统中。在处理日志文件时,内容将存储到HIVE数据库中。从客户端Web应用程序使用HIVEJDBC连接搜索日志内容我们浏览了如此多的示例以完整填写一些步骤。但是我们没有任何具体的样本不可用。请建议上述方法是否正确,并获取用Java开发的示例应用程序的链接。 最佳答案

Hadoop 操作关闭节点

我在代码里面的虚拟机上运行hadoop。在执行hdfs操作(复制,..)时,虚拟机第一次关闭,实际节点第二次关闭。我不确定为什么会这样,我也无法在任何日志中看到为什么会这样。有什么建议/意见吗?谢谢。 最佳答案 作为重型守护进程,所有Hadoop进程都是资源密集型的,尤其是RAM。增加VM的RAM,希望它能解决问题。(如果没有,请告诉我)。 关于Hadoop操作关闭节点,我们在StackOverflow上找到一个类似的问题: https://stackover

hadoop - 50 个节点 hadoop passphraseless

我的问题很简单,我想设置一个50个节点的hadoop集群,如何在50个节点之间设置无密码。如果手动操作是非常困难的!提前致谢! 最佳答案 您不需要在节点之间设置SSH,在主节点和从节点之间单向就足够了。(所以只有主人必须访问奴隶没有密码)。通常的方法是编写一个bash脚本,循环遍历您的从文件并登录到您的从服务器,将主服务器的公钥复制到从服务器的授权key中。YoucanseeasmallworkthroughonPraveenSripati'sblog.但是,我不是管理员,所以我无法告诉您是否有更聪明的方法。也许这更适合Superu