使用python来访问Hadoop HDFS存储实现文件的操作

列写hdfs路径下文件列表的python方法 列写hdfs路径下文件列表的python方法 有时候我们需要在python端获取hdfs路径下文件列表,所以定义了一个python方法: from pyspark import SparkContext from pyspark.sql import SparkSession, DataFrame spark = SparkSession.builder \ .enableHiveSupport() \ .getOrCreate() class HDFSlisf: 阅读详情

1.安装pyhdfs

pip install pyhdfs

2.这个是pyhdfs的库

1
2
3
4
5
6
7
import pyhdfs
fs = pyhdfs.connect("192.168.1.1", 9000)
pyhdfs.get(fs, "/rui/111", "/var/111")
f = pyhdfs.open(fs, "/test/xxx", "w")
pyhdfs.write(fs, f, "fuck\0gfw\n")
pyhdfs.close(fs, f)
pyhdfs.disconnect(fs)

pyhdfs的安装过程很吐血

1
2
3
4
5
6
7
svn checkout http://libpyhdfs.googlecode.com/svn/trunk/ libpyhdfs
cd libpyhdfs
cp /usr/lib/hadoop-0.20/hadoop-core-0.20.2-cdh3u0.jar lib/hadoop-0.20.1-core.jar
cp /usr/lib/hadoop-0.20/lib/commons-logging-1.0.4.jar lib/
cp /usr/lib/libhdfs.so.0 lib/
ln –s lib/libhdfs.so.0 lib/libhdfs.so
python setup.py install --prefix="/usr/local"

还有就是把 selinux也给关了    不然会出现莫名的问题

如果出现

/usr/lib/jvm/java-6-sun/include/jni.h:27:20: error: jni_md.h: No such file or directory

搜下find / -name jni.h

然后修改#include "jni_md.h"   为  #include "linux/jni_md.h"

这个是用pydoop的库

1
2
3
4
import pydoop.hdfs as hdfs
with hdfs.open('/user/myuser/filename') as f:
    for line in f:
        print(line)

pyhdfs是对libhdfs的python封装库. 它提供了一些常用方法来处理HDFS上的文件和目录, 比如读写文件, 枚举目录文件, 显示HDFS可用空间, 显示文件的复制块数等。

libhdfs 是HDFS的底层C函数库, 由hadoop官方提供, pyhdfs使用swig技术, 对libhdfs提供的绝大多数函数进行了封装, 目的是提供更简单的调用方式.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
如何连接hadoop集群?
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    fs.disconnect()
如何获取当前工作目录?
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    print fs.getWorkingDirectory()
    fs.disconnect()
如何更改当前工作目录?
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    print fs.setWorkingDirectory("/user/ns-lsp/logs")
    fs.disconnect()
如果目录不存在setWorkingDirectory()返回-1,如果执行成功,返回0
如果目录不存在setWorkingDirectory()返回-1,如果执行成功,返回0
如何判断某个文件/目录是否存在?
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    print fs.pathExists("/user/ns-lsp/logs")
    fs.disconnect()
文件/目录存在,返回0,如果不存在,返回-1
如何创建一个目录?
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    print fs.createDirectory("/user/ns-lsp/logs/cjj")
    fs.disconnect()
如果目录已经存在,则返回-1,如果目录创建成功,返回0
如何获得当前默认块大小?
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    print fs.getDefaultBlockSize()
    fs.disconnect()
如何获得当期目录下的文件/目录?
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    print fs.listDirectory("/user/ns-lsp/logs")
    fs.disconnect()
如何移动一个文件/目录?
同一HDFS内移动文件:
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    print fs.move("/user/ns-lsp/logs/cjj","/user/ns-lsp/logs/cjj_new")
    fs.disconnect()
不同HDFS之间移动文件:
    target_fs = hadoop.HadoopDFS("username","password","ugi",64310)
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    print fs.move("/user/ns-lsp/logs/cjj","/user/ns-lsp/logs/cjj_new",target_fs)
    fs.disconnect()
如何删除一个文件/目录?
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    print fs.delete("/user/ns-lsp/logs/cjj_new")
    fs.disconnect()
如何重命名一个文件/目录?
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    print fs.rename("/user/ns-lsp/logs/cjj","/user/ns-lsp/logs/cjj1")
    fs.disconnect()
如何修改一个文件/目录的权限?
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    print fs.chmod("/user/ns-lsp/logs/cjj",7)
    fs.disconnect()
如何文件块所在的服务器名?
有时我们需要查找某些文件块所在的服务器名是什么,可以如下使用:
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    print fs.getHosts("/user/ns-lsp/logs/cjj/a",0,1)
    fs.disconnect()
返回包含服务器名的列表.
   $ python gethosts.py
   ['xxxx']
如何获取一个文件/目录的信息?
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    pathinfo = fs.getPathInfo("/user/ns-lsp/logs/cjj")
    fs.disconnect()
getPathInfo()返回一个hdfsFileInfo类。
如何指定文件的备份数?
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    print fs.setReplication("/user/ns-lsp/logs/cjj/a",3)
    fs.disconnect()
