Pig Pig를 사용하면 더 쉽게 데이터를 처리할 수 있다. > Hadoop과 MapReduce 위에 구축되었기 때문에 이를 통해 매퍼와 리듀서를 작성하지 않고 MapReduce 작업을 할 수 있다. Apache Pig-> 매퍼나 리듀서를 작성하지 않고 데이터를 빠르게 분석할 수 있는 방법 MapReduce 개발 사이클 타임 MapReduce의 가장 큰 문제는 개발 사이클 타임 MapReduce 프로그램을 개발해 실행하고 원하는 작업을 수행하기까지 오랜 시간이 걸린다. >그래서 Pig가 등장 Pig는 MapReduce 위에서 작동하고 Pig Latin이라는 새 프로그래밍 언어를 사용 -> SQL과 비슷하다. 다른 점은 Pig는 절차형 언어라는 겁니다 아주 간단한 스크립트 양식을 사용해 단계별로 데이터 간에 여러 관계를 설정.
MapReduce MapReduce는 HDFS, YARN과 함께 제공되는 Hadoop의 핵심 기술. Hadoop에 내재된 기능이며 클러스터에 데이터의 처리를 분배. MapReduce는 데이터를 파티션으로 나눠서 클러스터에 걸쳐 병렬 처리되도록 한다 Data Mapper 매핑은 기본적으로 데이터를 변형시킨다 즉 데이터가 한 줄씩 들어오면 매퍼는 그 데이터를 변형시킨다. 키-값 쌍으로 전환 > 예를 들어 각 사용자가 시청한 영화의 수를 집계하려고 한다면, 키는 사용자의 ID, 값은 사용자가 평가한 영화가 될 것. 일반적인 python dict 자료구조와는 달리 중복된 키가 존재할 수 있음. 이 경우 ID=1의 사용자가 두개 이상의 영화를 평가한 것. 맵핑 단계에서 같은 키값이 나오는 것은 전혀 문제될 것이 없음. 들어오는 데이터에서 필요한 정보를 추출하고 이해할 수 있는 구조로 정리. 모든 입력 줄(input line)마다 매퍼는 중요한 데이터를 추출하고
HDFS > 빅데이터를 전체 클러스터에 분산해 안정적으로 저장하여 애플리케이션이 그 데이터를 신속하게 액세스해 분석할 수 있게함. HDFS는 대용량 파일들을 다루기 위해 만들어짐. 대용량 파일들을 작은 조각으로 나누어 클러스터 전체에 걸쳐 분산시키는데 최적화되어있다. 대용량 파일 즉 빅데이터를 '데이터 블록'으로 나눔. 기본값은 128MB 혹은 그 이하 대용량 파일을 블록으로 나눔으로써 더 이상 하드 드라이브의 용량에 제한되지 않게한다. HDFS는 이 대용량 파일을 분산해서 처리. 대용량 파일을 쪼개 여러 컴퓨터에 걸쳐 저장했다면 각 컴퓨터는 자기에게 저장된 데이터 블록을 동시에 처리할 수 있게된다. 데이터를 효율적으로 엑세스할 수 있도록 데이터 블록을 처리하는 컴퓨터가 해당 블록이 저장된 곳이랑 가까운 거리에 있도록 조정함. 단 하나의 블록만 저장하지 않는다. 모든 블록마다 두 개 이상의 복사본을 저장. 어
Sqoop > Hive는 Hadoop 클러스터를 관계형 데이터베이스처럼 사용하지만 실제로 데이터베이스를 갖는 것은 아니었다. 그러나 만약 MySQL과 같은 진짜 관계형 데이터베이스를 갖고 있고 Hadoop 클러스터에 데이터를 불러오거나 내보내고 싶을 수도 있을 때 Sqoop을 활용하여 할 수 있다. MYSQL 거대한 하드 드라이브에 연결되는 하나의 서버에 설치. 클러스터에 분산되지 않고 모든 것이 로컬에 있으므로 온라인 처리 프로세싱(OLTP)에 적절. 데이터베이스에서 빠르게 결과를 구해야 한다면 MySQL 같은 도구가 적절 Sqoop SQL과 Hadoop을 합친 이름. 대용량 데이터 세트를 Hadoop 클러스터에 가져오거나 내보내고 관리한다. MapReduce 작업을 통해 가능 함. 데이터베이스를 Hadoop으로 내보내려고 하면 Sqoop은 내부적으로 여러 매퍼를 작동한다.(데이터를 한 곳에서 다른 곳으로 옮기는 일이
Shcema on Read 관계형 데이터베이스에서는 Schema on Write 개념을 사용한다. 데이터베이스에 데이터를 입력하기전에 스키마를 정의. 데이터를 디스크에 저장할 때 이 스키마대로 시행. Hive는 구조화되지 않은 데이터를 가져와서 읽는 순간에 스키마를 적용한다. ex) 데이터는 탭으로 구분된 텍스트 파일이지만 실제로 구조화되지는 않은 상태 데이터가 뭘 나타내는지에 대한 정보가 없다. 하지만 Hive는 그 구조화되지 않은 데이터와 연관된 실제 스키마 데이터인 메타스토어를 가지고 있음. 텍스트 파일을 어떻게 해석할지 알려준다. 'CREATE TABLE ratings'라는 명령어를 입력하고 다양한 필드 이름과 유형을 지정.
Hive > Hive 기술을 통해 hadoop 클러스터를 관계형 데이터베이스처럼 사용할 수 있다. SQL을 사용해 Hadoop 클러스터에 걸쳐있는 데이터를 쿼리하는 간단하고 강력한 도구.(구조화된 쿼리 언어) HDFS 클러스터 전체에 걸쳐 저장된 데이터에 표준 SQL 쿼리를 실행. SQL을 MapReduce나 TEZ 명령어로 번역해서 작동. YARN 클러스터 관리자 위에서 실행. Hive는 SQL 쿼리를 매퍼와 리듀서로 분해하고 클러스터 전체에 걸쳐 어떻게 실행할지를 알아낸다. > 사용자의 관점에서는 데이터 웨어하우스를 사용하는 것처럼 SQL 데이터베이스에 쿼리하는 것과 같다. HiveQL MySQL 구문과 굉장히 비슷. SQL에서 할 수 있
Mesos 클러스터의 리소스를 관리하는 또 하나의 방법. YARN과 협업이 가능하다. Spark Hadoop 생태계에서 가장 흥미로운 기술. Spark는 YARN이나 Mesos중 어느 쪽을 기반으로 하든 데이터에 쿼리를 실행할 수 있음. Pyhon, Java, Scala를 사용해 스크립트를 작성. 클러스터의 데이터를 신속하고 효율적으로 처리가 가능하다. 많은 다양성을 갖고있음. 클러스터에 걸친 정보로 머신 러닝을 수행하는 SQL쿼리. 실시간으로 스트리밍되는 데이터를 처리하는 등. TEZ 방향성 비사이클 그래프 TEZ는 MapReduce의 일을 할 때 더 유리함. 쿼리실행에 더 효율적인 계획을 세우기 때문. Hive
https://www.softwaretestingclass.com/introduction-to-hadoop-architecture-and-components/ HDFS Hadoop 분산 파일 시스템 빅데이터를 클러스터의 컴퓨터들에 분산 저장하는 시스템. 데이터의 여분 복사본까지 만들어 데이터의 손실을 자동을 회복함. Hadoop의 데이터 저장 부분. YARN 'Yet Another Resource Negotiator'의 약어이며 '또 다른 리소스 교섭자'라는 뜻. YARN은 Hadoop의 데이터 처리 부분. 컴퓨터 클러스터의 리소스를 관리하는 시스템. 누가 작업을 언제 실행하고 어떤 노드가 추가 작업을 할 수 있고 누구는 할 수 없고 등을 결정. M
What is Hadoop Hadoop 플랫폼의 주요 벤더인 Hortonworks는 하둡을 이렇게 정의. > 범용 하드웨어로 구축된 컴퓨터 클러스터의 아주 방대한 데이터 세트틀 분산해 저장하고 처리하는 오픈 소스 소프트웨어 플랫폼 Hadoop 오픈 소스 한대의 PC가 아닌 컴퓨터 클러스터에서 작동하는 소프트웨어 묶음 Hadoop은 어느 데이터 센터에서 작동중인 컴퓨터 클러스터 전체에서 실행되도록 설계됨. 즉 Hadoop은 다수의 PC를 활용해 빅데이터를 다룬다. 분산저장 분산 저장은 Hadoop이 제공하는 주 기능. 한 개의 하드 드라이브에 국한되지 않는다. 빅데이터(1TB)를 처리할 때 클러스터에 컴퓨터를 더하기만 하면 그 컴퓨터는 하드 드라이브가 데이터 저장소의 일부가 됨. Hadoop은 클러스터의 모든 하드 드라이브에 걸쳐 분산돼 있는 모든 데이터를 단일 파일 시스템으로 보여줌.