gpt4 book ai didi

hadoop - 使用 Java 代码运行简单的 Hadoop 命令

转载 作者:可可西里 更新时间:2023-11-01 15:36:09 25 4
gpt4 key购买 nike

我想使用 hadoop 命令列出文件。 “hadoop fs -ls 文件路径”。我想写一个Java代码来实现这个。我可以编写一小段 java 代码,制作一个 jar 并将其提供给 Map reduce 作业(Amazon EMR)以实现此目的吗?您能否指出我可以用来实现此目的的代码和步骤?

最佳答案

您可以使用JAVA代码列出HDFS中的文件,如下所示

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.FileUtil;
import org.apache.hadoop.fs.Path;

...

Configuration configuration = new Configuration();

FileSystem hdfs = FileSystem.get(new URI("hdfs://localhost:54310"), configuration);
FileStatus[] fileStatus = hdfs.listStatus(new Path("hdfs://localhost:54310/user/path"));

Path[] paths = FileUtil.stat2Paths(fileStatus);

for (Path path : paths) {
System.out.println(path);
}

在您的 map reduce 触发器代码(main 或 run 方法)中使用它来获取列表并将其传递给您的 map reduce 类的 args

选项 2

  1. 创建 shell 脚本以使用 hadoop fs -ls 命令读取文件列表
  2. 提供此脚本作为 EMR 引导脚本的一部分以获取文件列表
  3. 在同一个脚本中,您可以编写代码将路径保存在路径/mnt/下的文本文件中
  4. 从您的 map reduce 代码中读取此路径并提供给您的 mapper 和 reducer 的 arg 列表

关于hadoop - 使用 Java 代码运行简单的 Hadoop 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25122116/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com