我正在开发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"));
请帮帮我。
答案 0 :(得分:1)
理论上你可以通过一些工作来实现这一目标。有两种可能性,SAMBA或NFS。在这两种情况下,Unix服务器都必须运行服务器组件并配置为导出所需的文件系统,并且您需要允许您访问导出文件系统的身份验证凭据。
对于SAMBA,您可以使用this question中的建议来映射网络驱动器。您必须编写代码来检测驱动器是否已经映射,并且应对分配驱动器号。
对于NFS,您需要找到Java的NFS客户端库。
我认为第三种可能性是通过FTP或(更好)SCP从Unix服务器复制文件。
答案 1 :(得分:0)
看起来您正在尝试嵌入hadoop / hdfs实例。大多数hdfs实例可能是数据中心中的多箱。如果您包含适当的jar和设置权限,您应该能够使用url通过namenode与hdfs进行交互:
HDFS://名称节点:端口/路径/到/你的/文件
如果是用于测试,那么启动独立于prod集群的本地实例是有意义的,但它可能需要它自己的独立配置。