点击上方蓝色字体,关注我们

读完需 7 分钟

速读需 3 分钟

在了解了Hadoop的基本使用后,需要通过编程语言进一步操作。对于没有Java基础的运维人,Python如何操作hdfs也就成了我们优先去学习的。

基础配置

#1.安装mkvirtualenv -p python3.6 -a hadoop hadooppip install hdfs#2.配置vim ~/.hdfscli.cfg#全局默认配置[global]default.alias = dev#测试环境hadoop[dev.alias]url = http://dev.namenode:portuser = ann#生产环境hadoop[prod.alias]url = http://prod.namenode:portroot = /jobs/

命令行界面

1.上传、下载文件

# 命令帮助# hdfscli -hCommands:downloadinteractiveupload#1. 下载文件hdfscli download hadoop/input/anaconda-ks.cfg .#2. 上传文件hdfscli upload navicat121_mysql_cs_x64.tar.gz  /hadoop/input/#3. 重定向到文件hdfscli download hadoop/input/anaconda-ks.cfg - >> txt

交互模式

交互模式通过hdfs.client.Client进行实例化。

# hdfscliWelcome to the interactive HDFS python shell.The HDFS client is available as `CLIENT`.>>> CLIENT.list('/hadoop/input')['anaconda-ks.cfg', 'hadoop-2.7.2.tar.gz', 'navicat121_mysql_cs_x64.tar.gz']>>> CLIENT.status('/hadoop/input/hadoop-2.7.2.tar.gz'){'accessTime': 1604643646211, 'blockSize': 134217728, 'childrenNum': 0, 'fileId': 16389, 'group': 'supergroup', 'length': 212046774, 'modificationTime': 1603240571897, 'owner': 'root', 'pathSuffix': '', 'permission': '644', 'replication': 3, 'storagePolicy': 0, 'type': 'FILE'}>>> CLIENT.delete('/hadoop/input/anaconda-ks.cfg')True

python绑定

1.实例化

# 连接NameNodefrom hdfs import InsecureClientclient = InsecureClient('http://10.10.10.56:50070', user='root')# 读取开发环境的hadoop集群from hdfs import Configclient = Config().get_client('dev')

2.读写文件

#1.读文件# 判断路径是否存在if not client.content('/hadoop/input/test.py', strict=False) is None:    with client.read('/hadoop/input/test.py',encoding='utf-8', delimiter='\n') as reader:        for line in reader:            print(line)#2.写文件import jsondata = {    'name': 'jack',    'age': 20}json_to_str = json.dumps(data)client.write('/hadoop/input/data.json', data=json_to_str, encoding='utf-8') 

对于hdfs中路径不存在,会抛出一个HdfsError的异常,但是可以通过status()和content()自带参数strict=False来判断路径是否存在:

#/hadoop/in/test.py路径不存在print(client.content('/hadoop/in/test.py', strict=False))#打印输出结果None

3.上传下载文件

#1.上传文件client.upload('/hadoop/input', './test.py')#2.下载文件client.download('/hadoop/input/data.json', './data.json')

4.路径扩展

resolve()提供路径扩展功能,并允许使用特殊标记来标识路径。例如,它当前支持#LATEST标记,该标记可扩展到给定文件夹内的最后修改文件。

#1.输出绝对路径,根据参数自动补全绝对路径,但此路径不会检查是否存在print(client.resolve('hadoop/input'))print(client.resolve('input'))#打印输出结果/hadoop/input/input#2.#LATEST标记,定位文件内最后修改的文件print(client.resolve('hadoop/input/#LATEST'))#打印输出结果/hadoop/input/data1.json#3.实例,data1.json为新增文件print(client.resolve('hadoop/input/#LATEST'))with client.read('hadoop/input/#LATEST') as reader:        data = reader.read()    print(data)#打印输出结果/hadoop/input/data1.jsonb'{"name": "Sam", "age": 20}'

hadoop完全分布式部署

Prometheus+k8s之告警通知

grafana+alertmanager实现微信报警

滴滴夜莺:从监控告警系统向运维平台演化

kubedog:解决K8S在CI/CD中无法持续追踪问题

关注我们

