SSISO Community

시소당

성경 전체 텍스트 하둡처리하기

성경전체 단어를 Count하는 작업 시작

기본사항 구현 및 테스트
  1. 성경 텍스트 파일을 다운 받았다. from Internet
  2. 단어를 세기 위해 기본적으로 띄어쓰기 및 기타 괄호 등으로 Split 처리함
  명령어
     bin/hadoop jar /Users/leeseonguk/bigData/wordCount/target/wordcount-1-jar-with-dependencies.jar WordCount ~/bigData/hadoop-wordcount/input/ ~/bigData/hadoop-wordcount/output/


자연어처리 라이브러리 적용하기
  위와 같은 기준으로 처리하니 의도한대로 처리가 되지 않음
  사랑하고, 사랑하므로, 사랑하니 등 같은 의미를 갖는 단어가 다른 단어로 처리 됨.
  따라서 자연어처리 라이브러리를 사용해서 부사, 조사등을 분리한 명사로만 처리하기로 결정함

  1. 자연어처리 라이브러리를 검색중 괜찮은 것을 발견
    KOMORAN 자바 한국어 형태소 분석기
  2. maven을 사용하여 로컬 라이브러리로 추가하고 빌드
  3. 위와 같이 하였을때 로컬에 추가한 라이브러리의 클래스를 계속 못찾는 에러가 발생함
    ClassNotFoundException
  4. 위의 문제를 해결하기 위하여 다시 검색
    maven-assembly-plugin을 사용하여 관련 모든 라이브러리를 추가하여 JAR 생성
  5. 새로운 문제에 봉착 아래와 같은 문제 발생
    Exception in thread "main" java.io.IOException: Mkdirs failed to create

Exception in thread "main" java.io.IOException: Mkdirs failed to create 문제 해결 하기
  확인해보니 Macbook Air에서 Standalone 모드일 경우 발생하는 버그로 판명
  아래와 같이 특정 파일을 삭제하면 문제 없음.

  1. JAR 파일에서 META-INF/LICENSE 를 삭제하기
    zip -d wordcount-1-jar-with-dependencies.jar META-INF/LICENSE
  2. 제대로 삭제되었는지 확인
    jar tvf wordcount-1-jar-with-dependencies.jar | grep -i license


### 명령어 참고
1) 하둡 실행
  bin/hadoop jar /Users/leeseonguk/bigData/wordCount/target/wordcount-1-jar-with-dependencies.jar WordCount ~/bigData/hadoop-wordcount/input/ ~/bigData/hadoop-wordcount/output/

2) output 디렉토리 삭제

  rm -r ~/bigData/hadoop-wordcount/output/

612 view

4.0 stars