如何打开一个文件,并读取数据?
要操作文件,需要创建一个HadoopFile对象,并利用read()方法读取数据.
    fs = hadoop.HadoopDFS("username","password","ugi",64310)
    fh = hadoop.HadoopFile(fs,'/user/ns-lsp/logs/cjj/a')
    print fh.read()
    fh.close()
    fs.disconnect()


python使用hdfs库操作Hadoop的HDFS 此次使用python的hdfs库操作HDFS,首相安装该库:pip install hdfs 其次,要保证HDFS可用,如下图就代表可用,当然你列出的文件和我的不同 老规矩,先来看看它这个库的大概结构,方便以后调用。先 import hdfs ,然后跟进hdfs库,查看定义它的地方。如下,既然是连接的库,那么这个client就是连接的客户端了,这里出现了三个client,它们有什么不同 首先是Client类,转到定义处之后,可以发现它里面有很多操作,基本的增删查改都有了,看它的 __init__ 方法, 阅读详情

相关推荐

HDFS常用命令及Python连接HDFS操作

HDFS(Hadoop Distributed File System,Hadoop分布式文件系统)是Hadoop集群中的一部分,用于存储大量数据,并运行在商用硬件集群上。

weixin_44458771的博客 3143

python之jsonpath处理json数据

jsonpath处理json数据

qq_44690947的博客 5460

Python与Hadoop HDFS交互:数据操作实战指南

Hadoop是一个由Apache基金会开发的开源框架,旨在从单一服务器扩展到数千台机器,每台机器提供本地计算和存储。其核心是Hadoop Distributed File System (HDFS),一个设计用来跨多台计算机存储大量数据并提供高吞吐量访问的分布式文件系统。HDFS通过其高容错性,成为了大数据处理不可或缺的组件。随着数据量的爆炸性增长,传统的数据分析工具和编程语言逐渐暴露出性能上的不足。

weixin_42668301的博客 1156

Python 操作HDFS

Python 操作HDFS模块python HDFS模块实例化客户端读写文件读取文件至内存结合以下write() 方法将文件写入HDFSKerberos认证访问列出目录创建目录(如要写入,建议使用write方法,没有会自动创建)删除检查文件是否存在获取HDFS上文件或者目录(可用于判断是否存在)移动文件或文件夹参考文献 python HDFS模块 安装:pip install hdfs 介绍:该模块用于python与HDFS的namenode建立链接从而获取到datanode进行操作 链接方式:webHDF

圣贤的博客 5328

海思Hi3061M MCU:为高速吹风筒市场注入智能动力

此外,海思还提供了丰富的软件开发工具和生态环境组件,帮助开发者快速实现复杂功能。高速吹风筒因其高效的风力和快速的干燥效果,近年来在市场上越来越受欢迎。然而,传统的高速吹风筒在性能、噪音和使用寿命等方面仍有改进的空间。凭借其高性能、低功耗、低噪声和易用的开发工具,为高速吹风筒市场带来了全新的解决方案。这不仅提高了用户的使用体验,还延长了电机的使用寿命。这不仅减少了电机的电磁噪声,还提高了电机的运行效率。还支持风机顺逆风启动适配多种电阻范围的电机,进一步提高了吹风筒的适用性和灵活性。

2401_83448585的博客 2015

如何让C++程序生成dump文件?生成dump文件的方式有哪些?如何使用Windbg分析dump文件?

本文详细介绍了如何让C++程序生成dump文件、生成dump文件的多种方式以及如何使用Windbg分析dump文件,并给出了对应的实战分析案例,有一定的实战参考价值。

dvlinker的技术专栏 5万+

hdfs基本命令与python编程

hdfs基本命令与python编程 为了使用Hadoop进行大量数据的分析,需要使用hdfs将文件导入进行分布式的存储,加速分析的速度。因此,需要首先了解hdfs的基本用法,了解如何导入本地数据,为后续的数据分析打下基础。 这篇博客介绍hdfs的基本命令、基于python批量导入数据的方法等。 【注意】所有的命令都需要首先切换到hdfs用户,使用下面的命令 sudo su #切换到ro...

q1370992706的博客 843

2026年华为OD机试真题 新系统【点亮战争迷雾】

华为OD机试真题 8月18号 新系统【点亮战争迷雾】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD机试真题【点亮战争迷雾】多语言题解。

qq_45776114的博客 491

python基础操作以及hdfs操作

目录 前言 基础操作 hdfs操作 总结 一、前言 作为一个全栈工程师,必须要熟练掌握各种语言。。。HelloWorld。最近就被“逼着”走向了python开发之路,大体实现的功能是写一个通用类库将服务器本地存储的文件进行简单清洗后转储到HDFS中,所以基本上python的相关知识都涉及到了,这里对一些基础操作以及hdfs操作做一总结,以备查阅。 二、基础操作 2.1 字符串操作...

weixin_30904593的博客 425

JAX/JAXlib GPU 加速版本安装教程(CUDA)

