Spark & Hadoop/Hadoop

[Hadoop] 맵리듀스 프로그래밍 실행 (WordCount)

YSY^ 2023. 8. 20. 19:07

해당 포스팅에서는 맵리듀스 프로그램으로 단어수를 세는 방법을 설명합니다

WordCount 맵리듀스 프로그램 실행

1. 하둡 디렉토리로 이동한다.

cd hadoop-3.3.4/sbin/

2. input이 되는 디렉토리를 HDFS상에 만든다.

bin/hdfs dfs -mkdir input
  • bin/hdfs : hdfs와 관련된 기능을 제공해주는 권한 조정하는 곳

CF) 위 코드를 실행했을 때 아래와 같이 디렉토리가 없다고 나온다면 Hdfs 쪽에 User폴더와 내 sub폴더를 만들어 줍니다.

bin/hdfs dfs -mkdir /user
bin/hdfs dfs -mkdir /user/hdoop

CF) 아래와 같이 Connection Error가 발생한다면  아래 코드를 실행하여 hdfs와 yarn을 실행시켜줍니다.

./start-all.sh

2-1) 폴더가 제대로 만들어졌는지 확인합니다.

 bin/hdfs dfs -ls

3. Wordcount의 입력이 되는 파일을 만들고 문장을 하나 저장합니다..

vi words.txt
A lioness was shot dead an hour after escaping from a farm in Goryeong County, North Gyeongsang, the county said.
It said an emergency call placed at 7:24 a.m. on Monday reported a lioness had escaped from a tourist farm in Deokgok-myeon, Goreyeong County.
The county alerted its residents of the escape and began a search mission.

4. Local에 생성한 words.txt 파일을 hdfs의 input 폴더로 이동한다.

bin/hdfs dfs -put words.txt input

4-1) 파일이 제대로 이동했는지 확인합니다.

bin/hdfs dfs -ls input

  • jar 파일의 경로와 프로그램이름(wordcount), 예상되는 파라미터(input(데이터 경로), output(결과를 저장하는 경로)를 입력한다.
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.4.jar

맵과 리듀스가 성공적으로 실행되었다.

5. Output 폴더가 제대로 생성되었는지 확인합니다.

  • _Success는 에러없이 잘 실행되었다를 보여주는 플레그임.
 bin/hdfs dfs -ls output

6. Output의 내용을 체크한다.

bin/hdfs dfs -cat output/part-r-00000
  • Key (단어), Value(개수) 를 체크할 수 있다.

7. Yarn Web UI에서 결과 보기

http://localhost:8088/cluster

 

MapReduce 프로그래밍 문제점

1. 생산성이 떨어짐.

  • 데이터 모델과 오퍼레이션에 제약이 많음

2. 모든 입출력이 디스크를 통해 이뤄짐

  • 큰 데이터 배치 프로세싱에 적합
  • 어느정도 규모가 작은 데이터를 빠르게 처리하는 것에는 문제가 있음

3. Shuffling 이후에 Data Skew가 발생하기 쉬움

  • Reduce 태스크 수를 개발자가 지정해주어야함
  • Spark에서도 나타나는 문제임

 

위 포스팅은 [파이썬으로 해보는 Spark 프로그래밍 with 프로그래머스] 강의를 듣고 정리한 내용입니다

 
728x90
반응형