文件系统位于服务器,如何访问hadoop文件系统上的文件,该文件系统位于与本地计算机不同的服务器上?...

我有一台本地计算机(local_user@local_machine)。hadoop文件系统位于不同的服务器(some_user@another_server)上。hadoop服务器中的一个用户名为target_user。如何从local_user@local_machine访问target_user中的文件?更准确地说,假设在some_user@another_server上的HDFS中存在一个文件/user/target_user/test.txt。从local_user@local_machine访问/user/target_user/test.txt时,我应该使用什么正确的文件路径?在

{hdi}本身可以访问文件。但是我无法使用我编写的从HDFS读写的python脚本从本地机器访问文件(需要3个参数-本地文件路径、远程文件路径和读或写),很可能是因为我没有给出正确的路径。在

我试过以下方法,但都不管用:

$ #local_user@local_machine

$ python3 rw_hdfs.py ./to_local_test.txt /user/target_user/test.txt read

$ python3 rw_hdfs.py ./to_local_test.txt some_user@another_server/user/target_user/test.txt read

所有这些都给出了完全相同的错误:Traceback (most recent call last):

File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 377, in _make_request

httplib_response = conn.getresponse(buffering=True)

TypeError: getresponse() got an unexpected keyword argument 'buffering'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 560, in urlopen

body=body, headers=headers)

File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 379, in _make_request

httplib_response = conn.getresponse()

File "/usr/lib/python3.5/http/client.py", line 1197, in getresponse

response.begin()

File "/usr/lib/python3.5/http/client.py", line 297, in begin

version, status, reason = self._read_status()

File "/usr/lib/python3.5/http/client.py", line 279, in _read_status

raise BadStatusLine(line)

http.client.BadStatusLine:

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "/usr/lib/python3/dist-packages/requests/adapters.py", line 376, in send

timeout=timeout

File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 610, in urlopen

_stacktrace=sys.exc_info()[2])

File "/usr/lib/python3/dist-packages/urllib3/util/retry.py", line 247, in increment

raise six.reraise(type(error), error, _stacktrace)

File "/usr/lib/python3/dist-packages/six.py", line 685, in reraise

raise value.with_traceback(tb)

File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 560, in urlopen

body=body, headers=headers)

File "/usr/lib/python3/dist-packages/urllib3/connectionpool.py", line 379, in _make_request

httplib_response = conn.getresponse()

File "/usr/lib/python3.5/http/client.py", line 1197, in getresponse

response.begin()

File "/usr/lib/python3.5/http/client.py", line 297, in begin

version, status, reason = self._read_status()

File "/usr/lib/python3.5/http/client.py", line 279, in _read_status

raise BadStatusLine(line)

requests.packages.urllib3.exceptions.ProtocolError: ('Connection aborted.', BadStatusLine('\x15\x03\x03\x00\x02\x02\n',))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):

File "python_hdfs.py", line 63, in

status, name, nnaddress= check_node_status(node)

File "python_hdfs.py", line 18, in check_node_status

request = requests.get("%s/jmx?qry=Hadoop:service=NameNode,name=NameNodeStatus"%name,verify=False).json()

File "/usr/lib/python3/dist-packages/requests/api.py", line 67, in get

return request('get', url, params=params, **kwargs)

File "/usr/lib/python3/dist-packages/requests/api.py", line 53, in request

return session.request(method=method, url=url, **kwargs)

File "/usr/lib/python3/dist-packages/requests/sessions.py", line 468, in request

resp = self.send(prep, **send_kwargs)

File "/usr/lib/python3/dist-packages/requests/sessions.py", line 576, in send

r = adapter.send(request, **kwargs)

File "/usr/lib/python3/dist-packages/requests/adapters.py", line 426, in send

raise ConnectionError(err, request=request)

requests.exceptions.ConnectionError: ('Connection aborted.', BadStatusLine('\x15\x03\x03\x00\x02\x02\n',))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值