인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

신의비상님의 프로필 이미지

작성한 질문수

15일간의 빅데이터 파일럿 프로젝트

머하웃과 스파크ML 이용한 머신러닝 질문 드립니다.

작성

·

307

0

선생님 안녕하세요?
많은 질문에도 빠른 답변으로 여기까지 잘 진행해 올 수 있었습니다. 제목과 같이 머하웃과 스파트 ML를 이용한 머신러닝 과정에서 아래 그림과 같이 실행이 완료되지 않아 질문 드립니다. 구글링해도 내용이 나오지 않아 (제가 못찾는 부분이 크겠죠...) 해결을 못하고 있습니다. 이런한 문제가 하이브 쿼리 사용할때 자주 나오는데...해결 방법이 없을까요?
운영 관련 문의는 1:1 문의하기를 이용해주세요.

답변 1

0

Big.D님의 프로필 이미지
Big.D
지식공유자

네! 신의비상님! 잘하고 계십니다. 

두가지 확인해봐 주세요..

먼저 하이브쿼리에서 select ..구문만 떼어서 실행해 결과가 나오는지 확인

두번째로 Server02에 /home/pilot-pjt/mahout-data/recommandation/input 경로에 파일이 생성 되었는지와 파일내용 확인

-빅디 드림

신의비상님의 프로필 이미지
신의비상
질문자

안녕하세요?

말씀하신 내용으로 select~~~~구문만 실행한 결과입니다.

그리고 두번째로 Server02에 /home/pilot-pjt/mahout-data/recommandation/input 경로에서 확인한 내용입니다.

좀 숙달되어야 되는데...저에게는 계속 힘든 상황이 나오네요! 제가 어디서 잘 못했는지요?

Big.D님의 프로필 이미지
Big.D
지식공유자

네..하나 더요?!ㅎ

기존에 잘나오던 select쿼리 실행해서 결과가 나오는지도 확인해봐 주세요!

- 김강원 드림

신의비상님의 프로필 이미지
신의비상
질문자

하이브 쿼리에서 실행된 내용입니다.

Big.D님의 프로필 이미지
Big.D
지식공유자

음..제생각엔 파일럿PC의 자원부족 문제로 보이는데요..TT

문제되는 SELECT 쿼리에서 끝에 limit 1 조건을 붙여 주고 실행해봐 주세요~

-빅디 드림

신의비상님의 프로필 이미지
신의비상
질문자

선생님 말씀하신데로 limit 1 조건 붙여 주고 나온 그림입니다. 기존에 질문 드린 내용과 유사한거 같아요. 그리고 자원 부족이라면 Cluster 1에서 중지하고 하면 자원부족을 어느정도 해결할 수 있는지요? 그럼 중지할 자원은 무엇인지요?

Big.D님의 프로필 이미지
Big.D
지식공유자

우선 CM홈에서요..

우측 하단의 클라으데라 매니져 서비스 중지

플럼 중지

카프카 중지

Hbase 중지

Storm 중지

Redis 중지

요렇게만 중지 해도 자원의 여유가 있을겁니다. 수집적재 서버들은 필요시에 활성화 시켜주세요~

-빅디 드림

신의비상님의 프로필 이미지
신의비상
질문자

안녕하세요? 위의 내용으로 중지하고 하이브 쿼리에서 다시 실행하였으나, 결과 값을 얻지 못했습니다. 자원문제가 메모리와 저장소 문제일 수 있어 버츄얼 박스 저장소 용량도 서버 1, 2 에 각각 55GB로 용량을 늘려 진행하였으나 잘 되지 않네요. 혹시 몰라 캡처한 화면 첨부 드립니다. 해결 방법이 있으면 좋겠습니다. 수고하세요!

Big.D님의 프로필 이미지
Big.D
지식공유자

음..아직 해결이 안되셨군요..TT

그래도 포기하지 말고요...ㅎㅎ

지금 실패나는 쿼리는 가벼운 작업 입니다. 아마 자원 문제가 있었더라면 앞에 실습에서 발생 했을 겁니다.

하이브쿼리가 실패하는 원인에 대해 로그분석을 해봐야 할 것 같습니다.

해당 하이브 쿼리를 실행 시키면, 우측 상단에 Job 아이콘에 숫자가 활성화 됩니다.

이 아이콘을 클릭 하면 하이브에서 변환된 맴리듀스  Job 실행정보를 볼 수 있습니다.

그리고 실행과 실패에 대한 이력부터 로그들을 볼 수 있습니다. 

실패난 로그들을 올려봐 주세요~

- 빅디 드림

신의비상님의 프로필 이미지
신의비상
질문자

안녕하세요?

