首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用蛇咬伤获取和显示文件

无法使用蛇咬伤获取和显示文件
EN

Stack Overflow用户
提问于 2017-01-04 13:52:40
回答 1查看 643关注 0票数 0

我在试snakebite。我启动了以下客户端:

代码语言:javascript
复制
from snakebite.client import Client
client = Client("my.host.com", 8020, effective_user='datascientist')

首先,我试图列出用户目录:

代码语言:javascript
复制
for x in client.ls(['/user/datascientist']):
    print x

它工作得很好,并打印了几本字典;目录中的每一项都有一本。其中一项是我想要看到的文件foobar.txt。为此,我认为我应该使用Client.cat

代码语言:javascript
复制
for cat in client.cat(['/user/datascientist/da-foobar.txt',]):
    print(cat)
    for item in cat:
        print(item)

然而,这是行不通的。我收到以下错误消息:

代码语言:javascript
复制
ConnectionFailureException: Failure to connect to data node at (10.XXX.YYY.ZZZ:50010)

我做错什么了?

顺便说一句:使用来自PyWebHdfsClientpywebhdfs.webhdfs,我通过启动一个具有相同地址但端口50070的客户机,成功地看到了这个文件。我不知道这是否相关。

编辑1:我也尝试使用snakebite.client.Client.text并得到了相同的错误。我想这并不奇怪。

顺便说一下,文件的内容是my file is this\ntest file

EN

回答 1

Stack Overflow用户

发布于 2017-01-04 15:26:12

我找到了解决办法。清单操作似乎可以单独在名称节点上完成。相反,打印文本文件需要访问数据节点!通过实例化客户机,如下所示

代码语言:javascript
复制
client = Client("stage-gap-namenode-2.srv.glispa.com", 8020, effective_user='datascientist', 
                use_datanode_hostname=True)

cat操作的工作方式不是使用内部IP,而是使用主机名。我总结了一个极小例子

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

https://stackoverflow.com/questions/41465459

复制
相关文章

相似问题

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