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에서 할 수 있