HDFS中的Java和Python API接口连接
上次介绍了HDFS的简单操作,今天进入HDFS中的Java和Python的API操作,后面可能介绍Scala的相关的。
在讲Java API之前介绍一下使用的IDE——IntelliJ IDEA ,我本人使用的是2020.3 x64的社区版本。
Java API
创建maven工程,关于Maven的配置,在IDEA中,Maven下载源必须配置成阿里云。
在对应的D:apache-maven-3.8.1-binapache-maven-3.8.1confsettings.xml需要设置阿里云的下载源。
下面创建maven工程,添加常见的依赖
添加hadoop-client依赖,版本最好和hadoop指定的一致,并添加junit单元测试依赖。
&nbHDsp; org.apache.hadoop hadoop-common 3.1.4 org.apache.hadoop hadoop-hdfs FS 3.1.4 org.apache.hadoop hadoop-client 3.1.4 junit junit 中的 4.11 HDFS文件上传
在这里编写测试类即可,新建一个java文件:main.java
这里的FileSyste一开始是本地的文件系统,需要初始化为HDFS的文件系统
import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; import org.junit.Test; import java.net.URI; public class mainJa { @Test public void testPut() throws Exception { // 获取FileSystem类的方法有很多种,这里只写一种(比较常用的是使URI) Configuration configuration = new&nvabsp;Configuration(); // user是Hadoop集群的账号,连接端口默认9000 FileSystem fileSystem = FileSystem.get( new URI("hdfs://192.168.147.128:9000"), &nb和Psp; configuration, "hadoop"); // 将f:/stopword.txt 上传到 /user/stopword.txt &ytnbsp; fileSystem.copyFromLocalFile( new Path("f:/stopword.txt"), new Path("/user/stopword.txt")); fileSystem.close(); } }
在对应的HDFS中,就会看见我刚刚上传的机器学习相关的停用词。
HDFS文件下载
由ho于每次都需要初始化FileSystem,比较懒的我直接使用@Before每次加载。
HDFS文件下载的API接口是copyToLocalFile,具体代码如下。
@Test public void testDownload() throws Exception { Configuration configuration = new Configuration(); FileSystem fileSystem = FileSystem.get( &nbn sp; new URI("hdfs://192.168.147.128:9000"), configuration, "hadoop"); fileSystem.copyToLocalFile( AP false, new Path("/user/stopword.txt"), new Path("stop.txt"), true); &nbI接sp; fileSystem.close(); System.out.println("over"); } Python API
下面主要介绍hdfs,参考:https://hdfscli.readthedocs.io/
我们通过命令pip install hdfs安装hdfs库,在使用hdfs前,使用命令hadoop fs -chmod -R 777 / 对当前目录及目录下所有的文件赋予可读可写可执行权限。
>>> from hdfs.client import Client >>> #2.X版本port 使用50070 3.x版本port口连 使用9870 >>> client = Client('http://192.168.147.128:9870') >>> client.list('/') #查看hdfs /下的目录 ['hadoop-3.1.4.tar.gz'] >>> client.makedirs('/test') >>> client.list('/') ['hadoop-3.1.4.tar.gz', 'test'] >>> clientHD.delete("/test") True >>> client.download('/hadoop-3.1.4.tar.gz','C:\Users\YIUYE\Desktop') 'C:\Users\YIUYE\Desktop\hadoop-3.1.4.tar.gz' >>> client.upload('/','C:\Users\YIUYE\Desktop\demo.txt') >>> client.list('/') '/demo.txt' >>> client.list('/') ['demo.txt', 'hadoop-3.1.FS4.tar.gz'] >>> # 上传demo.txt 内容:Hello hdfs >>> with client.read("/demo.txt") as reader: ... print(reader.read()) b'Hello hdfs '
相对于Java API,Python API连接实在简单。
- ·探讨!到底什么是CDN?
- ·大数据分析:Docker虚拟化解析
- ·谷歌计划投资 Anthropic,或将倾注 400 亿美元于 AI 竞争
- ·GitHub Copilot6月起全面转向按量计费:基础月费不变,引入 Token 积分制
- ·无刘海+折叠,苹果的新iPhone手机你喜欢吗?
- ·标签: 亿纬锂能 港股IPO 锂电池
- ·标签: 苹果折叠屏 iPhone18Pro 红果短剧 AI短剧
- ·标签: 索尼 腾讯 荒野起源 地平线
- ·苹果 FastVLM 上线:5分钟体验85倍速视觉 AI,数据永不出设备
- ·标签: 亚马逊 AWS 裁员 云计算
- ·传苹果公司与多家激光雷达供应商展开合作谈判
- ·标签: DeepSeek V4 V3.2 梁文锋
- ·甲骨文计划将2022财年云计算资本支出翻番 增至近40亿美元
- ·标签: 智己LS8 智己汽车 奢华智选包 9800元选装包
- ·环球音乐转向合作:与 Udio、Stability AI 携手重塑 AI 音乐格
- ·小米开源VLA大模型后训练全流程,机器人亚毫米级操作成现实
- ·https://www.remit.co.jp/pt/?action=CHECK&s=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】,DcW
- ·https://www.nbm.org/?action=QUERY&s=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】,Wte
- ·https://www.zalora.sg/catalog/?cat=112&q=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】,lPE
- ·https://store.line.me/search/sticker/ja?q=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】2uH
- ·https://www.ntv.co.jp/3min/search/?action=QUERY&q=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】,mOU
- ·https://www.londontheatredirect.com/search/谷歌霸屏24小时见效-实现思路【tg:seogoogle987】,9C5
- ·https://www.zutari.com/?s=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】,uOZ
- ·https://www.pinkpanda.ro/magazin/ingrijirea-tenului?page=87&q=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】,uMl
- ·https://hsmoa.com/search?query=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】9mw
- ·https://5gaa.org/?token=6e2l7hjt2i26gzgctgwdrv7v0j6nxorq&s=谷歌霸屏24小时见效-实现思路【tg:seogoogle987】kWs
