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 &中的nbsp; 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 maiJan { @Test public void testPut() throws Exception { // 获取FileSystem类的方法有很多种,这里只写一种(比较常用的是使URI) Configuration configuration = new&nbvasp;Configuration(); // user是Hadoop集群的账号,连接端口默认9000 FileSystem fileSystem = FileSystem.get( new URI("hdfs://192.168.147.128:9000"), &nbs和Pp; configuration, "hadoop"); // 将f:/stopword.txt 上传到 /user/stopword.txt &nytbsp; fileSystem.copyFromLocalFile( new Path("f:/stopword.txt"), new Path("/user/stopword.txt")); fileSystem.close(); } }
在对应的HDFS中,就会看见我刚刚上传的机器学习相关的停用词。
HDFSho文件下载
由于每次都需要初始化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( &APnbsp; 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'] >>> HD;client.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', 'FShadoop-3.1.4.tar.gz'] >>> # 上传demo.txt 内容:Hello hdfs >>> with client.read("/demo.txt") as reader: ... print(reader.read()) b'Hello hdfs '
相对于Java API,Python API连接实在简单。
(责任编辑:品牌资讯)
- 马斯克旗下 X 平台推出 AI 定制信息流功能,用户可自由选择话题
- 甲骨文公司开盘跌超4% 市值2256.24亿美元
- 华人女博士提出高效NAS算法:AutoML一次「训练」适配亿万硬件
- 阿里云向第三方泄露用户信息,美股阿里巴巴小幅下跌
- 开源多模态模型MiniCPM-V 4.5发布,8亿参数实现移动端AI部署
- 标签: AI
- GEO 实操指南:内容如何被“AI搜索”引用?
- Meta陷入史上最大AI训练数据侵权案!2396部影片非法使用,面临3.59亿美元天价索赔
- 为淘汰Cookie 谷歌又推出新的“隐私沙箱”技术Topics
- 腾讯云多款核心产品降价最高降幅40% 助力AIGC开发者
- 标签: 小红书 达尔文项目 Claude 董明珠
- 苹果已预定台积电3纳米芯片,将用于iPad、Mac
- 堪比LSTM,Transformer引燃机器学习圈:是万能的
- 标签: 理想汽车 张骁 i8 宝马MINI
- 全球首个真实物理环境多任务基准 RoboChallenge 发布
- AI分析数据平台Databricks 号称估值已飙升至 1000 亿美元
- 揭开智能指针 Box 的神秘面纱
- 银河系中间亮的是什么
- 标签: 奇安信 网络安全 688561 2025业绩
- 标签: 医脉通 人工智能+医学研究 北京市自然科学基金 朝阳创新联合基金
- 企业微信邮箱重磅更新:AI一键帮写邮件 views+
- 基于Nutanix云平台的Dell PowerFlex上市 views+
- 百度文心新模型ERNIE-4.5-21B-A3B-Thinking强势登顶Hugging Face榜首 views+
- 标签: 拉勾网 许单单 北京拉勾网络 互联网招聘 views+
- 让AI精准识别盗版,脸书开源数据增强库:提供100多种增强方式 views+
- 标签: 长安启源A07 济广高速10·2事故 IACC辅助驾驶 L2级自动驾驶 views+
- 标签: 美团 叮咚买菜 小象超市 即时零售 views+
- 九种深度学习算法简介 views+
- 多云安全要以架构和治理为重点 views+
- 为淘汰Cookie 谷歌又推出新的“隐私沙箱”技术Topics views+
