问题标签 [distributed-cache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Hadoop 分布式缓存:使用 -libjars:如何在代码中使用外部 jars
好的,我可以使用 ilibjars 路径将外部 jar 添加到我的代码中。现在如何在我的代码中使用这些外部 jar。假设我在那个 jar 中定义了一个函数,该函数对 String 进行操作。如何使用它。使用 context.getArchiveClassPaths(),我可以获得它的路径,但我不知道如何实例化该对象。
这是我正在导入的示例 jar 类
命令运行
错误
java - Hadoop MapFile 阅读器未检测到分布式缓存中的文件
我需要有关地图文件阅读器的帮助。
我通过 -files 选项yarn jar HadoopProjects.jar rsProject.driver -files hdfs://localhost:8020/data/mapFileTestFolder.tar.gz...
将文件添加到缓存中。
这里我称之为
}
这是我在日志
2014-03-11 08:31:09,305 INFO [main] rsProject.myReducer: depReader init 开始 URI = file:/home/hadoop/Training/hadoop_work/mapred/nodemanager/usercache/hadoop/appcache/ 中看到的内容application_1394318775013_0079/container_1394318775013_0079_01_000005/mapFileTestFolder.tar.gz/mapFileTestFolder
2014-03-11 08:31:09,345 INFO [main] rsProject.myReducer: depReader init error - java.hadoop.FileNotrainingException /hadoop file:/file_work/: /mapred/nodemanager/usercache/hadoop/appcache/application_1394318775013_0079/container_1394318775013_0079_01_000005/mapFileTestFolder.tar.gz/mapFileTestFolder/data 不存在
mapFileTestFolder.tar.gz - 这是一个压缩的地图文件文件(其中包含索引和数据)
我猜这个文件存在于分布式缓存中,因为如果相同匹配,跑步者会进入条件。
为什么会这样?=/感谢
任何帮助
谢谢
hadoop - 添加外部文件以在 MapReduce 驱动程序类中使用
我正在尝试添加一个文本文件:sample.txt 以在 Driver 类中的 MapReduce 程序中使用。我尝试使用添加文件
在我的 yarn jar 命令中。这是将它添加到分布式缓存中,但我只能访问我的映射器和减速器类中的文件。我需要在我的 Driver 类中访问它。
我也尝试使用路径直接引用文件,但这似乎也不起作用。实现这一目标的最佳方法是什么?
hadoop - Hadoop MapReduce log4j - 将消息记录到 userlogs/job_ 目录中的自定义文件?
我不清楚应该如何在作业级别配置 Hadoop MapReduce log4j。有人可以帮我回答这些问题。
1) 如何从客户端机器添加支持 log4j 日志记录。即我想在客户端机器上使用 log4j 属性文件,因此不想干扰集群中的 Hadoop log4j 设置。我认为在项目/jar 中拥有属性文件就足够了,hadoop 的分布式缓存应该完成其余的传输 map-reduce jar 的工作。
2) 如何将消息记录到 $HADOOP_HOME/logs/userlogs/job_/ 目录中的自定义文件。
3) map reduce 任务会同时使用 log4j 属性文件吗?客户端作业提供的一个和 hadoop 集群中存在的一个?如果是,那么 log4j.rootLogger 会添加两个属性值吗?
谢谢 Srivatsan Nallazhagappan
caching - 在 UDF 中访问 Hadoop 分布式缓存
是否可以从 UDF 中的分布式缓存中获取文件?
在进一步深入之前,我花了很多时间试图找到这个特定问题的答案(在 StackOverflow 和其他方面),但无法找到答案。
问题的主要症结如下:我想获取一个已经在 HDFS 上的文件,将其复制到 Pig 中的分布式缓存中,然后能够从 Java UDF 中的缓存中读取该文件。另一个问题是由于程序的设计,我无法从“EvalFunc”扩展,这可能会解决问题。
我在我的 Pig 脚本中指定,将文件路径SET mapred.cache.files '$PATH_TO_FILE_ON_HDFS'
作为SET mapped.create.symlink 'yes'
参数传递给 UDF,并尝试使用 FileSystem 和 FileReader 类来访问文件,但无济于事。
如果我可以进一步澄清这一点/提供更多相关细节,请告诉我。
caching - Hadoop中分布式缓存的困惑
分布式缓存实际上是什么意思?在分布式缓存中拥有一个文件意味着它在每个数据节点中都可用,因此该数据不会有节点间通信,还是意味着文件在每个节点的内存中?如果没有,我可以通过什么方式在整个作业的内存中保存一个文件?这可以同时为 map-reduce 和 UDF 完成吗?
(特别是有一些配置数据,相对较小,我想保留在内存中,因为 UDF 适用于 hive 查询......?)
谢谢和问候, Dhruv Kapur。
java - java.lang.IllegalArgumentException:错误的 FS:,预期:hdfs://localhost:9000
我正在尝试实现 reduce side join ,并使用 mapfile reader 查找分布式缓存,但在 stderr 中检查时未查找值,它显示以下错误,lookupfile 文件已存在于 hdfs 中,并且似乎加载正确进入缓存,如标准输出中所示。
java.lang.IllegalArgumentException:错误的FS:文件:/app/hadoop/tmp/mapred/local/taskTracker/distcache/-8118663285704962921_-1196516983_170706299/localhost/input/delivery_status/DeliveryStatusCodes/data,预期:hdfs://localhost:9000在 org.apache.hadoop.fs.FileSystem.checkPath(FileSystem.java:390) 在 org.apache.hadoop.hdfs.DistributedFileSystem.getPathName(DistributedFileSystem.java:140) 在 org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus (DistributedFileSystem.java:554) 在 org.apache.hadoop.fs.FileSystem.getLength(FileSystem.java:816) 在 org.apache.hadoop.io.SequenceFile$Reader.(SequenceFile.java:1479) 在 org.apache .hadoop.io.SequenceFile$Reader.(SequenceFile.java:1474) 在 org.apache.hadoop.io.MapFile$Reader.createDataFileReader(MapFile.java:302) 在 org.apache.hadoop.io.MapFile$Reader。打开(地图文件.java:284) 在 org.apache.hadoop.io.MapFile$Reader.(MapFile.java:273) 在 org.apache.hadoop.io.MapFile$Reader.(MapFile.java:260) 在 org.apache.hadoop.io .MapFile$Reader.(MapFile.java:253) 在 mr_poc.reducerrsj.initializeDepartmentsMap(reducerrsj.java:59) 在 mr_poc.reducerrsj.setup(reducerrsj.java:42) 在 org.apache.hadoop.mapreduce.Reducer.run (Reducer.java:174) 在 org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:649) 在 org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:418) 在 org.apache。 hadoop.mapred.Child$4.run(Child.java:255) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:416) at org.apache.hadoop .security.UserGroupInformation.doAs(UserGroupInformation.java:1190) 在 org.apache.hadoop.mapred.Child.main(Child.java:249) java.lang。NullPointerException 在 mr_poc.reducerrsj.reduce(reducerrsj.java:1) 在 org.apache.hadoop.mapreduce.Reducer 的 mr_poc.reducerrsj.reduce(reducerrsj.java:127) 的 mr_poc.reducerrsj.buildOutputValue(reducerrsj.java:83) .run(Reducer.java:177) at org.apache.hadoop.mapred.ReduceTask.runNewReducer(ReduceTask.java:649) at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:418) at org. apache.hadoop.mapred.Child$4.run(Child.java:255) at java.security.AccessController.doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:416) at org.apache .hadoop.security。ReduceTask.runNewReducer(ReduceTask.java:649) at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:418) at org.apache.hadoop.mapred.Child$4.run(Child.java:255) at java.security.AccessController.doPrivileged(Native Method) 在 javax.security.auth.Subject.doAs(Subject.java:416) 在 org.apache.hadoop.security。ReduceTask.runNewReducer(ReduceTask.java:649) at org.apache.hadoop.mapred.ReduceTask.run(ReduceTask.java:418) at org.apache.hadoop.mapred.Child$4.run(Child.java:255) at java.security.AccessController.doPrivileged(Native Method) 在 javax.security.auth.Subject.doAs(Subject.java:416) 在 org.apache.hadoop.security。
这是我的驱动程序代码,
这是我的减速器代码
包 mr_poc;
这是我的核心站点 XML
任何帮助将不胜感激。提前致谢!!!
java - 如何设置 Hadoop DistributedCache?
当我运行 hadoop 代码添加第三个 jar 时,就像下面的代码:
我得到以下异常:
org.apache.hadoop.util.DiskChecker$DiskErrorException:找不到taskTracker/hadoop/distcache/-7315515059647727905_-860888033_1107570546/nn.hadoop.dev/tmp/hadoop-hadoop/mapred/staging/hadoop/的任何有效本地目录。 staging/job_201405281453_0053/libjars/mahout-core-0.8-job.jar 在 org.apache.hadoop.fs.LocalDirAllocator$AllocatorPerContext.getLocalPathForWrite(LocalDirAllocator.java:381) 在 org.apache.hadoop.fs.LocalDirAllocator.getLocalPathForWrite(LocalDirAllocator .java:146) 位于 org.apache.hadoop.filecache.TaskDistributedCacheManager.setupCache(TaskDistributedCacheManager.java:187) 的 org.apache.hadoop.filecache.TrackerDistributedCacheManager.getLocalCache(TrackerDistributedCacheManager.java:173)。 mapred.TaskTracker$4.run(TaskTracker.java:1320) 在 java.security.AccessController。doPrivileged(Native Method) at javax.security.auth.Subject.doAs(Subject.java:415) at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1190) at org.apache.hadoop.mapred。 TaskTracker.initializeJob(TaskTracker.java:1311) at org.apache.hadoop.mapred.TaskTracker.localizeJob(TaskTracker.java:1226) at org.apache.hadoop.mapred.TaskTracker$5.run(TaskTracker.java:2603) at java.lang.Thread.run(Thread.java:744)2603) 在 java.lang.Thread.run(Thread.java:744)2603) 在 java.lang.Thread.run(Thread.java:744)
哪位大神知道怎么解决这个问题,谢谢!
hadoop - 分布式缓存中的访问路径变量
我正在尝试访问Path
分布式缓存中的变量。
在驱动程序中
DistributedCache.addCacheFile(new Path(MINMAX).toUri(),conf);
和
在设置()
但显示
我做错什么了吗。
请建议。
hadoop - DistributedCache.getCacheFiles() 和 DistributedCache.getLocalCacheFiles() 有什么区别
我的理解是
分布式模式下的 DistributedCache.getCacheFiles() 和伪分布式模式下的DistributedCache.getLocalCacheFiles()。
那么我们能否在 MapReduce 代码中检查我们是在伪模式还是分布式模式下运行
我们可以做这样的事情还是有更好的方法。
即使我们在相对模式下使用DistributedCache.getCacheFiles()和DistributedCache.getLocalCacheFiles() , DistributedCache 也可以获取HDFS 或本地数据。