草庐IT

HADOOP_PREFIX

全部标签

java - 如何在不使用 OOzie 的情况下创建 Hadoop 作业链

我想创建一个由三个Hadoop作业组成的链,其中一个作业的输出作为输入提供给第二个作业,依此类推。我想在不使用Oozie的情况下执行此操作。我已经编写了以下代码来实现它:-publicclassTfIdf{publicstaticvoidmain(Stringargs[])throwsIOException,InterruptedException,ClassNotFoundException{TfIdftfIdf=newTfIdf();tfIdf.runWordCount();tfIdf.runDocWordCount();tfIdf.TFIDFComputation();}publ

hadoop - map task 是否并行读取其输入数据?

假设HDFS的复制因子是3,那么对于一个map任务,有三个节点保存它的输入数据。map任务是从所有3个节点并行读取还是随机选择其中一个?我做了一些实验,我将其中一个数据节点设置为具有非常低的带宽并获得一些非常慢的maptask,所以我猜maptask不会并行读取所有可用的数据节点,我是对的?感谢您的帮助! 最佳答案 如果您的复制因子是3,则集群中有三个节点保存特定映射任务的输入数据。JobTracker只会将map任务分配给这三个节点中的一个,因此它只会从该节点读取数据。Hadoop具有称为推测执行的功能。在推测执行中,如果JobT

java - 获取传递给 hadoop 映射器的行的最后一个字

如果我的数据集包含这样的行199.72.81.55--[01/Jul/1995:00:00:01-0400]"GET/history/apollo/HTTP/1.0"2006245并且我正在使用hadoop运行mapreduce作业,如何获取每行中的最后一个元素?我已经尝试了所有明显的答案,例如StringlastWord=test.substring(test.lastIndexOf("")+1);但这给了我-性格。我试过根据空格拆分它,并获取最后一个元素,但最后一个字符仍然是-。难道我不指望数据会一行一行的传送给我吗?换句话说,我难道不能期望abcd\nefgh\n形式的文件逐行传

hadoop - 错误主要 com.facebook.presto.server.PrestoServer null

我正在尝试在我的Ubuntu12.04LTS(32位)、Java1.7.0_25、Python2.7.3中配置presto。presto不能在32位系统中工作吗?请帮我解决这个问题。我收到以下错误。2013-11-14T14:37:54.165+0530DEBUGmaincom.facebook.presto.hive.RebindSafeMBeanServerio.airlift.node:name=NodeInfoalreadyboundtoio.airlift.node.NodeInfo[io.airlift.node:name=NodeInfo]2013-11-14T14:37

java - 中间键值对流是否在 hadoop 中优化

mapreduce作业中的中间键值对在被洗牌到将运行reduce任务的tasktracker节点之前被写入mapred.local.dir。我知道HFDS已优化以写入大数据block,因此与常规文件系统相比,可最大限度地减少硬盘的寻道时间。现在我很好奇hadoop是否也针对将中间kev-value对流式传输到本地文件系统进行了优化?我问这个是因为我的应用程序只有很少的输入数据,但是有大量的中间数据和中等大小的输出数据。hadoop在我的案例中是有益的还是我应该考虑一个不同的框架?(请注意,我的软件与WordCount密切相关,但我发出所有子字符串而不是所有单词)非常感谢您的帮助!EDI

hadoop - map和reduce如何并行运行

我是hadoop的初学者,当我运行hadoop作业时,我注意到进度日志显示映射80%减少25%。我对mapreduce的理解是映射器产生一堆中间值。在映射器产生输出之后,有中间对的洗牌/排序,这些值被发送以减少作业。谁能解释一下map/reduce如何并行工作。 最佳答案 必须将映射器的输出复制到适当的缩减器节点。这称为洗牌过程。这甚至可以在所有映射器完成之前就开始,因为决定将哪个键转到哪个缩减器仅取决于映射器的输出键。所以你看到的25%的进步是由于洗牌阶段。shuffle之后是sort阶段,然后是reduce阶段。除非所有映射器都

java - 如何在 maven 中给出参数 - 对于 hadoop WordCount

我在eclipse中做HadoopWordCount.java。我将输入和输出路径作为参数。我正在尝试将我的hadoopMR从eclipsejuno转换为maven。我写了pom.xml。但是我应该在哪里包含我的参数?输入:/home/sree/myfiles/book.txt输出:/home/sree/myfiles/wcout我编辑的pom.xml4.0.0TryMavenTryMaven0.0.1-SNAPSHOTsrcsrc**/*.javamaven-compiler-plugin2.3.21.71.7org.apache.maven.pluginsmaven-assembl

python - 使用 Hadoop 运行 jar 文件 - Python

我有一个现有的Python程序,它具有如下所示的一系列操作:连接到MySQLDB并将文件检索到本地FS。运行对这些文件进行操作的程序X。类似于:java-jarX.jar这将打开文件夹中的每个文件并对它们执行一些操作,并将相同数量的转换文件写入另一个文件夹。然后,运行对这些文件进行操作的程序Y:java-jarY.jar这将创建多个文件,每个文件一行,然后使用合并功能将其合并为一个文件。此合并后的文件将作为进一步操作和分析的输入,这些操作和分析对这个问题来说并不重要。我想利用Hadoop来加速操作Y,因为如果存在以下情况,它需要很长时间才能完成:a)更多数量的文件或b)要操作的大输入文

java - 如何使用AES算法、Hadoop和Java加密大文本文件?

我有一个大文本文件(100MB或更多),我想使用AES算法使用Hadoop和Java(Map/Reduce函数)加密文本文件的内容,但由于我是Hadoop的新手,我不太确定如何开始。我发现JCE(一个Java库)已经实现了AES,但我必须提供16字节的文本以及生成16字节密文(加密输出)的key。我的问题是如何使用这个JCE/AES方法来完成我的目的?我应该如何拆分我的大输入文本文件以及我应该将什么传递给Mapper类的map方法?关键和值(value)应该是什么?应该将什么传递给Reduce方法?任何类型的起点或代码示例将不胜感激。(附:我是Hadoop的新手,我只是在我的机器上运行

java - Hadoop 的 TaskTracker 是否为每个任务生成一个新的 JVM?

根据TaskTrackerHadoopWikipage,TaskTracker生成一个新的JVM来完成它正在跟踪的实际工作。然而,页面中有一个拼写错误,不清楚TaskTracker是否为它正在跟踪的所有任务生成一个JVM,或者TaskTracker是否为每个任务生成一个JVM它正在跟踪。我问的原因是因为我很好奇使用静态变量来保存作业级变量是否比简单地在map函数中实例化变量有任何好处。 最佳答案 它为每个任务生成一个JVM。您可以通过设置此配置参数来重用jvms:mapred.job.reuse.jvm.num.tasks,但这只是