Java中的HDFS配置有什么用?
What is the usage of HDFS configuration in Java?
我对 HDFS Java API 有点困惑,尤其是 hadoop Configuration 对我们在 hadoop 服务器安装上的配置的作用 (/etc/hadoop/core-site.xml, 等等).
- 我应该在每个使用 hdfs 的 java 客户端程序中安装 hadoop 吗?
- java 客户端设置的任何配置是否会影响它与 hadoop 服务器(hdfs 服务器)的通信方式?
您可以在 core-site.xml 中或通过驱动程序代码中的配置来设置参数值。程序中的一组会覆盖xml文件中的一组。因此,例如,如果您必须设置压缩代码。然后你可以将它们添加到 core-site.xml
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
</property>
<property>
<name>mapred.map.output.compression.codec</name>
<value>org.apache.hadoop.io.compress.GzipCodec</value>
</property>
或将此行添加到您的驱动程序代码中。
Configuration conf = new Configuration();
conf.set("mapred.compress.map.output", "true");
conf.set("mapred.map.output.compression.codec", "org.apache.hadoop.io.compress.GzipCodec");
而且您不需要在每个 machine/node 上安装 hadoop。只需将它安装在您的主节点中,然后通过将 IP 添加到列表中来添加数据节点。 This 将帮助您了解如何设置多节点集群。
- 没有。在每个 java 客户端中,您应该只导入 hdfs Java 包。
示例:
public class HdfsTest {
//download file from hdfs
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
conf.set("fs.defaultFS", "hdfs://yourHadoopIP:9000/");
conf.set("dfs.blocksize", "64");
//to get a client of the hdfs system
FileSystem fs = FileSystem.get(conf);
fs.copyToLocalFile(new Path("hdfs://yourHadoopIP:9000/jdk-7u65-linux-i586.tar.gz"), new Path("/root/jdk.tgz"));
fs.close();
}
}
我对 HDFS Java API 有点困惑,尤其是 hadoop Configuration 对我们在 hadoop 服务器安装上的配置的作用 (/etc/hadoop/core-site.xml, 等等).
- 我应该在每个使用 hdfs 的 java 客户端程序中安装 hadoop 吗?
- java 客户端设置的任何配置是否会影响它与 hadoop 服务器(hdfs 服务器)的通信方式?
您可以在 core-site.xml 中或通过驱动程序代码中的配置来设置参数值。程序中的一组会覆盖xml文件中的一组。因此,例如,如果您必须设置压缩代码。然后你可以将它们添加到 core-site.xml
<property>
<name>mapred.compress.map.output</name>
<value>true</value>
</property>
<property>
<name>mapred.map.output.compression.codec</name>
<value>org.apache.hadoop.io.compress.GzipCodec</value>
</property>
或将此行添加到您的驱动程序代码中。
Configuration conf = new Configuration();
conf.set("mapred.compress.map.output", "true");
conf.set("mapred.map.output.compression.codec", "org.apache.hadoop.io.compress.GzipCodec");
而且您不需要在每个 machine/node 上安装 hadoop。只需将它安装在您的主节点中,然后通过将 IP 添加到列表中来添加数据节点。 This 将帮助您了解如何设置多节点集群。
- 没有。在每个 java 客户端中,您应该只导入 hdfs Java 包。
示例:
public class HdfsTest { //download file from hdfs public static void main(String[] args) throws Exception { Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://yourHadoopIP:9000/"); conf.set("dfs.blocksize", "64"); //to get a client of the hdfs system FileSystem fs = FileSystem.get(conf); fs.copyToLocalFile(new Path("hdfs://yourHadoopIP:9000/jdk-7u65-linux-i586.tar.gz"), new Path("/root/jdk.tgz")); fs.close(); } }