Как использовать потоковые пользовательские функции Python в pig на Amazon EMR

В Pig 0.12 представлены потоковые пользовательские функции Python, но они экспериментальные, поэтому им нужен Hadoop 1.

http://pig.apache.org/docs/r0.12.1/udf.html#python-udfs

Однако единственный предоставленный Amazon AMI, который может использовать pig 0.12, — это AMI 3.1.0, в котором используется Hadoop 2.4, а не Hadoop 1:

http://docs.aws.amazon.com/ElasticMapReduce/latest/DeveloperGuide/emr-plan-hadoop-version.html

Таким образом, единственный AMI, который поддерживает правильную версию свиньи, не поддерживает правильную версию hadoop. Есть ли способ заставить потоковые UDF работать с EMR?


person warbaker    schedule 04.09.2014    source источник


Ответы (1)


Вы можете установить свою собственную версию Pig на EMR, используя действие начальной загрузки. Вам нужно будет создать кластер без уже установленного Pig на версии AMI (2.4.5?) — а затем установить понравившуюся версию Pig (0.12)

person user1452132    schedule 04.09.2014
comment
Я использую EMR AMI 3.0.4 с предустановленным Apache Pig 0.11.1.1, и я просто извлекаю Apache Pig 0.13.0 из архива и обновляю PATH, чтобы он указывал на 0.13.0, а не на 0.11.0. Я бы предположил, что такое же облако можно сделать и со старыми образами AMI. - person Mikko Kupsu; 05.09.2014
comment
Это тоже должно работать. Однако Pig не является частью самого AMI, а устанавливается во время создания экземпляра кластера. Таким образом, вы можете изменить определение своего кластера, чтобы оно не было предустановлено. - person user1452132; 06.09.2014