본문 바로가기

IT 지식/빅데이터 & 분석17

Hive와 HDFS Hive는 HDFS에 저장된 파일, 디렉토리 구조에 대한 메타 데이터를 가지고 이를 RDB처럼 테이블로 제공하고, SQL을 활용할 수 있는 툴을 제공한다. 이 말은 무엇을 의미할까? 한 마디로 Hive의 데이터 중 메타 데이터와 HDFS에 저장된 데이터가 별도라는 이야기이다. 메타 데이터는 항상 HIVE가 관리한다. 그렇다면 HDFS에 저장된 데이터는? HDFS에 저장된 데이터의 관리 주체에 따라 HIVE의 테이블은 두 가지로 나뉠 수 있다.Managed Table : Hive가 HDFS 내의 데이터도 관리한다.External Table : Hive가 HDFS 내의 데이터까지 관리하지는 않는다. Managed Table일반 RDB처럼 CREATE TABLE 쿼리를 사용할 경우 생성되는 테이블이다. 메타 .. 2024. 5. 2.
Hive의 메타스토어로 MariaDB를 설정했을 때 나는 에러 Hive는 메타데이터를 자체적으로 저장할 수도 있지만, 특정 DB를 설정해 해당 DB에 메타데이터를 저장할 수도 있다. 이번에 새로운 프로젝트의 개발 및 인프라 구축을 맡게되었다. 그래서 요구사항대로 MariaDB를 메타스토어로 하는 Hive 2.3.6을 설치하려고 했다. 설치는 이전과 같이 진행했다. https://123okk2.tistory.com/414 JAVA-HIVE/HBASE 간 통신_Hadoop/HIVE/HBase 설치 프로젝트를 진행하던 중, 빅데이터 플랫폼인 하둡의 대표적인 RDB인 Hive와, NoSQL DB인 HBase에 데이러틀 적재해야 하는 프로그램을 짜야할 일이 생겼다. Hadoop 기반 개발은 처음이기에 꽤 많이 헤멨 123okk2.tistory.com 위 게시글에서 추가로 한.. 2024. 2. 26.
NIFI 설치 및 사용법 현재 재직중인 회사가 빅데이터를 주로 다루는 회사이다보니, 프로그램 구축이 끝나고난 후 해당 프로그램을 통해 모인 데이터를 데이터 마트에 옮겨주는 작업까지 해야할 일이 종종 생겼다. 지난 프로젝트에서는 위의 작업을 Hue UI 내에서 Oozie와 Sqoop, 그리고 Hive의 유틸인 Beeline과 직접 만든 java application을 이용해서 데이터 마트 적재 플로우를 구축했다. 하지만 이번 프로젝트에서는 Hue가 설치되어 있지 않아 위와 같은 방법을 사용할 수 없었다. 그래서 대신 NIFI를 이용해 데이터 마트를 구축하기로 결정했다. nifi nifi란 데이터 ETL 툴 중 하나로, 분산환경에서 대량의 데이터를 수집하기에 용이한 프로그램이다. nifi는 실시간 처리에 적합하고, 웹 UI를 지원하.. 2023. 5. 21.
JAVA-HIVE/HBASE 간 통신_HBase 통신 HBase는 Hadoop에 데이터를 저장하는 일종의 NoSQL DB라고 볼 수 있다. 이전 포스팅인 Hive의 경우, 기존 RDB와 DDL을 제외하면 대부분이 비슷했었지만, HBase는 HBase만의 문법이 존재했고, 이는 Java Application에도 적용되었다. CREATE - CREATE ALTER - ALTER DROP - DROP INSERT - PUT UPDATE - PUT DELETE - DELETE SELECT - GET/SCAN 현 포스팅에서는 MyBatis가 아닌 HBase 자체 문법을 사용해 HBase와 통신하는 방법을 다룰 것이다. 또한 각 칼럼이 칼럼패밀리-칼럼퀄리파이어로 구성되는데, 지금 포스팅에서는 칼럼 = 칼럼패밀리 = 칼럼퀄리파이어로 구성해서 진행할 예정이다. 먼저 HB.. 2023. 1. 22.
JAVA-HIVE/HBASE 간 통신_Hive 통신 Hive는 HDFS에 데이터를 저장하고 이를 RDB처럼 보여주는 Hadoop의 데이터베이스이다. Hive는 Java의 HIVE-JDBC 드라이버와 HIVESERVER2 간의 연동을 통해 쉽게 접근할 수 있다. 구글링 결과 JPA를 적용할 수 도 있을 것으로 보이는데, 이번 프로젝트에서는 DML뿐 아니라 DDL도 사용해야 했기에 JPA를 사용하지 않았다. 그래서 JPA 대신 MyBatis를 적용했고, 현 포스팅에서도 Mybatis를 사용한 Hive 접근을 다룰 예정이다. 1. 프로젝트 생성 우선 프로젝트를 다음과 같이 생성했다. Maven Java : 1.8 Spring Boot : 2.7.7 Dependency : Lombok, MyBatis Framework 다음으로 Hive에 접근하기 위한 Depen.. 2023. 1. 22.
JAVA-HIVE/HBASE 간 통신_Hadoop/HIVE/HBase 설치 프로젝트를 진행하던 중, 빅데이터 플랫폼인 하둡의 대표적인 RDB인 Hive와, NoSQL DB인 HBase에 데이러틀 적재해야 하는 프로그램을 짜야할 일이 생겼다. Hadoop 기반 개발은 처음이기에 꽤 많이 헤멨었고, 언젠가 또 Hadoop 기반 개발을 해야할 지 모르는 상황이 발생하면 이번처럼 헤매지 않기 위해 간단한 Java를 통한 HIVE/HBASE 연동 방법을 코드로 구현하는 방법을 대략적으로 적어놓고자 한다. 우선 Java Application과 연동되기 위한 Hadoop 인프라를 먼저 설치한다. Hadoop이 설치될 서버는 다음과 같이 구성했다. OS : CentOS 7.9 ROM : 32GB RAM : 8GB 사실 RAM이 중요한데, 로컬 컴퓨터에 램의 용량이 크지 않아 8GB로 설정했다.. 2023. 1. 21.
Apache Bigtop을 이용한 Hadoop 설치 이전 포스팅에서 이어진다. https://123okk2.tistory.com/400 멀티노드에 Hadoop 설치해보기 Hadoop 하둡은 빅데이터의 처리를 위한 자바 기반의 오픈소스 프레임워크로, 야후의 더그 커팅이 '넛치' 라는 검색 엔진을 개발하는 과정에서 대용량의 비정형 데이터를 철이하기 위해 구글의 GFS 123okk2.tistory.com 이전 포스팅에서 확인할 수 있다시피 멀티노드에 Hadoop을 설치하는 작업을 수행해보았다. 겉보기에는 정상적으로 설치가 완료되긴 했으나, 그렇다고 장담할 수도 없었다. 이유라면 아래와 같았다. 메뉴얼이 별도로 명확하게 존재하지 않아 인터넷의 여러 글들을 종합해 설치했으므로 정상적으로 설치가 된 것인지 확신할 수 없다. 각 에코시스템을 테스트하는 방법을 몰라 확.. 2022. 10. 24.
멀티노드에 Hadoop 설치해보기 Hadoop 하둡은 빅데이터의 처리를 위한 자바 기반의 오픈소스 프레임워크로, 야후의 더그 커팅이 '넛치' 라는 검색 엔진을 개발하는 과정에서 대용량의 비정형 데이터를 철이하기 위해 구글의 GFS와 MapReduce 관련 논문을 참고하여 개발한 기술이다. 기존에는 데이터 처리를 하나의 고사양 컴퓨터에서 수행했다. 하지만 하둡은 빅데이터의 처리를 위해 하나의 컴퓨터가 아닌, 여러 컴퓨터를 사용하는 방식을 채택했다. 상세하게 말하자면 여러 대의 컴퓨터를 클러스터화 시켜 병렬로 연결하고, 이를 토대로 동시 처리 속도를 높이는 기술을 채택했다고 볼 수 있다. 하둡의 장점으로는 시스템을 중단하지 않고도 장비 추가가 가능하다. 병렬적으로 컴퓨터들을 이어놓았으니 당연한 일이다. 그리고 이러한 특징으로 인해 일부 장비.. 2022. 10. 23.
[시계열 분석 모델] AR, MA, ARIMA 시계열 데이터 시계열 데이터란, 시간의 순서에 따라 관찰되고 나열된 데이터이다. 이는 시퀀스 데이터의 일종으로, 과거 정보가 미래 정보에 영향을 끼치고, 이러한 특성으로 인해 한 시점의 데이터 단독으로는 예측 및 분석이 불가능하다. 정상성과 비정상성 정상성이란 다음 항목들을 만족하는 시계열이다. 평균이 일정해야 한다. 분산이 시점에 의존하지 않아야 한다. 공분산은 시차에만 의존한다. 즉, 시점 자체에 의존하지 않는다. 한 마디로 표현하자면, 관찰을 하는 시간에 상관 없이 일정한 평균과 분산을 갖고, 공분한은 시차에만 의존한 데이터이다. 그래서 특정 시기, 혹은 특정 순간에 값이 크게 변동되는 추세나 계절성이 있는 시계열은 정상성을 만족하지 않는 비정상 시계열이다. 그런데 당연히 현실 세계의 시계열 데이터.. 2021. 10. 12.
[빅데이터] 빅데이터 분석 단계 출처 : https://book.naver.com/bookdb/book_detail.nhn?bid=14412152 빅데이터 분석과 활용 현장 전문가가 직접 전하는4차 산업혁명 시대에 어울리는 빅데이터 구축 노하우!이 책은 4차 산업혁명 시대에 왜 빅데이터가 중요한가에 대해 말하고, 실제로 빅데이터를 구축하려면 어떠한 기 book.naver.com *해당 글은 학습을 목적으로 위의 도서 내용 중 일부 내용만을 요약하여 작성한 포스팅입니다. 상세한 내용 및 전체 내용 확인을 원하신다면 도서 구매를 추천드립니다. 빅데이터 분석의 전체 과정 빅데이터 분석 과정은 데이터를 모으는 수집, 이를 저장하는 저장, 통계, 텍스트 마이닝, 머신러닝 등을 활용한 분석, 그리고 이를 전달하는 리포팅&시각화 단계가 있다. 이에.. 2021. 8. 8.
[빅데이터] Spark & Zeppelin ​ Apache Spark는 2011년 버클리 대학의 AMPLab에서 개발되어 아파치 재단의 오픈소스로 관리되고 있는 인메모리 기반의 대용량 데이터 고속 처리 엔진으로, 범용 분산 클러스터 컴퓨팅 프레임워크이다. Apache Spark는 다음과 같은 특징을 가진다. 1) 인메모리 기반의 빠른 처리 기존의 하둡의 작업처리인 맵리듀스는 작업의 중간 결과를 디스크에 쓰는 과정을 거쳤고, 이로 인해 작업 속도가 떨어지는 결과가 생겼다. 그에 반해 스파크는 중간 결과를 디스크가 아닌 메모리에 저장을 하는 방식을 채택했고, 이로 인해 반복 작업의 처리 효율이 높아졌다. 2) 다양한 언어 제공 Java, Python, R, Scala 등 다양한 언어를 제공한다. 3) 다양한 컴포넌트 제공 추가적인 소프트웨어의 설치 .. 2021. 7. 30.
[빅데이터] Sqoop & Flume Sqoop과 Flume은 하둡에서 데이터를 수집하는 데 사용되는 프로그램들이다. Sqoop의 경우에는 기존 DB에 탑재된 데이터를 그대로 하둡의 DB에 가져오게 되고, Flume은 이벤트 스트리밍 위주로, 이벤트 데이터를 하둡으로 전달하는 역할을 담당한다. Sqoop 먼저 Sqoop은 앞서 서술하였듯, 기존 DB, 그 중에서도 RDBMS와 하둡 간 데이터를 전송할 수 있도록 설계된 자바 기반의 오픈소스 소프트웨어이다. 간단한 CLI를 활용해 오라클, MySQL 등의 RDBMS에서 특정 테이블 혹은 조건에 맞는 데이터를 HDFS로 옮길 수 있고, 이를 Hive, Pig, HBase 등으로 바로 옮겨 확인할 수 있다. 물론, 반대의 경우도 가능하다. 맵 리듀스의 맵 만을 사용하는 것이 특징이다. Sqoop .. 2021. 7. 30.