Как загрузить данные Twitter из hdfs, используя свинью?

Я просто передаю некоторые данные из твиттера, используя flume, и объединяю их в HDFS, и сейчас пытаюсь загрузить их в pig для анализа. Поскольку функция JsonLoader по умолчанию не может загружать данные, поэтому я ищу в google некоторую библиотеку, которая может загружать данные такого рода. Я нашел эту ссылку и следую там инструкции.

Вот результат

REGISTER '/home/hduser/Downloads/json-simple-1.1.1.jar';

2016-02-22 20:54:46,539 [main] INFO  org.apache.hadoop.conf.Configuration.deprecation - fs.default.name is deprecated. Instead, use fs.defaultFS

то же самое для другой команды буксировки.

Теперь, когда я пытаюсь загрузить свои данные с помощью этой команды

load_tweets = LOAD '/TwitterData/' USING com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad') AS myMap;

Это показывает мне эту ошибку

2016-02-22 20:58:01,639 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1070: Could not resolve com.twitter.elephantbird.pig.load.JsonLoader using imports: [, java.lang., org.apache.pig.builtin., org.apache.pig.impl.builtin.]
Details at logfile: /home/hduser/pig-0.15.0/pig_1456153061619.log

так как это решить и правильно загрузить?

Примечание: мои данные о недавнем выпуске твиттера "Deadpool".

2 ответа

Решение

Вам необходимо зарегистрироваться под банкой в ​​виде свиньи, эта баночка содержит соответствующий класс, к которому вы пытаетесь получить доступ.

слон птица-свинья-4.1.jar

Отредактировано: для правильных шагов.

REGISTER '/home/hdfs/json-simple-1.1.jar';

REGISTER '/home/hdfs/elephant-bird-hadoop-compat-4.1.jar';

REGISTER '/home/hdfs/elephant-bird-pig-4.1.jar';

load_tweets = LOAD '/user/hdfs/twittes.txt' USING com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad') AS myMap;

dump load_tweets;

Я использовал описанные выше шаги на своем локальном кластере, и он работает нормально, поэтому вам нужно добавить эти jar-файлы перед запуском вашей загрузки.

Вам необходимо зарегистрировать 3 файла Jar, как показано в блоге. Каждая банка имеет свое значение.

elephant-bird-hadoop-compat-4.1.jar-Утилиты для решения проблем несовместимости Hadoop между 1.x и 2.x.

elephant-bird-pig-4.1.jar - загрузчик Json для свиньи, он загружает каждую запись Json в Pig.

json-simple-1.1.1.jar - один из анализаторов Json, доступных на Java

После регистрации банок, вы можете загрузить твиты с помощью следующего сценария свиньи.

load_tweets = LOAD '/user/flume/tweets/' USING com.twitter.elephantbird.pig.load.JsonLoader('-nestedLoad') AS myMap;

После загрузки твитов их можно увидеть, сбросив

dump load_tweets
Другие вопросы по тегам