JupyterNotebook对接FusionInsight HDFS
JupyterNotebook对接FusionInsight HDFS
• 选用python的hdfs包HdfsCLI用作测试
• 因为此次使用webhdfs的http连接方式对接集群,首先先检查集群配置项是否符合要求:
若配置项只支持HTTPS,参考如下步骤修改
登录FusionInsight Manager页面,单击“集群 > 待操作集群的名称 > 服务 > HDFS > 配置 >全部配置”,在“搜索”框里搜索“dfs.http.policy”,然后勾选“HTTPANDHTTPS”,单击“保存”,单击“更多 > 重启”重启HDFS服务
• 登陆路径/opt/anaconda3/bin, 使用命令./pip install hdfs安装插件包
再使用./pip install hdfs[avro,dataframe,kerberos]安装额外工具包
安装完成之后会在bin目录下生成hdfscli的可执行文件
• 使用命令vi ~/.hdfscli.cfg编辑连接参数:
[global]
default.alias = dev
autoload.modules = hdfs.ext.kerberos
[dev.alias]
client = KerberosClient
url = http://172.16.4.122:25002
• 使用如下命令登陆集群客户端,并做kerberos认证
source /opt/125_651hdclient/hadoopclient/bigdata_env
kinit developuser
使用命令hdfscli登陆命令行终端
输入命令CLIENT.list('/')检查是否对接成功:
命令行测试成功
• 使用如下命令启动jupyter notebook
source /opt/hadoopclient/bigdata_env
kinit developuser
source ~/.bashrc.anaconda3
jupyter notebook --allow-root
• 使用如下代码进行hdfs对接
import hdfs
from hdfs.ext.kerberos import KerberosClient
client = KerberosClient('http://172.16.4.122:25002', root='/tmp')
print(client.list('/'))
• 继续使用如下代码往hdfs里写一个文件:
client.write('hello2.md', 'Hello, world!')
去hdfs对应路径检查文件是否写入成功:
• 继续使用如下代码从hdfs路径读取一个文件:
with client.read('iris.csv', encoding='utf-8') as reader:
for row in reader:
print(row)
- 点赞
- 收藏
- 关注作者
评论(0)