기록/그 외 프로젝트 기록4 [Hadoop] Map Reduce를 위한 maven project 만들기 하둡 클러스터를 통해서 mapreduce를 실행했는데, 이 때 꼭 jar파일이 필요했다. 미리 공부했던 방식은 ant를 이용한 방식이었는데, 내가 따로 코드를 처음부터 작성하다보니 그 방식을 공부하기보다 이미 알고있는 maven방식을 쓰는게 좋다는 결론을 내렸다. 여건 상 하둡 클러스터 서버에서 maven을 설치할 수 없었기 때문에 로컬에서 빌드한 후 서버로 이동시켰다. 1. pom.xml 81번째줄의 mainClass부분이 중요하다. 메인클래스를 지정해야 jar파일을 실행할 때 Driver에서 설정한 명령어로 다른 클래스를 실행할 수 있다. 4.0.0 org.apache.hadoop.examples wayg jar 1.0 wayg http://maven.apache.org junit junit 3.8... 기록/그 외 프로젝트 기록 2022. 10. 11. [NLP] Open Korean Text 자바로 구현 몇년 전에 파이썬의 konlpy 라이브러리를 이용해서 okt를 써보았던 적이 있다. konlpy는 한국어 정보처리를 위한 파이썬 패키지로, 여러 종류의 한국어 자연어 처리기를 쉽게 사용할 수 있도록 돕는다. 나는 이번에 okt를 스프링부트에서 사용하기 위해서 자바로 직접 사용해보았다. 1. gradle 인코딩을 utf-8로 설정한다. tasks.withType(JavaCompile) { options.encoding = 'UTF-8' } 그 후 dependencies에 다음을 추가한다. implementation('org.openkoreantext:open-korean-text:2.1.0') 2. 분석코드 분석을 위해 작성한 클래스다. analyseText 함수는 파라미터로 text와 선택할 품사태그배열.. 기록/그 외 프로젝트 기록 2022. 10. 10. [Hadoop] Map Reduce - timed out after 600secs 에러 해결 기록용 글이다. 1. 배경 1) 이 프로젝트에서는 형태소 단위로 wordcount를 진행하고자 했다. 하둡을 '하둡답게' 이용하고 싶었기 때문에 데이터 6기가 정도를 크롤링으로 모았다. 2) 내가 짠 mapreduce 코드는 관광지명, 형태소가 key고 value가 카운팅횟수이기 때문에 한 줄에 관광지명, 텍스트가 전부 다 들어가있어야했다. 크롤링한 데이터는 일반적인 블로그글이라 미리 특수문자, 개행문자를 모두 제거하고 csv형식으로 정리해두었다. 3) 사용하던 하둡 클러스터 서버는 50대 정도의 서버를 묶은 것으로 내게 sudo권한이 없었다. 따라서 관리자권한이 필요한 설정변경은 할 수 없는 상황이었다. 2. 오류메세지 이렇게 mapreduce를 실행하면 timed out after 600s.. 기록/그 외 프로젝트 기록 2022. 9. 28. [Hadoop] Python으로 wordcount하기(Hadoop Streaming) 코드는 딱히 특별하지 않아서 설명하지 않는다. (내가 이 글로 말하고 싶은 부분은 3,4번에 있다.) 1. mapper #!/usr/bin/env phthon3 # -*-coding:utf-8 -* import sys for line in sys.stdin: words = line.strip().split() for word in words: print('{}\t{}'.format(word, 1)) 2. reducer #!/usr/bin/env python3 # -*-coding:utf-8 -* import sys def print_output(word, count): print('{}\t{}'.format(word, count)) word, count = None, 0 for line in sys.st.. 기록/그 외 프로젝트 기록 2022. 9. 22. 이전 1 다음