말씀하신 내용으로 하이브쿼리에서 실행하고 로그를 보기위해 들어갔으나, 캡처 화면처럼 내용이 나오지 않습니다. 작업취소하면 로그 화면에서 나오는 메시지는 작업자의 취소로 종료 되었다는 로그만 나오네요~ 로그보는 방법이 별도로 있나요?

Big.D님의 프로필 이미지
Big.D
지식공유자

네..뭐가 문제일까요?! ^^;;

아래 잡히스토리 관리자에 직접 접속하셔서 확인 부탁드립니다. 여기에 보면 실행한 하이브잡들의 실행 목록과 상세 내용들을 확인해 볼 수 있습니다.

http://server01.hadoop.com:19888/jobhistory

두번째로 아래 로그파일의 내용을 보시고, 하이브 서버에서 발생 했던 최근 ERROR 들을 모두 찾아봐 주세요~

Server02 접속

$ cd /var/log/hive

$ vi hadoop-cmf-hive-HIVESERVER2-server02.hadoop.com.log.out

- 빅디 드림

신의비상님의 프로필 이미지
신의비상
질문자

안녕하세요?

http://server01.hadoop.com:19888/jobhistory 에서 내용은 아래 캡처 화면과 같습니다.

Server02 접속 cd/var/log/hive    cd /var/log/hive     vi hadoop-cmf-hive-HIVESERVER2-server02.hadoop.com.log.out 캡처 화면입니다.

위의 두 캡처에서 어디을 봐야 에러를 알 수 있는지요?

Big.D님의 프로필 이미지
Big.D
지식공유자

잡히스토리 에선 왼쪽 메뉴에 JOB메뉴를 클릭해서 잡들이 성공/실패인지 보고요..

로그 파일에선..로그 내용을 뒤져 보면서 어떤 원인으로 Error 가 있었는지를 보시면 됍니다.

추가로 서버02에 접속해서 아래 명령 실해결과도 캡쳐해 주세요~

$ ls -alt /home

-빅디 드림

신의비상님의 프로필 이미지
신의비상
질문자

안녕하세요? 잡히스토리 왼쪽 JOB 메뉴를 보면 아무 내용이 나오지 않습니다. 일전에 캡처해서 올린 자료가 로그 내용이라 생각되어 다시 올립니다.

그리고 말씀하신 서버02 접속 후 $ ls -alt /home 실행한 내용 캡처 화면입니다.

잘 해결되어 진도가 나갔으면 좋겠습니다. 감사합니다

Big.D님의 프로필 이미지
Big.D
지식공유자

네..잘 해결 될겁니다. ㅎㅎ

중요한건 문제가 발생하고 문제의 원인을 찾아 몇일동안 고민하며 해결해 보는 경험이 더 중요 합니다. 긍정적으로 보면 파일럿 프로젝트를 하며 많은 문제가 발생 하는게 '신의비상'님에겐 더 좋다는 거고요, 이런 트러블슈팅 해결 능력이 쌓여야 전문가가 되실 수 있습니다.

본론으로 들어 와서요..

잡히스토리서 잡 목록이 안보이는건 2가지 원인이 있을 수 있습니다. 첫번째로 잡 히스토리 내역은 시간이 지나면 모두 지워집니다. 요거 한번더 확인해 보시고요, 두번째로 하둡의 Yarn 리소스 매니져가 Job을 실행 시키지 못한 건데요..

만약 두번째 문제라면 자원 문제 원인을 아래 내용으로 다시 한번 점검해 봐야 하고, 원인으로 파악 되면 얀의 환경설정에서 자원 관련 설정값들을 조정해 봐야 합니다.

 혹히 앞서 말씀 드렸던 하이브 로그는 분석해 보셨는지요?!

추가로 Yarn의 로그도 분석해 봐야 할 것 같습니다.

하이브 로그 위치는 Server01에서 아래 위치 고요..

$ cd /var/log/hive

$ vi hadoop-cmf-hive-HIVESERVER2-server02.hadoop.com.log.out

얀 로그의 위치는 Server02에서 아래 위치해 있습니다.

$ cd /var/log/hadoop-yarn

$ vi  hadoop-cmf-yarn-RESOURCEMANAGER-server01.hadoop.com.log.out

위 두개의 파일을 vi 에디터로 열어서 '신의비상'님이 조작했던 하이브쿼리의 실행 시간대서 기록된 로그들의 내용을 하나하나씩 보시는데요..이때 모든걸 다 볼 필요는 없고, 라인 앞쪽에 ERROR 또는 Exception 이라는 키워드들이 있는지만 보고 그 라인을 밑으로 로그 내용과 원인만 보시면 됩니다. 아니면 vi의 검색기능으로  ERROR 라는 키워드를 찾아 보는 것도 방법 입니다. 

