首页 > 其他分享 >hadoop:通过Configuration读取hdfs

hadoop:通过Configuration读取hdfs

时间:2023-12-15 12:32:00浏览次数:30  
标签:hdfs null String hadoop IOUtils apache import Configuration


package tju;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;

public class ReadFile2 {

    private static FileSystem getFileSystem() throws IOException {
        Configuration configuration = new Configuration();
        configuration.set("fs.defaultFS", "hdfs://xx.xx.xx.xx:9000/");
        FileSystem fileSystem = FileSystem.get(configuration);
        return fileSystem;
    }

    private static void readFileFromHdfs(String filePath){
        FSDataInputStream fsDataInputStream = null;
        try {
            Path path = new Path(filePath);
            fsDataInputStream = getFileSystem().open(path);
            IOUtils.copyBytes(fsDataInputStream, System.out, 4096, false);
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if(fsDataInputStream != null){
                IOUtils.closeStream(fsDataInputStream);
            }
        }

    }

    private static void writeFileToHdfs(String localPath, String hdfsPath){
        FSDataOutputStream outputStream = null;
        FileInputStream fileInputStream = null;

        try {
            Path path = new Path(hdfsPath);
            outputStream =getFileSystem().create(path);
            fileInputStream = new FileInputStream(new File(localPath));
            IOUtils.copyBytes(fileInputStream, outputStream,4096, false);
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if(fileInputStream != null){
                IOUtils.closeStream(fileInputStream);
            }
            if(outputStream != null){
                IOUtils.closeStream(outputStream);
            }
        }

    }

    public static void main(String[] args) {


        //String localPath= "/home/liuzhendong/userinfo.txt";
        //String hdfsPath = "hdfs://localhost:9000/input/userinfo.txt";
        //writeFileToHdfs(localPath, hdfsPath);


        String filePath = "/tju/userinfo.txt";
        readFileFromHdfs(filePath);




    }


}


标签:hdfs,null,String,hadoop,IOUtils,apache,import,Configuration
From: https://blog.51cto.com/amadeusliu/8839575

相关文章

  • logback error Logging system failed to initialize using configuration from 'nul
    *[Afterupgradingtheprojectfromspringboot2.3.4to2.7.0,buildfailwithalogback.xml·Issue#32025·spring-projects/spring-boot·GitHub](https://github.com/spring-projects/spring-boot/issues/32025)*[WhyDoesTheLoggingSystemFailToInitial......
  • spring boot项目中org.springframework.boot.autoconfigure.AutoConfiguration.import
    一、resource下的文件org.springframework.boot.autoconfigure.AutoConfiguration.importsspring.factoriesmessages_zh_CN.properties二、spring.factories文件我们知道在springboot项目中,只要用注解@Configuration、@Bean、@Compont等注解标注的类springboot会自动为......
  • Hadoop 数据类型及序列化
    1.Hadoop数据类型Java类型HadoopWritable类型BooleanBooleanWritableWritableWritableWritableWritableWritableWritableWritableWritableWritable2.为何Hadoop有自身序列化与反序列化Java自身的序列化除去本身Bean的数据......
  • UBUNTU 18.04.6 在编译LINUX内核的时候执行MAKE ARCH=ARM SOCFPGA_DEFCONFIG提示Can't
     Intel针对SoCFPGA芯片提供的Linux源码中已经提供好了一个名为socfpga_defconfig的配置文件,我们对内核的配置和修改,建议基于此配置文件进行,因此在进行配置前,需要先将该配置文件导入到默认配置文件.config中,操作方法很简单。 在终端输入makeARCH=armsocfpga_defconfig......
  • windows安装mysql时卡write configuration file曲线救国 mysql 5.7.39 免安装(ZIP压缩
    现象描述现象描述:使用安装包安装时,卡:writeconfigurationfile解决办法解决办法:曲线救国mysql5.7.39免安装(ZIP压缩包)版本安装配置1.下载mysql官网:mysql官网,点击前往2.安装下载后解压到任意文件夹,如我所解压的路径为:D:\ProgramFiles\MySQL\mysql-5.7将解压......
  • Hadoop NameNode(SecondaryNameNode) Fsimage和Edits解析
    NameNode被格式化之后,将在NameNode目录下产生一些文件1.Fsimage文件Fsimage文件是HDFS文件系统元数据的一个永久性的检查点,其中包含HDFS文件系统的所有目录和文件inode的序列化信息1.查看Fsimage文件1.oiv命令hdfsoiv-p文件类型-i镜像文件-o转换后文件的输出路径hdfs......
  • HDFS 机架感知
    互联网公司的Hadoop集群一般都会比较大,几百台服务器会分布在不同的机架上,甚至在不同的机房。出于保证数据安全性和数据传输的高效性的平衡考虑,HDFS希望不同节点之间的通信能够尽量发生在同一个机架之内,而不是跨机架和跨机房。同时,NameNode在分配Block的存储位置的时候,会尽可......
  • Hadoop 配置的优先级
    从低到高1.默认配置默认文件文件存放在Hadoop的jar包中的位置core-default.xmlhadoop-common-3.3.6.jar/core-default.xmlhdfs-default.xmlhadoop-hdfs-3.3.6.jar/hdfs-default.xmlyarn-default.xmlhadoop-yarn-common-3.3.6.jar/yarn-default.xmlmapred-d......
  • Java实现对Hadoop HDFS的API操作
    1.配置Hadoop的Windows客户端Hadoop配置Windows客户端2.新建Maven项目[略]3.添加依赖<!--https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client--><dependency><groupId>org.apache.hadoop</groupId>......
  • Hadoop 配置Windows 客户端
    1.根据Hadoop版本下载Windows依赖,并放置到非中文目录下https://github.com/cdarlint/winutils2.配置环境变量HADOOP_HOME->放置的目录地址PATH->追加%HADOOP_HOME%\bin3.测试环境双击winutils.exe,如出现运行错误,则需要安装相关的运行库解决。......