Как загрузить данные 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