이렇게 꼭~ 해보시기 바랍니다.  - 빅디 드림 

ps. 만약 vi 기능이 익숙치 않다면 파일질라를 통해 해당 파일을 PC로 다운로드 받아서, 편하신 에디터로 분석해 보는 방법도 있습니다.

 

신의비상님의 프로필 이미지
신의비상
질문자

안녕하세요? 추석연휴는 잘 보내셨는지요?

선생님께서 말씀하신 내용으로 파일질라를 통해 위의 로그를 다운받았습니다. 내용이 많다보니 여기에 올리 수 없을거 같아 어떻게해야 될지 문의 드립니다. 파일을 별도로 드릴 수 있는 방법은 없을까요?

Big.D님의 프로필 이미지
Big.D
지식공유자

네~ 신의비상님도 편안한 추석 되셨는지요?!

 음...이 문제로 신의비상님이 너무 많은 시간을 소비하고 있는것 같습니다. 단순히 하이브 hash 함수를 적용해 차량번호와 상품코드를 변환하는 작업인데...

그래서 우선 hash 처리가 완료된 000000_0 파일을 보내 드리겠습니다. 

해당 파일을 /home/pilot-pjt/mahout-data/recommendation/input 경로에 파일질라로 업로드 하고, 생성이 잘 되었다는 전제로 다음 스텝을 진행 하시고요,  그리고 이후 관련해 유사한 문제들이 발생 하는지를 지켜 보는게 좋을것 같습니다.

이메일 주소를 알려주세요~  -빅디 드림

신의비상님의 프로필 이미지
신의비상
질문자

감사합니다. 제가 리눅스나 기타 개발 관련 지식이 없는 상태에서 본 과정을 진행하다보니 많은 오류가 나와 항상 죄송하게 생각하고 있습니다. 이번 과정을 다 진행하고 고사양 PC에서 처음부터 다시 한번 시작해볼 생각입니다. ^^

제 메일 주소는 shinpans@naver.com 입니다. 힘내서 끝까지 완료하겠습니다!

신의비상님의 프로필 이미지
신의비상
질문자

안녕하세요? 선생님께서 말씀하신 내용으로 파일질라를 이용하여 보내주신 파일을 업로드 후 과정을 진행하였습니다.

교재 7.7분석 파일럿 실행 5단계 - 머하웃과 스파트ML을 이용한 머신러닝  /  04. 머하웃의 추천 분석기를 실행하고 (mahout recommenditembased -i /pilot-pjt/mahout/recommendation/input/item_buylist.txt -o /pilot-pjt/mahout/recommendation/output/ -s SIMILARITY_COOCCURRENCE -n 3)  15분 이상 경과된 상황으로 아래 캡처 화면처럼 더 이상 넘어가지 않습니다. 노트북 자원 문제일까요? 아님 다른 문제일까요? 아래 화면에서 종료하려면 어떻게 하면 되는지 알려주시면 감사하겠습니다.

 

Big.D님의 프로필 이미지
Big.D
지식공유자

네..MapReduce 자원 문제인것 같습니다.

CM의 홈 > YARN > 구성 에서 검색어로 아래 6개 항목을 하나씩 입력하고 조회된 수치를 알려 주세요.

- 최소 컨테이너 메모리

- 최대 컨테이너 메모리

- ApplicationMaster 메모리

- Map 작업 메모리

- Reduce 작업 메모리

- 컨테이너 메모리

그리고 앞서 탐색 단계에서 진행 하셨던,  5개의 주제영역별  Workflow , Coordinator가 중지 되어 있는지도 확인해 주세요~   - 빅디 드림

신의비상님의 프로필 이미지
신의비상
질문자

선생님 안녕하세요? 정말 오랜만에 질문 드립니다. (회사이 많이 이제야 말씀해 주신 내용에 대해서 답변 드립니다)

- 최소 컨테이너 메모리 (1 GiB)

- 최대 컨테이너 메모리 (1536 MiB)

- ApplicationMaster 메모리 (1 GiB)

- Map 작업 메모리

- Reduce 작업 메모리

- 컨테이너 메모리
   

그리고 마지막으로 말씀하신 내용의 (5개의 주제영역별  Workflow , Coordinator가 중지 되어 있는지도 확인해 주세요~) 이 말은 어디서 확인해야 되는지 잘 모르겠습니다. 어디서 확인하면 될까요? 

Big.D님의 프로필 이미지
Big.D
지식공유자

안녕하세요! 빅디입니다.

오랜만에 인사드리네요..^^

YARN의 설정값들은 문제 없어 보입니다.