本文介绍了在Windows WSL2+Ubuntu22.04环境下配置JAX/JAXlib GPU加速版本的详细步骤。使用RTX 4060显卡,安装CUDA 12.4和cuDNN 8.9.7驱动,通过Miniconda创建Python 3.9虚拟环境。具体步骤包括:安装Miniconda、配置CUDA环境变量、安装cuDNN驱动、下载并安装JAX/JAXlib。最后通过测试代码验证GPU加速功能,成功检测到GPU并完成矩阵运算。整个过程配有详细命令和截图说明,适合需要搭建JAX GPU开发环境的用户参考。

猿小白的博客 624

Ollama教程——模型:如何将模型高效导入到ollama框架

本教程详细介绍了如何将GGUF、PyTorch和Safetensors格式的模型导入到ollama框架中。通过一系列步骤,从环境准备、模型转换和量化,到最终的模型创建和运行,我们为开发者提供了一个清晰的指南。此外,我们还探讨了如何发布模型到ollama平台,使得模型可以被更广泛地分享和应用。ollama框架提供了一个灵活、高效的解决方案,帮助开发者在各种环境中部署和运行机器学习模型。无论您是想将现有模型快速部署到生产环境,还是希望探索新的模型架构,ollama都能为您提供所需的工具和资源。

walkskyer的博客 1万+

python文件hadoop_使用python来访问Hadoop HDFS存储实现文件的操作

在调试环境下,咱们用hadoop提供的shell接口测试增加删除查看,但是不利于复杂的逻辑编程查看文件内容用python访问hdfs是个很头疼的事情。。。。这个是pyhdfs的库1 import pyhdfs2 fs = pyhdfs.connect("192.168.1.1", 9000)3 pyhdfs.get(fs, "/rui/111", "/var/111")4 f = pyhdfs.o...

weixin_39890452的博客 561

【阿里AgentScope框架】多框架组合:AgentScope加LangChain,让你的开发效率直线上升

本文以一个例子来看下AgentScope框架和LangChain如何实现融合使用,真的超级简单,一看就懂。这是一种思路,为多种框架的融合使用提供借鉴。

同学小张的博客 3469

Python 使用Hadoop 3 之HDFS 总结

调用文件系统(HDFS)Shell命令应使用 bin/hadoop fs 的形式。所有的的FS shell命令使用URI路径作为参数。URI格式是。对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定,就会使用配置中指定的默认scheme。

zhouzhiwengang的专栏 4494

【WRF安装(2025)】服务器移植 WRF 安装环境

【WRF安装(2025)】服务器移植 WRF 安装环境

WW、forever的博客 104

深入剖析 Hive 中 CASE WHEN 与 IF 函数的性能差异:解锁高效数据处理的关键

CASE WHEN 函数堪称 Hive 中条件判断的多面手,它具备两种强大的语法形式,以应对各种复杂的业务逻辑。简单 CASE 表达式这种形式适用于对某一列的值进行直接的条件匹配。其语法如下:END例如,我们有一个记录学生成绩的表CASE scoreELSE 'D'搜索 CASE 表达式当业务逻辑需要更灵活的条件判断时,搜索 CASE 表达式便派上用场。它的语法为:CASEENDCASEELSE 'D'

2401_83088008的博客 1125

Hadoop学习-3-HDFS简介及Python操作HDFS

HDFS简介

DMF363的博客 1522

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

python hadoop教程_采用Python来访问Hadoop HSFS存储实现文件的操作

采用Python来访问Hadoop HSFS存储实现文件的操作2019-03-28 12:57|来源: 网络用python访问hdfs是个很头疼的事情。这个是pyhdfs的库import pyhdfsfs = pyhdfs.connect("192.168.1.1", 9000)pyhdfs.get(fs, "/rui/111", "/var/111")f = pyhdfs.open(fs, "/...

weixin_39619858的博客 346

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

python连接hadoop_采用Python来访问Hadoop HSFS存储实现文件的操作

用python访问hdfs是个很头疼的事情。这个是pyhdfs的库import pyhdfsfs = pyhdfs.connect("192.168.1.1", 9000)pyhdfs.get(fs, "/rui/111", "/var/111")f = pyhdfs.open(fs, "/test/xxx", "w")pyhdfs.write(fs, f, "fuck\0gfw\n")pyhdf...

weixin_39577422的博客 469

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Python 操作大数据使用 Hadoop

Hadoop 是一个用于分布式存储和处理大规模数据的开源框架。Hadoop 分布式文件系统(HDFS):HDFS 是 Hadoop 的文件系统,用于存储大规模数据。它将数据分为块,并将这些块分布在多个计算节点上,以实现高可用性和容错性。:MapReduce 是 Hadoop 的计算框架,用于并行处理和分析存储在 HDFS 上的数据。它将计算任务分成多个步骤,包括 Map 步骤和 Reduce 步骤。Python 提供了多种库和工具,用于连接、上传、下载和运行作业在 Hadoop 集群上。

涛哥聊Python 3750
上一篇: scrapy学习笔记
下一篇: python时间与时间戳的转换
唐僧不爱八戒
博客等级 码龄9年 158粉丝 84原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值