본문 바로가기

Computer Science/Bigdata(hdoop, spark, hive)

[Hadoop/Spark] MapReduce란 무엇인가?(Mapper, reducer) MapReduce란? Apache Hadoop MapReduce는 방대한 양의 데이터를 처리하는 작업을 작성하기 위한 소프트웨어 프레임워크이다. 입력 데이터는 독립적인 청크로 분할된다. 각 청크는 클러스터의 노드에서 동시에 처리된다. MapReduce 작업은 두 함수로 구성된다. Mapper: 입력된 데이터를 소비하고 분석하며(일반적으로 필터 및 정렬 작업) 튜플을 내보낸다.(키-값 쌍) Reducer: mapper에서 나온 튜플을 소배하고 매퍼 데이터에서 더 작고 결합된 결과를 생성하는 요약 작업을 수행한다. 분산처리를 하기 좋은 형태로 만들어 처리한다고 생각하면 쉽다. Spark도 MapReduce처리 방식을 지원한다. 예시를 통한 설명 다음 WordCount 예시를 보면 각 단계가 어떤일을 하는지가.. 더보기
[PySpark] 연산자 우선순위 이슈 - 'py4j.Py4JException: Method or([class java.lang.Integer]) does not exist' pyspark에서 and, or, not에 대해서 다음과 같은 이슈가 발생할 수 있다 py4j.Py4JException: Method or([class java.lang.***]) does not exist py4j.Py4JException: Method and([class java.lang.***]) does not exist py4j.Py4JException: Method not([class java.lang.***]) does not exist 내 경우에는 다음과 같이 or를 사용하면서 발생 # 잘못된 코드 .filter(col('row_num')== 2 | col('row_cnt') == 1) 에러로그 py4j.Py4JException: Method or([class java.lang.Intege.. 더보기
[spark] YARN spark-submit deadlock (spark job 멈춤현상) spark 2.0.2 기준 가끔 YARN에서 spark job을 수행할 때 어느 지점에서 다음 stage로 진행되지 않는 경우가 있다. spark 초보시절에 진짜 메모리도 늘려보고 별 짓을 다 해봤지만 원인을 찾지 못했다. 최근 며칠간 열심히 container의 상태도 보고 여러가지 설정을 해보았고 구글링을 열심히 해보았지만 답을 찾지 못했다. 하지만 실험적으로 내가 내린 결론은 Too many tasks resource management에서 발생하는 deadlock이다. Deadlock이 아닐수도 있고 멈춤(Stop)현상 또는 Bottleneck이라고도 볼 수 있다. (하지만 3일이상 돌렸는데도 progress가 전혀없는거 보면 deadlock인 것 같다) 문제가 발생했던 job의 특징은 다음과 같았.. 더보기
[Spark/Scala] 스파크, 스칼라 버전확인 스파크를 사용하다보면 버전에 따라 지원하는 라이브러리가 달라 확인이 필요한 경우가 있어 정리 spark 버전 1. spark cli로 확인: spark-shell sc.version spark-submit --version 2. spark context로 확인(노트북): sc = SparkContext() spark = SparkSession(sc) println(sc.version) 스칼라버전(스파크 내) 1. spark cli로 확인: scala -version 2. scala 프로퍼티로 확인(노트북): println(scala.util.Properties.versionString) 노트북 결과화면 더보기