hdfs user 连接_Python入门操作HDFS相关推荐

  1. java向hdfs提交命令_Java语言操作HDFS常用命令测试代码

    本文主要向大家介绍了Java语言操作HDFS常用命令测试代码,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. package com.yxc.hdfs; import org.apac ...

  2. python字符串换行连接_python入门 python字符串换行显示、字符串太长\连接多行

    #coding:utf-8 #/usr/bin/python """ 2018-11-03 dinghanhua 缩进 换行 """ &qu ...

  3. 通过java api操作hdfs(kerberos认证)

    参考代码如下 import java.net.URI; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs ...

  4. python操作hdfs_python 操作hdfs

    from hdfs.client importClient#关于python操作hdfs的API可以查看官网:#https://hdfscli.readthedocs.io/en/latest/api ...

  5. 在IDEA中创建maven项目编写java代码操作HDFS集群

    一.安装win10编译过的hadoop 1.将编译好的hadoop包放在非中文目录 2.配置HADOOP_HOME环境变量 3.将hadoop包的bin目录加到PATH环境变量中 二.在idea中创建 ...

  6. HDFS的shell和API操作

    1. HDFS的shell操作 hadoop version //查看版本 hadoop fs -appendToFile src(Linux中的文件) dest(hdfs目录下的文件) //追加 h ...

  7. 华为云大数据存储的冗余方式是三副本_大数据入门:HDFS数据副本存放策略

    大数据处理当中,数据储存始终是一个重要的环节,从现阶段的市场现状来说,以Hadoop为首的大数据技术框架,仍然占据主流地位,而Hadoop的HDFS,在数据存储方面,仍然得到重用.今天的大数据入门分享 ...

  8. hdfs user 连接_通过API访问HDFS

    通过API操作HDFS 今天的主要内容 HDFS获取文件系统 HDFS文件上传 HDFS文件下载 HDFS目录创建 HDFS文件夹删除 HDFS文件名更改 HDFS文件详情查看 定位文件读取 File ...

  9. 云小课 | MRS基础入门之HDFS组件介绍

    摘要:HDFS是MapReduce服务中的基础文件系统,全称为Hadoop的分布式文件系统(Hadoop Distributed File System),可支持实现大规模数据可靠的分布式读写. 本文 ...

最新文章

  1. vsftp锁定用户在家目录
  2. 无需服务器的个人博客 (2018.5.22更新)
  3. 【java的多态性】
  4. Java 客户端界面功能:停止当前操作
  5. 7.1 安装软件包的三种方法 7.2 rpm包介绍 7.3 rpm工具用法 7.4 yum工具用法 7.5 yum搭建本地仓库...
  6. c# 通过鼠标点击绘制多边形
  7. python判断相同,Python判断两个文件是否相同与两个文本进行相同项筛选的方法
  8. C语言,一种如此美丽的语言
  9. python/正则 从字符串中提取数字
  10. iPhone 13系列7款新机已通过EEC认证:或继续9月亮相
  11. 【LeetCode 148】链表的归并排序
  12. 为什么时间是60进制的啊? ? ?
  13. Python3入门机器学习经典算法与应用 第3章 numpy 聚合操作
  14. generator.xml mysql_generatorConfig-mysql.xml中连接数据库的正确书写方式。
  15. php解析视频_原创更新:快手短视频无水印直连解析下载PHP前端版
  16. namp常规扫描命令(超详细!推荐)
  17. Android 关于佳博和汉印蓝牙热敏打印机开发,androidstudio入门教程
  18. 二阶无源低通滤波器幅频特性曲线_低通无源滤波器设计-详细
  19. hadoop源码编译(从0到1一步步教你如何编译,适用于任何hadoop版本)
  20. 外卖行业现状分析_2020年中国外卖行业市场现状和发展趋势分析 外卖下沉趋势明显「组图」...

热门文章

  1. 把txt中的数据读出并保存到数组中
  2. vb6 datagrid表格垂直居中_Word文档中表格的定位方式
  3. Linux下1号进程的前世(kernel_init)今生(init进程)----Linux进程的管理与调度
  4. ActiveX(二)
  5. git checkout -b mybranch和git checkout mybranch
  6. 微信小程序日期选择器
  7. 获得本页面URL地址
  8. 在Leaflet地图上集成Echarts
  9. Mybatis返回值类型为Map时,空值给过滤掉了
  10. 微软Office Online服务安装部署及wopi代码实现--------Office Online服务器的安装