2016-07-05 1 views
1

Я разрабатываю приложение Java, и это приложение сохраняет данные результата в HDFS. Приложение Java должно запускаться на моей машине Windows.Прочтите конфигурацию hadoop Файлы из Unix Path в программе Java

На данный момент я скопировал конфигурационные файлы 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")); 

Есть ли способ загрузить файлы конфигурации непосредственно с сервера unix с моего Windows-устройства, как показано ниже.

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")); 

Просьба помочь.

+1

У вашей машины Windows установлен диск на Unix-сервере (например, через Samba)? Если нет, ответ будет отрицательным. –

+0

Нет. На моем локальном компьютере Windows не установлен диск unix-сервера. –

+1

Тогда непонятно, что вы просите. Нет никакого волшебного трюка, который будет читать файлы с Unix-сервера в Windows. –

ответ

1

Вы могли бы теоретически выполнить это с некоторой работой. Есть две возможности: SAMBA или NFS. В обоих случаях на сервере Unix должен быть запущен серверный компонент и настроен на экспорт требуемой файловой системы, и вам понадобятся учетные данные для аутентификации, которые предоставляют вам доступ к экспортируемой файловой системе.

Для SAMBA вы можете использовать предложения в this question для сопоставления сетевого диска. Вам нужно будет написать код, чтобы определить, был ли диск уже отображен, и справиться с назначением буквы диска.

Для NFS вам нужно будет найти клиентскую библиотеку NFS для Java.

Я полагаю, что третьей возможностью является копирование файлов с сервера Unix с помощью FTP или (лучше) SCP.

0

Похоже, вы пытаетесь внедрить экземпляр hadoop/hdfs. Большинство экземпляров hdfs, вероятно, могут быть многоточечными, возможно, в центре обработки данных. Если включить соответствующие банки и разрешение настройки вы должны быть в состоянии взаимодействовать с HDFS через NameNode используя URLs:

HDFS: // NameNode: порт/путь/к/вашему/файлу

Если для тестирования, тогда разворачивание локального экземпляра, независимого от кластера prod, имеет смысл, но, вероятно, ему нужна собственная независимая конфигурация.