Datanode中的操作系统
Operating system in Datanode
因为我在伪分布式模式下使用 Cloudera CDH4 VM。我的问题是,在实际的 hdfs 集群中,我们要在数据节点上安装 hadoop 吗?
我们可以通过登录到datanode看到datanode驱动器中的数据拆分吗?
是的,在实际安装中(1 个活动名称节点,许多数据节点)必须在每个节点上安装 hadoop。 CDH(和大多数其他供应商)提供软件来帮助进行分布式安装。
您可以通过 webhdfs 查看文件元数据(通常浏览 hdfs),方法是启用 webhdfs(在 hdfs-site.xml 中将 属性 dfs.webhdfs.enabled 设置为 true,然后重新启动 hdfs),将浏览器定向到 localhost:50070,然后浏览到感兴趣的文件。
文件元数据也可以通过 hadoop FileInputFormat API 在 Java 中以编程方式检索。例如,对于文件拆分,您可以使用 getSplits()。它将 return 感兴趣的文件的每个拆分的位置。更直接的解决方案可以是使用文件系统 API,特别是 FileSystem.listFiles(),其中 return 块位置信息。后者可能只包含在后来的 hadoop 2.x 版本中,我不确定。
因为我在伪分布式模式下使用 Cloudera CDH4 VM。我的问题是,在实际的 hdfs 集群中,我们要在数据节点上安装 hadoop 吗? 我们可以通过登录到datanode看到datanode驱动器中的数据拆分吗?
是的,在实际安装中(1 个活动名称节点,许多数据节点)必须在每个节点上安装 hadoop。 CDH(和大多数其他供应商)提供软件来帮助进行分布式安装。
您可以通过 webhdfs 查看文件元数据(通常浏览 hdfs),方法是启用 webhdfs(在 hdfs-site.xml 中将 属性 dfs.webhdfs.enabled 设置为 true,然后重新启动 hdfs),将浏览器定向到 localhost:50070,然后浏览到感兴趣的文件。
文件元数据也可以通过 hadoop FileInputFormat API 在 Java 中以编程方式检索。例如,对于文件拆分,您可以使用 getSplits()。它将 return 感兴趣的文件的每个拆分的位置。更直接的解决方案可以是使用文件系统 API,特别是 FileSystem.listFiles(),其中 return 块位置信息。后者可能只包含在后来的 hadoop 2.x 版本中,我不确定。