当前位置: 首页 > 知识库问答 >
问题:

如何用hadoop java API配置hdfs默认路径?

贡斌
2023-03-14

我在Windows10上使用hadoop文件系统3.3.0和hadoop java客户端api。下面是hadoop配置文件。

==core-site.xml

<configuration>
    <property>
        <name>fs.default.name</name>
        <value>hdfs://localhost:9000</value>
     </property>
</configuration>
<configuration>
    <property>
        <name>dfs.replication</name>
          <value>1</value>
     </property>
     <property>
        <name>dfs.http.address</name>
          <value>localhost:50070</value>
     </property>        
    <property>
        <name>dfs.name.dir</name>
        <value>file:///C:/hadoop-3.3.0/data/hdfs/namenode</value>
     </property>
     <property>
          <name>dfs.data.dir</name>
          <value>file:///C:/hadoop-3.3.0/data/hdfs/datanode</value>
     </property>
</configuration>
Configuration conf = new Configuration();
conf.addResource(new Path("file:///C:/hadoop-3.3.0/etc/hadoop/core-site.xml"));
conf.addResource(new Path("file:///C:/hadoop-3.3.0/etc/hadoop/hdfs-site.xml"));
FileSystem hadoopFs = FileSystem.get(conf);

Path hadoopPath = new Path(filename);
        
FSDataOutputStream hadoopOutStream = null;
BufferedWriter bw = null;
        
if(hadoopFs.exists(hadoopPath)) {
    hadoopOutStream =hadoopFs.append(hadoopPath);
} else {
    hadoopOutStream = hadoopFs.create(hadoopPath, true); 
}
        
bw = new BufferedWriter(new OutputStreamWriter(hadoopOutStream,StandardCharsets.UTF_8));
bw.write("data....");
bw.close();
hadoopOutStream.close();

当我执行hadoop命令接口时,输出如下所示,

>hdfs dfs -ls /user/joseph
Found 1 items
-rw-r--r--   1 joseph supergroup     172120 2020-12-11 17:34 /user/joseph/saved_data.csv

保存文件的默认文件夹不包括在hadoop_home上,而是windows用户文件夹。如何修改默认保存文件夹?任何回复都是感谢的。最诚挚的问候

共有1个答案

聂炜
2023-03-14

HADOOP_HOME是Hadoop安装所在的路径,它与hdfs路径无关。默认情况下,HDFS将在其/user/nameofuser目录中存储一个目录。/user部分可通过config dfs.user.home.dir.prefix配置,其默认值为/user您可以在hdfs客户端配置中更改它,使用其他前缀而不是/user

 类似资料:
  • 与Jquery Mobile自动初始化共同协作 Working with Jquery Mobile's Auto-initialization 不像其他的Jq项目,比如jq和jq ui,Jquery Mobile会在加载到增强特性时马上应用它(远早于document.ready事件发生时)。这些特性会基于Jquery Mobile的默认配置应用,是针对默认的情形设计的,他可能符合你的需求,也可能

  • 我对ActiveMQ非常陌生,希望能在设置tomEE的默认内部ActiveMQ代理方面提供一些帮助。具体来说,任何一本书的样本。xml将非常有用。

  • 我想将*. yaml配置文件默认路径更改为“/config”目录下的根目录(现在默认为“/src/main/Resources”)。可能这可以通过创建config bean来实现,但我从来没有这样做过,并且在留档中找不到信息,如果可以这样做的话。我想更改默认路径,以便所有配置文件都应该正常运行使用新位置,除了覆盖配置之外没有任何特殊添加。我想为在测试中使用但放入“/config-test”目录的配

  • 我可以为我的vaadin fileupload组件设置默认上载路径吗?我想设置一些上载路径到我的vaadin组件。如果有人不选择上传任何文件,我的特定文件将被上传。有可能吗? 例如:I would like to do as

  • 问题内容: 我正在尝试将我的应用程序升级到新版本的Firebase。我仔细阅读了设置指南,并编辑了所有代码以匹配新语法。但是,当我运行该应用程序时,出现了这两个错误。 我 在AppDelegate中,并将GoogleServices- Info.plist导入到我的项目中。plist也具有所有正确的信息。其他人遇到这个问题或知道如何解决? 问题答案: 这是您的问题的答案: 要配置Firebase,

  • 22.2.2 默认DispatcherServlet配置 如上一节中所述,对每种特殊的bean,DispatcherServlet都会维护一个默认可用的实现的列表。此信息保存在包org.springframework.web.servlet中的文件DispatcherServlet.properties中。 所有的特殊bean都有一些合理的默认值,虽然迟早您将需要对这些bean提供的一个或多个属性