2015-10-31 3 views
0

Мне нужно создать общую утилиту для системы unix/Windows, чтобы выталкивать данные в систему hadoop. Пользователь может запускать эту утилиту с любой платформы и должен иметь возможность передавать данные в HDFS.Утилита для ввода данных в HDFS

WebHDFS может быть одним из вариантов, но любопытно узнать, имеется ли что-либо еще.

Любые предложения?

+0

Почему бы не построить клиент Java Hadoop, которые подключаются к Hadoop NameNode и записи данных пользователю необходимо с помощью Hadoop-клиента API? –

+0

Да Simone ... У вас есть список фляг, которые потребуются для запуска Java-кода? – Shashi

ответ

0

Я обычно делаю проект Maven и добавить эту зависимость в моем pom.xml файл:

<dependency> 
    <groupId>org.apache.hadoop</groupId> 
    <artifactId>hadoop-client</artifactId> 
    <version>2.6.1</version> 
</dependency> 

Затем нажать данных в HDFS это очень легко с Hadoop Java API, это простой пример просто см., как это работает:

String namenodeLocation = "hdfs://[your-namenode-ip-address]:[hadoop:listening-port]/"; 

Configuration configuration = new Configuration(); 
FileSystem hdfs = FileSystem.get(new URI(namenodeLocation), configuration); 
Path file = new Path(namenodeLocation+"/myWonderful.data"); 

FSDataOutputStream outStream = hdfs.create(file); 

byte[] coolDataToPushToHDFS = new byte[1500]; 

outStream.write(coolDataToPushToHDFS); 
outStream.close(); 

hdfs.close(); 

Это действительно простая программа. Я думаю, что шаги, которые вы должны сделать это:

  1. Пусть пользователи выбирают входные/данные, чтобы подтолкнуть
  2. Использование Hadoop Java API для отправки файлов/данных в кластер
  3. Дайте обратную связь с пользователем.

Вы также можете добавить информацию в файл, а не только создать новый файл.

Дайте взглянуть на документацию: https://hadoop.apache.org/docs/current/api/

+0

hadoop-client.jar достаточно для запуска кода? Или мне нужно добавить больше зависимостей, таких как log4j, slf4 и т. Д.? – Shashi

+0

этого достаточно. log4j, slf4 - другие сторонние библиотеки. Если вы используете только hadoop api, вам не нужны эти зависимости. Btw зависит от того, что вы хотите сделать/код в вашей утилите :) –

+0

@Shashi Вы что-то пробовали? Если бы мой ответ был полезным, пожалуйста, примите его как хороший ответ. Если у вас есть сомнения, задайте более конкретный вопрос :) –