在java程序中从unix路径读取hadoop配置文件

i86rm4rw  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(697)

我正在开发一个java应用程序,这个应用程序正在将结果数据保存到hdfs中。java应用程序应该在我的windows机器上运行。
到目前为止,我将hadoop配置文件(如core site、hdfs-site.xml)复制到我的windows机器上并进行了测试。下面是我的配置代码片段。

config.addResource(new Path("C:\\Hadoop\\core-site.xml"));
config.addResource(new Path("C:\\Hadoop\\hdfs-site.xml"));
config.addResource(new Path("C:\\Hadoop\\mapred-site.xml"));
config.addResource(new Path("C:\\Hadoop\\yarn-site.xml"));

有没有什么方法可以从我的windows机器上直接从unix服务器加载配置文件,如下所示。

config.addResource(new Path("/opt/hdp/2.3.4.7-4/hadoop/conf/core-site.xml"));
config.addResource(new Path("/opt/hdp/2.3.4.7-4/hadoop/conf/hdfs-site.xml"));
config.addResource(new Path("/opt/hdp/2.3.4.7-4/hadoop/conf/mapred-site.xml"));
config.addResource(new Path("/opt/hdp/2.3.4.7-4/hadoop/conf/yarn-site.xml"));

请帮帮我。

t98cgbkg

t98cgbkg1#

理论上你可以通过一些工作来完成这一点。有两种可能,samba或nfs。在这两种情况下,unix服务器都必须运行服务器组件并配置为导出所需的文件系统,并且您需要授予您对导出的文件系统的访问权限的身份验证凭据。
对于samba,您可以使用这个问题中的建议来Map网络驱动器。您必须编写代码来检测驱动器是否已经Map,并处理分配驱动器号的问题。
对于nfs,您需要找到一个用于java的nfs客户机库。
我想第三种可能是通过ftp或(更好的)scp从unix服务器复制文件。

vbkedwbf

vbkedwbf2#

看起来您正在尝试嵌入一个hadoop/hdfs示例。大多数hdfs示例可能是多箱的,也许是在数据中心。如果包含适当的jar和设置权限,则应该能够使用url通过namenode与hdfs交互:
hdfs://namenode:port/path/到/your/文件
如果是为了测试,那么独立于prod集群启动本地示例是有意义的,但是它可能需要自己的独立配置。

相关问题