草庐IT

mapReduce

全部标签

java - OpenJDK 客户端 VM - 无法分配内存

我在集群上运行Hadoopmapreduce作业。我收到此错误。OpenJDKClientVMwarning:INFO:os::commit_memory(0x79f20000,104861696,0)failed;error='Cannotallocatememory'(errno=12)ThereisinsufficientmemoryfortheJavaRuntimeEnvironmenttocontinue.Nativememoryallocation(malloc)failedtoallocate104861696bytesforcommittingreservedmemor

hadoop - getCacheFiles() 和 getLocalCacheFiles() 是一样的吗?

作为getLocalCacheFiles()已弃用,我正在尝试寻找替代方案。getCacheFiles()似乎是一个,但我怀疑它们是否相同。当您调用addCacheFile()时,HDFS中的文件将被下载到每个节点,使用getLocalCacheFiles()你可以获得localized文件路径,你可以从本地文件系统读取它。但是,getCacheFiles()返回的是文件在HDFS中的URI。如果你通过这个URI读取文件,我怀疑你仍然从HDFS而不是本地文件系统读取。以上是我的理解,不知道对不对。如果是这样,getLocalCacheFiles()的替代方法是什么?为什么Hadoop首

hadoop - 可以只安装 Hadoop HDFS 吗?

我是Hadoop世界的新手,我需要安装带有HadoopHDFS的mesos来制作容错的分布式文件系统,但所有安装引用都包括我的场景所需的组件,例如:MapReduce。您对此有任何想法或引用吗? 最佳答案 绝对有可能。不要把Hadoop看成是一个可安装的程序,它只是由一堆运行在集群内不同节点上的java进程组成的。如果你使用hadooptarball,如果你只需要HDFS,你可以只运行NameNode和DataNodes进程。如果您使用其他hadoop发行版(例如HDP),我认为HDFS和mapreduce来自不同的rpm包,但安装

hadoop - 为什么我们在 YARN 中配置 mapred.job.tracker?

我所知道的是引入了YARN,它取代了JobTracker和TaskTracker。我看过一些Hadoop2.6.0/2.7.0安装教程,他们将mapreduce.framework.name配置为yarn和mapred.job.tracker属性作为本地或主机:端口。mapred.job.tracker属性的描述是"ThehostandportthattheMapReducejobtrackerrunsat.If"local",thenjobsarerunin-processasasinglemapandreducetask."我的疑问是如果我们使用YARN为什么要配置它,我的意思是J

scala - 用于 TB 级结构化数据的 Greenplum、Pivo​​tal HD + Spark 或 HAWQ?

我在Greenplum数据库中有数TB的结构化数据。我需要对我的数据运行本质上是MapReduce作业。我发现自己至少重新实现了MapReduce的功能,以便这些数据适合内存(以流方式)。然后我决定到别处寻找更完整的解决方案。我查看了PivotalHD+Spark,因为我使用的是Scala,而Spark基准测试是一个令人惊叹的因素。但我相信这背后的数据存储HDFS的效率将低于Greenplum。(注意“我相信”。我很高兴知道我错了,但请提供一些证据。)因此,为了与Greenplum存储层保持一致,我查看了Pivotal的HAWQ,它基本上是在Greenplum上使用SQL的Hadoop

hadoop - [Vertica][VJDBC](100172) 一行或多行被服务器拒绝

使用Sqoop将数据从Impala加载到Vertica时出现以下错误。Error:java.io.IOException:Can'texportdata,pleasecheckfailedmaptasklogsatorg.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:112)atorg.apache.sqoop.mapreduce.TextExportMapper.map(TextExportMapper.java:39)atorg.apache.hadoop.mapreduce.Mapper.run

java - 为什么我们不能在 Map Reduce 中使用 Java 原始数据类型?

我正在学习HadoopMapReduce框架。我正在努力寻找为什么我们不能在MapReduce中使用Java原始数据类型。 最佳答案 Java序列化要求类的散列以序列化格式在对象的每个实例之前加上前缀。因此,要读取对象,您不需要指定类名。这会导致读取对象的开销,因为每个对象都可以是不同类的实例。在Hadoop序列化中,我们在检索时指定类名。因此,不需要前缀,因为我们已经知道要检索的内容。因此我们设置了InputFormat。这提高了RPC过程中各方面的速度和性能。 关于java-为什么我

java - Oozie:从 Oozie <java> 操作启动 Map-Reduce?

我正在尝试使用在Oozie工作流中执行Map-Reduce任务行动。O'Reilley的ApacheOozie(IslamandSrinivasan2015)指出:Whileit’snotrecommended,JavaactioncanbeusedtorunHadoopMapReducejobsbecauseMapReducejobsarenothingbutJavaprogramsafterall.ThemainclassinvokedcanbeaHadoopMapReducedriverandcancallHadoopAPIstorunaMapReducejob.Inthatmo

java - 使用 Hadoop 计数器 - 多个作业

我正在使用Hadoop进行mapreduce项目。我目前有3个顺序工作。我想使用Hadoop计数器,但问题是我想在第一个作业中进行实际计数,但在第三个作业的reducer中访问计数器值。我怎样才能做到这一点?我应该在哪里定义enum?我需要通过它扔第二份工作吗?它也有助于查看一些代码示例来执行此操作,因为我还找不到任何东西。注意:我使用的是Hadoop2.7.2编辑:我已经尝试过解释的方法here它没有成功。我的情况不同,因为我想从不同的工作访问计数器。(不是从映射器到reducer)。我尝试做的事情:第一份工作:publicstaticvoidstartFirstJob(String

java - Hadoop:在映射函数中有线程

我可以在map函数中使用线程吗?我的任务是让线程真正帮助我。我需要同时为每个输入行向HashMap中添加值。我的输入行变成了一个字符串数组,对于这个数组的每个值,我都需要将它添加到HashMap中。我后来在清理函数中使用了这个hashmap。我正在使用for循环执行此操作,这似乎是我项目的瓶颈。所以我想到了使用并发HashMap并将字符串数组拆分为几个较小的数组。所以每个线程都负责在HashMap中添加相应的“较小”数组。问题是我已经在本地Java应用程序中实现了它并且它可以工作。当我在hadoop中使用它时,结果不是预期的。我正在为每个线程使用Thread.join()以便对于每一行