热点
精准点评纠偏,逻辑框架助力创业高效闭环,reasoning_content:我们要求以技术支持工程师的口吻,写一个与技术、科技相关,关于[精准点评纠偏,逻辑框架助力,创业构建高效闭环]的标题需要简短精炼,30字以内直接输出标题nn可以想到:精准点评纠偏,逻辑框架助力,创业构建高效闭环关键词:精准、纠偏、逻辑框架、高效闭环作为技术支持工程师,可以强调技术工具、系统优化、逻辑梳理等例如:精准纠偏技术闭环,逻辑框架驱动创业高效 或者 技术支持:精准点评纠偏,逻辑框架构建高效闭环 但需要更简洁nn考虑:精准点评纠偏,逻辑框架助力,创业高效闭环但标题要一句话或者:技术赋能:精准纠偏+逻辑框架=创业高效闭环 但字数可能超nn尝试:精准纠偏,逻辑框架,创业高效闭环技术支持太生硬nn更符合技术工程师口吻:用技术支撑、系统优化等比如:精准纠偏技术逻辑,构建创业高效闭环或者:逻辑框架精准纠偏,技术支持创业闭环需要控制在30字以内,数一下nn精准纠偏技术逻辑,构建创业高效闭环 共14字,可以但缺了点评?原要求有精准点评纠偏,所以最好包含点评?但点评在技术语境中可能指代码审查或系统反馈可以改为:精准点评纠偏,逻辑框架构建创业高效闭环 共16字,但缺少助力动词也可以:精准点评纠偏,逻辑框架助力创业高效闭环 共18字或者更紧凑:精准纠偏+逻辑框架=创业高效闭环(技术支撑) 但括号可能不好nn直接输出:精准点评纠偏,逻辑框架助力创业高效闭环 19字,符合要求但作为标题,可以更科技感一点比如:技术精准纠偏,逻辑框架构建创业闭环 14字或者:精准纠偏技术赋能,逻辑框架闭环创业 14字nn考虑到技术支持工程师的口吻,可以加技术二字最终决定:精准纠偏技术逻辑,构建创业高效闭环 14字,简洁有力或者精准点评纠偏技术,逻辑框架助力闭环 14字nn我选择:精准点评纠偏,逻辑框架助力创业高效闭环 这是最直接的,也包含了所有关键词但19字,在30字以内,没问题
28 8 月 2026, 周五

上次介绍了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-bin\apache-maven-3.8.1\conf\settings.xml需要设置阿里云的下载源。

 

下面创建maven工程,添加常见的依赖

 

 

 

添加hadoop-client依赖,版本最好和hadoop指定的一致,并添加junit单元测试依赖。

 

 

<dependencies> 

  <dependency> 

        <groupId>org.apache.hadoop</groupId> 

        <artifactId>hadoop-common</artifactId> 

        <version>3.1.4</version> 

  </dependency> 

  <dependency> 

        <groupId>org.apache.hadoop</groupId> 

        <artifactId>hadoop-hdfs</artifactId> 

        <version>3.1.4</version> 

  </dependency> 

  <dependency> 

      <groupId>org.apache.hadoop</groupId> 

      <artifactId>hadoop-client</artifactId> 

      <version>3.1.4</version> 

  </dependency> 

  <dependency> 

      <groupId>junit</groupId> 

      <artifactId>junit</artifactId> 

      <version>4.11</version> 

  </dependency> 

</dependencies> 

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 main { 

 

    @Test 

    public void testPut() throws Exception { 

        //   获取FileSystem类的方法有很多种,这里只写一种(比较常用的是使URI) 

        Configuration configuration = new Configuration(); 

        // user是Hadoop集群的账号,连接端口默认9000 

        FileSystem fileSystem = FileSystem.get( 

                new URI("hdfs://192.168.147.128:9000"), 

                configuration, 

                "hadoop"); 

        // 将f:/stopword.txt 上传到 /user/stopword.txt 

        fileSystem.copyFromLocalFile( 

                new Path("f:/stopword.txt"), new Path("/user/stopword.txt")); 

        fileSystem.close(); 

    } 

在对应的HDFS中,就会看见我刚刚上传的机器学习相关的停用词。

 

 

HDFS文件下载

由于每次都需要初始化FileSystem,比较懒的我直接使用@Before每次加载。

 

HDFS文件下载的API接口是copyToLocalFile,具体代码如下。

 

@Test 

public void testDownload() throws Exception { 

    Configuration configuration = new Configuration(); 

    FileSystem fileSystem = FileSystem.get( 

            new URI("hdfs://192.168.147.128:9000"), 

            configuration, 

            "hadoop"); 

    fileSystem.copyToLocalFile( 

            false, 

            new Path("/user/stopword.txt"), 

            new Path("stop.txt"), 

            true); 

    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'] 

>>> 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', 'hadoop-3.1.4.tar.gz'] 

>>> # 上传demo.txt 内容:Hello \n hdfs 

>>> with client.read("/demo.txt") as reader: 

…          print(reader.read()) 

b'Hello \r\nhdfs\r\n' 

相对于Java API,Python API连接实在简单。

dawei

【声明】:邵阳站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

您错过了

精准点评纠偏,逻辑框架助力创业高效闭环,reasoning_content:我们要求以技术支持工程师的口吻,写一个与技术、科技相关,关于[精准点评纠偏,逻辑框架助力,创业构建高效闭环]的标题需要简短精炼,30字以内直接输出标题nn可以想到:精准点评纠偏,逻辑框架助力,创业构建高效闭环关键词:精准、纠偏、逻辑框架、高效闭环作为技术支持工程师,可以强调技术工具、系统优化、逻辑梳理等例如:精准纠偏技术闭环,逻辑框架驱动创业高效 或者 技术支持:精准点评纠偏,逻辑框架构建高效闭环 但需要更简洁nn考虑:精准点评纠偏,逻辑框架助力,创业高效闭环但标题要一句话或者:技术赋能:精准纠偏+逻辑框架=创业高效闭环 但字数可能超nn尝试:精准纠偏,逻辑框架,创业高效闭环技术支持太生硬nn更符合技术工程师口吻:用技术支撑、系统优化等比如:精准纠偏技术逻辑,构建创业高效闭环或者:逻辑框架精准纠偏,技术支持创业闭环需要控制在30字以内,数一下nn精准纠偏技术逻辑,构建创业高效闭环 共14字,可以但缺了点评?原要求有精准点评纠偏,所以最好包含点评?但点评在技术语境中可能指代码审查或系统反馈可以改为:精准点评纠偏,逻辑框架构建创业高效闭环 共16字,但缺少助力动词也可以:精准点评纠偏,逻辑框架助力创业高效闭环 共18字或者更紧凑:精准纠偏+逻辑框架=创业高效闭环(技术支撑) 但括号可能不好nn直接输出:精准点评纠偏,逻辑框架助力创业高效闭环 19字,符合要求但作为标题,可以更科技感一点比如:技术精准纠偏,逻辑框架构建创业闭环 14字或者:精准纠偏技术赋能,逻辑框架闭环创业 14字nn考虑到技术支持工程师的口吻,可以加技术二字最终决定:精准纠偏技术逻辑,构建创业高效闭环 14字,简洁有力或者精准点评纠偏技术,逻辑框架助力闭环 14字nn我选择:精准点评纠偏,逻辑框架助力创业高效闭环 这是最直接的,也包含了所有关键词但19字,在30字以内,没问题