HDFS LocalResource
来源:互联网 发布:软件测试 培训学校 编辑:程序博客网 时间:2024/06/04 23:29
在实现一个Yarn Application的过程中,免不了要在HDFS上暂存一些文件,需要用到LocalResource这么个东东。
LocalResource represents a local resource required to run a container.The NodeManager is responsible for localizing the resource prior to launching the container.
LocalResource 就是Application Master或者其下管理的Task运行所需要从HDFS下载到本地的资源,你在提交APP时,要自己上传文件到HDFS,然后指定需要的LocalResource所在HDFS的Path。大概是下面这样的
ContainerLaunchContext clc = Records.newRecord(ContainerLaunchContext.class); clc.setCommands(Lists.newArrayList("cmd1......", "cmd2......")); Map<String, String> env = new HashMap<String, String>(); env.put("HADOOP_HOME", "/usr/lib/hadoop"); clc.setEnvironment(env); Path path = new Path("/somewhere/xxx.zip"); FileSystem fs = path.getFileSystem(new Configuration()); FileStatus stat = fs.getFileStatus(path); LocalResource localResource = LocalResource.newInstance( ConverterUtils.getYarnUrlFromURI(path.toUri()), LocalResourceType.ARCHIVE, LocalResourceVisibility.APPLICATION, stat.getLen(), stat.getModificationTime()); Map<String, LocalResource> localResources = new HashMap<String, LocalResource>(); localResources.put("resource1", localResource); clc.setLocalResources(localResources);
然后,你可以启动一个新的Container了。这里需要注意的几点是:
- LocalResourceType是为了告诉NodeManager在启动这个Container之前,下载资源列表后,要按照何种方式来处理这些文件。比如,ARCHIVE表示这是一个压缩档,必须解压后程序才能使用。
- 在往Map<String, LocalResource>里添加资源时,这个key的作用是,这个文件被NodeManager本地化时会创建一个链接到该文件(这个文件会在一个缓存目录下,并不是在Container的工作区间),这个链接的命名就是你的key,对于普通文件还好,但是对于压缩包就意味着解压后一定会在key这个目录下,所以注意文件的路径变化。
更多请参考:http://zh.hortonworks.com/blog/resource-localization-in-yarn-deep-dive/
0 0
- HDFS LocalResource
- generate localresource is disabled
- HDFS
- HDFS
- HDFS
- HDFS
- HDFS
- HDFS
- HDFS
- HDFS
- HDFS
- hdfs
- hdfs
- HDFS
- hdfs
- HDFS
- HDFS
- HDFS
- Selective Search for Object Recognition
- VS2010中VAssistX破解办法
- Apache Commons Configuration 读取配置信息
- 17 在一个字符串中找到第一个只出现一次的字符
- VS2012创建静态库(Win32)
- HDFS LocalResource
- Ubuntu 12.04 AFTR 配置
- Oracle中EXECUTE IMMEDIATE的使用技巧
- UINavigationController 直接返回到第一级目录
- Android再曝重大漏洞!请及时更新你的系统
- iOS 7.0 设置长文本UILabel高度
- 教育数据挖掘
- java笔记
- QTP资源