首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从每个节点访问hadoop-yarn应用程序上的hdfs?

如何从每个节点访问hadoop-yarn应用程序上的hdfs?
EN

Stack Overflow用户
提问于 2017-02-03 15:54:58
回答 3查看 1K关注 0票数 0

如何访问HDFS,如何读写"HADOOP (2.5.2) YARN应用程序“中每个节点的文件?我通常知道YARN应用程序在HDFS上运行。我没有一个网站或文档来回答这些基本问题,所以我问。

EN

回答 3

Stack Overflow用户

发布于 2017-02-03 15:57:32

YARN应用程序在YARN中运行(或者至少请求内存空间),而不是HDFS。

HDFS只是用于文件存储的文件系统。您可以使用许多工具进行读写,例如Hadoop CLI、MapReduce、Apache Spark等。

例如,命令行界面就是hadoop fs -put /local-file hdfs://remote/file

这些应用程序是否由YARN管理,与HDFS文件的访问方式无关。

HDFS不需要纱线。它是完全独立的,用于memory Resource N协商器(它在名称中)。无论YARN容器运行在哪个节点上,都可以是Hadoop环境中的HDFS datanode,但这并不总是正确的-这只是一个很好的设计,因为数据在HDFS术语中是NODE_LOCAL,所以不需要在集群中移动数据。

票数 1
EN

Stack Overflow用户

发布于 2017-02-03 16:03:45

在基于java或流、Spark等map-reduce动作中,所有HDFS都可由YARN运行程序作为本机文件存储访问。因此,就像您的本地文件存储一样,只需使用常用的文件读取命令读取存储的数据。例如,在R流中:

代码语言:javascript
复制
path1 <- paste0("hadoop fs -getmerge /apps/hive/warehouse/",hive_db,".db/dsp/mdse_dept_ref_i=",dept,"/mdse_clas_ref_i=",clas,
                " dspD",dept,"C",clas,".txt")
system(command = path1)
filename <- paste0("ItemSlsD",dept,"C",clas,"SC",sbcl,".txt")
item_sls <- data.table(read.table(filename,sep="\001"))

这里我只是使用hadoop fs -getmerge读取HDFS文件夹,然后将其粘贴到一个文件中。然后将该文件放入R中的data.table数据结构中。同样,您可以使用python中的subprocess包发出HDFS命令,并将结果存储在pandas中。

票数 0
EN

Stack Overflow用户

发布于 2017-02-03 16:17:51

阅读HDFS Users Guide。有许多像libhdfs这样的客户端库,使用来自Jaav的FileSystem API,你可以使用WebHDFS Rest API,fork to shell和do commands。如果您的'YARN应用程序‘是一个M/R应用程序,那么所有这些都已由M/R处理,您只需使用给定的输入即可。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42019330

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档