Может ли Луа поговорить с Hadoop? - PullRequest
2 голосов
/ 24 мая 2011

Можно ли использовать язык программирования Lua для Hadoop ?

Если да, то как?

Ответы [ 2 ]

5 голосов
/ 26 мая 2011

Абсолютно :) Вы можете использовать потоковую передачу Hadoop следующим образом:

Создание сценариев мапперов и / или редукторов в lua для чтения из stdin:

#!/usr/bin/env lua
while true do
  local line = io.read()
  if line == nil then break end

  # Do something with the incoming row

end

А затем запустите свою работу как:

$HADOOP_HOME/bin/hadoop  jar $HADOOP_HOME/hadoop-streaming.jar \
    -input myInputDirs \
    -output myOutputDir \
    -mapper myMapper.lua \
    -reducer myReducer.lua \
    -file /local/path/to/myMapper.lua
    -file /local/path/to/myReducer.lua

Здесь вы указываете свои скрипты мапперов и редукторов, используя -mapper и -reducer, и отправляете оба скрипта с -file в ваш распределенный кеш, поэтому все трекеры задач имеют доступ к нему.

При работе с потоковой передачей необходимо убедиться, что lua доступен на всех машинах, на которых запущены средства отслеживания задач.

Некоторое время назад мы экспериментировали с использованием luajit (что ужасно быстро) для потоковой передачи из Pig. Если вы используете свинью, вы можете сделать что-то вроде:

 OP = stream IP through `/local/path/to/script`; 

Это не то же самое, что использование lua в качестве преобразователя или преобразователя, но в зависимости от того, где происходит ваша операция, выходные данные преобразователя или преобразователя передаются через сценарий.

0 голосов
/ 24 мая 2011

Я никогда не использовал ни Lua, ни потоковую сторону Hadoop - так что это всего лишь предложения, не уверен, сработает ли это:

Взгляните на http://www.michael -noll.com / tutorials / writing-an-hadoop-mapreduce-program-in-python / и используйте Lua вместо Python?

Если бы я попытался сделать то, что вы просите, это было бы моей отправной точкой.

...