일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 빅데이터
- 그래프시각화
- 머신러닝
- pandas
- 데이터분석
- HIVE
- Python
- R프로그래밍
- 기계학습
- ggplot
- 데이터시각화
- SQL
- word2vec
- 그래프
- CNN
- 하둡
- Deeplearning
- R그래프
- r
- R시각화
- 데이터
- 빅데이터처리
- 주가예측
- 딥러닝
- lstm
- 자연어처리
- Hadoop
- AI
- 데이터처리
- NLP
- Today
- Total
욱이의 냉철한 공부
[Hadoop, Pig] 빅데이터 Pig로 만져보기 - R시각화 본문
* 앞 서 확인 할 것
1. 먼저 하둡명령어 파악하기
하둡 대표 명령어 - OS명렁어(unix명령어)하고 비슷한 shell 명령어
- hadoop fs -help : 하둡 fs에서 제공하는 명령어 확인
- hadoop fs -ls : 지정된 폴더나 파일 정보를 출력, 권한정보, 소유자, 생성일자, 바이트 수 확인
- hadoop fs -lsr : 현재 폴더 및 하위 디렉토리 정보까지 출력
- hadoop fs -du : 지정된 폴더나 파일에 사용량을 확인하는 명령어
- hadoop fs -dus : du는 폴더와 파일별 용량 / dus는 전체 합계 용량
- hadoop fs cat : 지정된 파일의 내용을 출력. 텍스트 파일만 출력
- hadoop fs -mkdir : 지정된 경로에 폴더를 생성, 이미 존재하면 error
- hadoop fs -put [운영체제폴더파일][HDFS] : 지정된 운영체제 폴더나 파일을 HDFS에 복사
- hadoop fs -get [HDFS][운영체제폴더파일] : HDFS에 저장된 파일이나 폴더를 OS로 이동
- hadoop fs -rmr : 지정한 파일이나 폴더를 삭제
- hadoop fs -sts : 지정된 경로의 통계 정보 출력
- hadoop fs -expunge : 휴지통비우기, HDFS는 삭제한 파일을 일정기간동안 보관함
2. Pig 이해하기
https://warm-uk.tistory.com/62
3. Pig 설치 과정
=> 추후에 포스팅 하겠습니다.
1. start-all.sh
- 하둡세상으로 접속한다.
- 앞으로 하둡프로그램에 접속하였을 때 하둡세상이라고 지칭하겠다.
2. jps
- 하둡세상을 가동하기 위한 환경이 잘 설정되어있는지 확인한다.
3. mkdir pigdata
- 운영체제 홈에 pigdata라는 폴더를 만든다.
- 이곳에 pig로 처리한 데이터 파일을 보관할 것이다.
4. cd pigdata
wget http://files.grouplens.org/datasets/movielens/ml-1m.zip
- 해당 데이터를 제공하는 사이트에 접속하여 데이터를 pigdata 폴더에 다운 받는다.
5. unzip ml-1m.zip
- 다운받은 압축된 파일 ml-1m이 있다. 압축을 푼다.
6. cd ml-1m
ls -l *.dat
- dat 타입 파일이 있는지 확인한다.
- movies.dat, ratings.dat, user.dat 파일이 있다는 것을 확인 할 수 있다.
7. head movies.dat
- 각자 데이터 파일들을 확인해 본다.
- movies.dat는 영화ID, 영화 제목, 장르 등 데이터를 가지고 있다.
- ratings.dat는 관객ID, 영화ID, 등급, 시간 등 데이터를 가지고 있다.
- users.dat는 관객ID, 성별, 나이, 직업, 코드번호 등 데이터를 가지고 있다.
8. sed s/::/,/q movies.dat > movies1.dat
sed s/::/,/q ratings.dat > ratings1.dat
sed s/::/,/q users.dat > users1.dat
- 구분자 ::를 ,로 바꾸었다.
9. 바꾼 것을 확인 할 수 있다.
10. hadoop fs -mkdir /movie_pig_data
- 하둡세상의 홈에 movie_pig_data라는 폴더를 만든다.
11. hadoop fs -put /home/user1/pigdata/ml-1m/*.dat /movie_pig_data
- 운영체제 홈의 pigdata/ml-1m폴더 안의 모든 데이터를 하둡세상 movie_pig_data에 복사한다.
- 결론적으로 movies.dat, ratings.dat, users.dat, movies1.dat, ratings1.dat, users1.dat가 복사한다.
12. hadoop fs -ls /movie_pig_data
- 하둡세상 홈에 있는 movie_pig_data 폴더 안을 확인해본다.
=> 인터넷으로도 확인 할 수 있다.
- localhost:50070로 접속하면 된다.
13. Pig 설치 후 Pig를 입력하여 Pig에 접속한다.
14. A = LOAD '/movie_pig_data/movies1.dat' USING pigstorage(',') AS(a1:int, a2:chararray, a3:chararray);
- 하둡세상 홈의 movie_pig_data폴더에 있는 movies1.dat 데이터들을 pig 세상 A에 복사 즉 LOAD 한다.
15. B = LOAD '/movie_pig_data/ratings1.dat' USING pigstorage(',') AS(a1:int, a2:int, a3:int);
- 하둡세상 홈의 movie_pig_data폴더에 있는 user1.dat 데이터들을 pig 세상 B에 복사 즉 LOAD 한다.
16. C = JOIN A BY a1, B BY b2;
- A의 a1과 B의 b2를 대상으로 JOIN한다. 이 과정과 결과를 C에 저장한다.
17. D = FOREACH C GENERATE $1, $5;
- 새로 만들어진 C에서 2번째, 6번째 열만 가져온다.
E = GROUP D by $0;
- 1번째 열 기준으로 그룹화 한다.
F = FOREACH E GENERATE $0, COUNT(D);
- 1번째 열 기준으로 숫자를 카운트 한다. 즉 등급을 매긴 관객 숫자를 카운트 한다.
STORE F INTO '/pig_output' USING pigstorage(',');
- 결과 F를 하둡세상의 pig_output 폴더에 저장한다.
18. Pig세상에서 성공적으로 MapReduce 작업을 마친 과정이다.
19. hadoop fs -ls /pig_output
- 하둡세상의 홈에서 /pig_output 폴더에 어떤 폴더들과 파일들이 있는지 확인한다.
- 앞서 Pig에서 MapReduce한 part-r-00000이 있다는 것을 확인 할 수 있다.
20. hadopo fs -cat /pig_output/p* | head
- p로 시작하는 파일 즉 part-r-00000의 앞부분만 확인 할 수 있다.
21. hadoop fs -get /pig_output/p* /home/user1/newmovie.txt
- 하둡세상에 있는 HDFS파일인 part-r-00000을 운영체제의 홈에 newmovie.txt명으로 복제시킨다.
22. head newmovie.txt
- 운영체제의 홈으로 잘 옮겨졌는지 확인한다.
* R에서 시각화 하기
23. R세상으로 접속한다.
24. txt<-read.csv("newmovie.txt",header=FALSE,sep=",")
- 운영체제 홈에 있는 Pig에서 MapReduce를 실행한 결과 newmovie.txt 파일을 R세상으로 불러옵니다.
25. colnames(txt)<-c("title","rating")
- 불러온 데이터프레임 txt의 열이름을 title과 rating으로 변경한다.
26. newtxt<-txt[order(txt$rating,decreasing=TRUE),c(1,2)]
- txt 데이터프레임에서 rating기준으로 내림차순으로 정렬하고 1, 2번째 열만 newtxt에 저장한다.
27. newtxt<-head(newtxt,10)
- 10행만 새롭게 저장한다.
28. pie(newtxt$rating, labels=newtxt$title, main="good movie 10")
- 파이그래프로 표현하기 위해 pie를 사용한다.
- labels인자는 영화 제목명을 표현하기 위해서이다.
'데이터엔지니어링 > 빅데이터 : Hadoop' 카테고리의 다른 글
[Hadoop, Pig] 빅데이터 Pig 이해하기 (0) | 2021.06.22 |
---|---|
[Hadoop, 하둡] 빅데이터 MAPREDUCE로 WordCount2 - R시각화 (0) | 2021.06.22 |
[Hadoop, Hive] 빅데이터 Hive로 MapReduce (0) | 2021.06.22 |
[Hadoop, Hive] 빅데이터 Hive 이해하기 (0) | 2021.06.22 |
[Hadoop, 하둡] 빅데이터 MAPREDUCE로 WordCount (0) | 2021.06.22 |