복붙노트

[HADOOP] 하둡 스트리밍 (NLTK) 같은 외부 파이썬 LIB 실행

HADOOP

하둡 스트리밍 (NLTK) 같은 외부 파이썬 LIB 실행

내가 사용하려고 http://blog.cloudera.com/blog/2008/11/sending-files-to-remote-task-nodes-with-hadoop-mapreduce/

zip -r nltkandyaml.zip nltk yaml
mv ntlkandyaml.zip /path/to/where/your/mapper/will/be/nltkandyaml.mod

import zipimport
importer = zipimport.zipimporter('nltkandyaml.mod')
yaml = importer.load_module('yaml')
nltk = importer.load_module('nltk')

그리고 내가 가진 오류는 다음과 같습니다

비슷한 문제에 직면 않았다 누구, 당신은 완전한 솔루션을 넣어주십시오 수 있습니다.

감사

해결법

  1. ==============================

    1.나는 다음과 같은 접근 방식을 따라 성공적으로 하둡 스트리밍에 NLTK 패키지를 달렸다.

    나는 다음과 같은 접근 방식을 따라 성공적으로 하둡 스트리밍에 NLTK 패키지를 달렸다.

    참고 : 나는 단지 나의 대답은로드 NLTK 패키지하지 YAML에 초점을 맞출 것이다, YAML하지 패키지를 NLTK 사용했다,하지만 난 그것뿐만 아니라 귀하의 질문에 대한 작동합니다 생각합니다.

    가정, 당신은 이미 NLTK 패키지가 시스템에 설치되어

    먼저:

    zip -r nltk.zip nltk
    mv ntlk.zip /place/it/anywhere/you/like/nltk.mod
    

    왜 언제 어디 작동합니까? 그리고 : - 우리는 명령 줄을 통해이 .MOD 압축 파일의 경로를 제공하기 때문에, 우리는 그것에 대해 많이 걱정 할 필요가 없습니다.

    둘째: 당신의 매퍼 또는 평 파일의 변경

    #Hadoop cannot unzip files by default thus you need to unzip it   
    import zipimport
    importer = zipimport.zipimporter('nltk.mod')
    nltk = importer.load_module('nltk')
    
    #now import what ever you like from nltk
    from nltk import tree
    from nltk import load_parser
    from nltk.corpus import stopwords
    nltk.data.path += ["."]
    

    셋째 : 대부분은 당신이 누락 될 수 있습니다 추측 중요한 일입니다

    명령 줄 인수를 실행할지도 - 감소

    hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming.jar \
    -file /your/path/to/mapper/mapper.py \
    -mapper '/usr/local/bin/python3.4 mapper.py' \
    -file /your/path/to/reducer/reducer.py \
    -reducer '/usr/local/bin/python3.4 reducer.py' \
    -file /your/path/to/nltkzippedmodfile/nltk.mod \
    -input /your/path/to/HDFS/input/check.txt -output /your/path/to/HDFS/output/
    

    따라서, 위의 단계 내 문제를 해결하고 난 그것뿐만 아니라 다른 사람을 해결한다고 생각합니다. 건배,

  2. from https://stackoverflow.com/questions/24167933/running-external-python-lib-like-nltk-with-hadoop-streaming by cc-by-sa and MIT license