1. Apache NiFi란 무엇인가?1.1. 개요Apache NiFi는 데이터 흐름의 관리, 조정 및 자동화에 특화된 오픈 소스 소프트웨어입니다. 데이터 수집, 전송, 변환 및 처리의 전 과정에서 강력한 기능을 제공하여 기업의 데이터 통합 요구 사항을 충족시킵니다. NiFi는 직관적인 사용자 인터페이스와 다양한 프로토콜을 지원하여 데이터 엔지니어와 분석가들이 데이터를 효과적으로 관리할 수 있도록 돕습니다. 1.2. 역사와 배경Apache NiFi는 원래 미국 국가안보국(NSA)에서 개발되었으며, 2014년에 Apache Software Foundation에 기부되었습니다. 이후 커뮤니티의 활발한 참여와 기여를 통해 지속적으로 발전해 왔으며, 현재는 데이터 흐름 관리의 대표적인 도구로 자리 잡았습니다. ..
하둡(Hadoop) 클러스터를 운영하다보면 자주하는 작업은 아니지만, 간혹 데이터노드(datanode)를 제거해야 할 때가 있습니다. 예를 들면 해당 클러스터에 적재하게 될 데이터 양보다 지나치게 많은 데이터노드를 구성하여 일부 데이터 노드를 제거해서 다른 용도의 장비로 사용해야할 수도 있습니다. 혹은 어떤 데이터노드가 너무 노후되어 다른 데이터 노드로 교체해야할 경우에도 데이터노드의 제거 작업이 필요합니다. 이렇게 데이터노드의 제거가 필요할 경우, 제거할 데이터노드가 가지고 있는 데이터를 유실하지 않고 안전하게 데이터노드를 제거하는 방법에 대해 알아보도록 하겠습니다. 더보기 1. 데이터노드 제거 전 확인할 사항 2. dfs.hosts.exclude 사용 설정이 되어 있지 않은 경우 3. dfs.host..
Hadoop 클러스터를 운영하다 보면 Block의 복제 수를 3에서 2로 줄일 필요가 있는 경우도 생기고, 또는 종종 Datanode Disk fault 등으로 인해 설정해놓은 replication factor(dfs.replication 값)보다 블럭 수가 적어지는 Under Replicated block이 발생하는 경우도 있습니다. Under Replicated block이 발생할 경우, 대부분은 자동으로 replication factor를 유지하기 위해 block 복제를 진행하지만, 정말 드물게 자동으로 block이 replication factor까지 복제되지 않는 경우 조치 방법에 대해 알아보려고 합니다. 더보기 1. 파일의 복제 block 수 조정하기 2. Under Replicated Blo..
Hive와 Impala를 함께 사용하다 보면 Hive에서 만든 데이터베이스와 테이블을 Impala에서 사용하는 경우가 자주 발생하게 됩니다. 이때 아주 사소하면서도 자주 볼 수 있는 에러가 있습니다. 더보기 1. 에러메시지 2. 원인 3. 조치 1) 모든 테이블의 메타데이터를 갱신 2) 이미 추가되어 있는 테이블에 대한 메타데이터 갱신 1. 에러 메시지 ERROR : AnalysisException : Could not resolve table reference : 'test_db.test_table' Cloud not execute command : SELECT * FROM test_db.test_table 2. 원인 Impala에서 Meta data를 갱신해주지 않아, Hive에서 생성한 데이터베이스..
지난글에서 Apache Tez는 무엇이고 기존의 Hive 엔진인 MapReduce와는 어떻게 다른지에 대해 얘기했었습니다. 이번에는 실제로 Apache Tez를 다운받아서 구성하고 Yarn을 통해 Tez를 실행시켜 Word Count 예제까지 실행시켜 보려고 합니다. Apache Tez를 이용하기 위해서는 먼저 소스파일을 다운받아서 빌드를 진행해야합니다. 소스파일 다운로드 아래 링크의 Git에서 최신 릴리즈를 다운받으면 됩니다. github.com/apache/tez/releases Releases · apache/tez Apache Tez. Contribute to apache/tez development by creating an account on GitHub. github.com Apache Te..
Hive3 버전으로 넘어가면서 기존의 MapReduce 기반의 쿼리 엔진은 공식적으로 권장하지 않게 되었습니다. Hive3에서 MapReduce를 이용하여 쿼리를 실행시키면 "mapreduce deprecated" 라는 단어를 확인할 수 있습니다. MapReduce 엔진은 이전부터 워낙에 쿼리 속도 문제에 대한 이슈가 많았기 때문에 이로 인한 조치인 것으로 보입니다. 그리고 이렇게 Hive에서 MapReduce를 대체하기 위해 현재는 Apache Tez를 기본 엔진으로 권장하고 있습니다. 이에 이번 포스팅에서는 Apache Tez는 무엇인지에 대해 먼저 알아보려고 합니다. Tez VS MapReduce 우선 Apache Tez는 MapReduce와 동일하게 YARN 기반으로 실행되는 데이터 처리를 위한 ..
지난 글에서는 Erasure Coding(EC)란 무엇이고 EC의 알고리즘과 정책은 어떤 것이 있는지에 대해 이야기해 보았습니다. 2020/11/26 - [IT 정보/Hadoop Eco System] - Hadoop 3에서 Erasure Coding이란 - 1 Hadoop 3에서 Erasure Coding이란 - 1 앞선 글에서는 하둡 3버전을 도입해야하는 3가지 이유에 대해서 이야기 해보았습니다. 2020/11/15 - [IT 정보/Hadoop Eco System] - Hadoop 3 버전을 도입해야하는 3가지 이유 Hadoop 3 버전을 도입해야하는 3가 joonyon.tistory.com 이어서 이번 글에서는 그렇다면 우리는 EC를 사용하는 것이 정말 기존의 3 copy 복제 정책보다 좋기만 한 것..
앞선 글에서는 하둡 3버전을 도입해야하는 3가지 이유에 대해서 이야기 해보았습니다. 2020/11/15 - [IT 정보/Hadoop Eco System] - Hadoop 3 버전을 도입해야하는 3가지 이유 Hadoop 3 버전을 도입해야하는 3가지 이유 하둡은 1.0을 시작으로 2.0버전을 넘어 현재는 3.3버전까지 릴리즈가 되어 있습니다. 이렇게 많은 버전업이 진행되는 기간 동안 더 이상 하둡은 새로운 것이 아닌 빅데이터의 기반으로 자리 잡았 joonyon.tistory.com 이어서 이번에는 Erasure Coding에 대해 알아보도록 하겠습니다. 이번 Erasure Coding에 대한 글은 한번에 담기에는 부담이 있어 두 개의 포스팅으로 나눠서 이야기하려 합니다. 이번 글에서는 Erasure Cod..
하둡은 1.0을 시작으로 2.0버전을 넘어 현재는 3.3버전까지 릴리즈가 되어 있습니다. 이렇게 많은 버전업이 진행되는 기간 동안 더 이상 하둡은 새로운 것이 아닌 빅데이터의 기반으로 자리 잡았습니다. 그리고 아직까지는 많은 곳에서 하둡 3 버전보다는 2버전을 많이 사용하고 계시리라 예상됩니다. 그래서 이제는 하둡 2버전에서 3버전으로 넘어가야하는 이유에 대해 이야기해보려 합니다. Erasure Coding 하둡이 3버전으로 업그레이드 되면서 가장 눈에 띄었던 특징 중에 하나는 Erasure coding(EC)이 도입되었다는 것입니다. 기존 2버전의 하둡은 Hot data든, Cold data든 모두 같은 복제 정책(기본 3copy)을 가지고 보관해야만 했습니다. 이런 3copy 데이터 보관은 Fault..
안녕하세요. 린아저씨 입니다. 제가 처음 접한 하둡은 아파치 바닐라 하둡 버전이었지만, 실제 프로덕트 환경에서는 주로 Cloudera 배포판 하둡을 구축하고 운영해 왔습니다. 현 직장으로 이직을 하면서 이미 구축해 놓은 Cloudera 클러스터를 운영하게되면서 설치를 꽤 오래 안하게 되었습니다. 그래서 오늘은 오랜만에 설치 과정을 리마인드 할겸 Cloudera Manger를 이용해서 하둡 설치과정을 상세하게 포스팅하려고 합니다. 기존에 CDH5 버전을 설치해보신 분이라면 더욱 쉽게 하실 수 있으실 것입니다. 단 CDH6로 오면서 CM 스키마 생성 스크립트 위치등 소소한 몇가지가 변경된 부분이 있어 이 부분만 주의해 주시면 됩니다. 1. 설치 전 준비사항 모든 작업은 root 계정으로 진행 모든 노드의 r..
안녕하세요. 린아저씨 입니다. 오늘은 HDFS Corrupt 파일 확인 및 제거 방법에 대해 포스팅해보려고 합니다. 하둡 클러스터를 관리하다 보면 잦은 현상은 아니지만 간혹 HDFS 블록이 손상되는 경우가 발생하곤 합니다. 이때 이 손상된 블록을 Corrupt 파일 블록이라고 합니다. HDFS는 기본적으로 3 Copy를 유지하기 때문에 Corrupt 블록이 발생하더라도 데이터에 영향을 주지는 않습니다. 남아있는 2 copy의 블럭으로도 데이터를 읽는데는 아무 문제가 없기 때문입니다. 하지만 Corrupt 파일 블럭이 존재하면 이로 인해 정상적이 3 copy 블럭이 아닌 정상적인 2 copy 블럭과 깨진 1 copy 블럭이 존재하기 때문에 Corrupt 파일 블럭을 제거해주어야 합니다. 1. HDFS Co..
Spark 를 사용하면서 Jupyter Notebook에 연동해서 사용하기도 하지만, Cli 환경에서 바로 Spark-shell에 붙어서 사용하는 경우 많다. 이때, 발생할 수 있는 Warning 중 두가지 사례에 대해 정리하려고 한다. 현재 화면은 Spark 1.6 버전이지만, Spark 2.X 버전에서도 동일하게 발생할 수 있다. 1) 경고 메세지 Failed to created SparkJLineReader 원인 spark-shell을 실행시키는 유저의 OS 홈 디렉터리 문제로 Permission denied의 경우 유저 홈 디렉터리에 접근권한이 없는 경우 발생. 아예 홈디렉터리 없는 경우에는 No such file or directory 라는 메시지 발생. 해결 spark-shell 유저의 OS ..