추가로 다음 사항들을 체크해 보겠습니다.

실행 했던 작업들이 종료 되지 않아, 존비 처럼 남아서 자원을 잡아먹고 있는지 확인해 봐야 합니다.

마지막에 문의 하셨던 질문과도 관련 있는 사항입니다.

1. Server02의 Putty 접속

2. 아래 명령으로 실행중인 Java 프로세스 확인 
     $ ps -ef | grep java

위 2번 명령 실행 다음줄의 시작부터 끝까지 스크린샷 부탁 드리고요..

 

3. Hue 접속 >  좌측 드랍메뉴 > Job 선택

4. Hue 접속 >  좌측 드랍메뉴 > 쿼리 선택

5. Hue 접속 >  좌측 드랍메뉴 > 일정 선택

위 3,4,5번 선택결과 스크린샷도 부탁 드립니다.

 

'신의비상님' 포기하지 마세요~ ^^ 

- 빅디 드림

신의비상님의 프로필 이미지
신의비상
질문자

선생님 안녕하세요? 말씀하신 내용에 대한 캡처화면 올려 드립니다. 내용이 많네요... Job, 쿼리, 일정 화면 캡처한 내용이 맞는지는 모르겠지만 아무 내용이 없습니다.

아래 명령으로 실행중인 Java 프로세스 확인 
     $ ps -ef | grep java

job 화면

쿼리화면

일정화면

신의비상님의 프로필 이미지
신의비상
질문자

머하웃 추천 분석기 실행 화면에서 멈춰있는 화면도 캡처해서 올립니다.

Big.D님의 프로필 이미지
Big.D
지식공유자

네~ 다른곳들에선 특별한 문제가 없어 보이고요..

지금까지 상황에선, 머하웃 실행시 CPU/Memory의 리소스 부족 현상으로 보입니다.

그래서 저사양 PC의 경우, 단계별 미사용 서비스(서버)들은 종료를 하고 파일럿 실습을 진행해야 합니다.

우선..

1. 응답 없는 머하웃 명령 종료 - 위 그림상에선 Ctrl-Z or Ctrl-C 

2. 가상서버 1 , 2 모두 재시작

머하웃 머신러닝 단계에서 불필요한 서비스 종료

3. CM에서  Flume 중지

4. CM에서 HBase 중지

5. CM에서 Kafka 중지

6. CM에서 Hive 중지

7. CM에서 Oozie 중지

8. CM에서 Hue 중지

9. CM에서 Spark 중지

10. Server02에 접속해 Redis 종료

이렇게 현단계에서 미사용 하는 서버들을 종료해 리소스를 확보해 놓고 머하웃 명령을 실행해 보세요!

- 빅디 드림

신의비상님의 프로필 이미지
신의비상
질문자

선생님 안녕하세요? 위에서 말씀하신 내용으로 진행하였으나, 여전히 문제가 해결이 되지 않고 아래 화면 처럼 멈춰 있네요. 계속 반복해서 잘 넘어가면 좋겠으나, 해결이 안되면 어떻게 해야 될지요? 저는 Ctrl-C 로 종료 후 머하웃 명령어를 시간이 될때마다 해보겠습니다.

Big.D님의 프로필 이미지
Big.D
지식공유자

네..혹시 저상태에서 얼마동안 기다려 보셨나요?! 환경에따라 10분이상 소요 되기도 합니다.

-빅디 드림

신의비상님의 프로필 이미지
신의비상
질문자

위에 올린 화면에서 첫 번째 시간은 1시간 정도 기다려 보았구요, 나머지는 평균 15분 정도 기다려 보고 있습니다. 

Big.D님의 프로필 이미지
Big.D
지식공유자

네~ 이렇게 대기 상태에 빠져 들었을때의 YARN의 실시간 로그를 보고 분석 해야는데요..

정황상 의심되는건 자원부족 문제로 보입니다.

지금 실행중인 VM이미지를 Export해서, 좀더 성능이 좋은 PC에 버추얼박스를 설치하고 테스트해 잘 되는지도 확인해 보시기 바랍니다.

그전에 우선 해볼건 다 해보도록 하겠습니다. ^^;

저~기 위에 상단에 보면 CM > YARN > 구성에서 Map/Reduce 작업 메모리 영역이 있습니다.

디폴트로 사용해도 문제 없는 항목이나 아래처럼 힙메모리를 강제 셋팅해서 테스트해 보겠습니다.

* Map 작업 메모리 : 1024 MB

* Reduce 작업 메모리 : 2048 MB

저장 >  YARN 재시작 > Server01, 02 재시작 > Mahout 테스트

요렇게 테스트 부탁드립니다.  화이팅!   - 빅디 드림