
데이터
Zeppelin
웹 기반 시각화툴 / 분석도구로서 데이터 습득, 탐색, 분석, 시각화, 공유, 협업 등을 노트북 안에서 모두 수행할 수 있도록 도와준다.
StackOverflow 질문 수: 1463
Github Stars : ★ 6475
사용 기업

드라마앤컴퍼니

카카오스타일

쿠팡

야놀자

하이퍼커넥트

카카오

우아한형제들

라인

네이버

스노우

네이버웹툰

11번가

엠큐닉

중고나라

SK플래닛

하나투어

온더룩

사람인에이치알
더 보기
네이버클라우드플랫폼
[이렇게 사용하세요!] Cloud Data Box : 네이버 검색, 쇼핑, AI 데이터를 내 비즈니스에 활용하기
[이렇게 사용하세요!] Cloud Data Box : 네이버 검색, 쇼핑, AI 데이터를 내 비즈니스에 활용하기최근 다양한 분야에서 데이터를 활용한 의사결정이 이루어지고 있습니다. 이러한 의사결정을 DDDM (Data-Driven Decision-Making) 방식이라고 부르며 이를 활용한 전략적 비즈니스 의사결정에 대한 논의가 활발하게 이루어지고 있습니다.최근 AI 연구 분야에서도 Andrew ng 교수님은 “실질적 AI 성능을 향상하는 방법은 코드의 개선이 아닌 데이터의 개선이다”라고 언급하며 Model-Centric 구조에서 Data-Centric 구조의 변화를 강조하고 있습니다.이처럼 데이터의 퀄리티가 중요해진 오늘날, 이번 포스팅에서는 네이버의 다양한 데이터를 제공받아 비즈니스에 필요한 인사이트를 도출할 수 있는 Cloud Data Box (클라우드 데이터박스) 활용 방법을 알아보도록 하겠습니다.(그림1) Cloud Data Box 서비스 컨셉우선 Cloud Data Box에서 제공하는 네이버 데이터의 종류는 크게 검색, 쇼핑, AI 학습용 데이터로 나뉩니다.# 검색 데이터사용자 속성별 검색/클릭 내역기기 / 성별 / 연령대 / 지역 / 검색어 / 클릭 영역 / 클릭 사용자 수검색어 코어커런스 매트릭스기기 / 성별 / 연령대 / 지역 / 검색어1 / 클릭 영역1 / 검색어2 / 클릭 영역2 / 클릭 사용자 수# 쇼핑 데이터사용자 속성별 상품 클릭 내역기기 / 성별 / 연령대 / 지역 / 상품 카테고리 / 유입 키워드 / 방문자 수사용자 속성별 상품 구매 내역기기 / 성별 / 연령대 / 지역 / 상품 카테고리 / 구매자 수상품 클릭 코어커런스 매트릭스기기 / 성별 / 연령대 / 지역 / 상품 카테고리1 / 유입 키워드1상품 카테고리2 / 유입 키워드2 / 함께 방문한 방문자 수상품 구매 코어커런스 매트릭스기기 / 성별 / 연령대 / 지역 / 상품 카테고리1 / 상품 카테고리2 / 함께 구매한 구매자 수# AI 학습용 데이터NLP 실험용 텍스트 데이터뉴스 기사에 나온 개체명(이름) 검색 후 해당 개체명과 연관된 위키피디아 페이지(ID)에 연결한 데이터어노테이션 이미지 데이터재활용 이미지 수집 및 레이블링 / 이미지에서 음식 영역을 바운딩 박스로 태깅한 데이터 이미지에 포함된 한글 OCR 어노테이션 데이터데이터의 디렉토리 구조를 살펴보면 아래와 같습니다.(그림2) 데이터 디텍토리 구조제공되는 데이터는 Cloud Data Box 사용자 가이드를 통해 더욱 자세하게 확인하실 수 있습니다.1. Cloud Data Box 구성그럼 Cloud Data Box가 어떻게 구성되어 있는지 아래 그림을 통해 알아보도록 하겠습니다.* 아래 설명은 Windows를 기준으로 하며, Mac의 경우 괄호 안에 포함하였습니다.(그림2) Cloud Data Box 구성Cloud Data Box 핵심 구성 요소Connect 서버에 안전하게 접속하기 위한 SSL VPN분석 환경 접속을 위한 Connect 서버AI 분석을 위한 TensorFlow 서버빅데이터
hadoop
zeppelin
네이버클라우드플랫폼
Data Forest에서 Spark, Hive로 데이터 처리하기 Part.2
지난 글(Part.1)에서는 네이버 클라우드 플랫폼 Data Forest에서 Zeppelin 앱을 생성하여 Spark Job과 Hive 쿼리를 실행해 봤습니다.이번에는 Zeppelin 노트북이 아니라 DEV앱을 생성하여 spark-submit beeline 과 같은 클라이언트를 사용해서 같은 작업을 진행해 보겠습니다.DEV 앱에는 Data Forest에서 제공하는 모든 서비스에 대한 개발 환경이 구성되어 있습니다. 따라서 스크립트를 실행하기 위한 사전 준비가 따로 필요하지 않습니다. Data Forest 앱이 아닌 VPC VM에서도 개발 환경 구성을 하면 아래 과정을 동일하게 진행할 수 있습니다.Data Forest App 생성하기DEV앱은 개발 환경이 설정되어 있는 서버를 생성합니다. 네이버 클라우드 플랫폼(ncloud.com) 콘솔 [Data Forest > App] 에서 + App 생성을 클릭하여 앱을 생성할 수 있습니다.앱이 STABLE 상태가 되면 생성이 완료된 것입니다.데이터 처리하기데이터 셋은 동일하며, 데이터 셋 업로드는 Part.1을 참고 부탁드립니다.1. spark 클라이언트 실행하기DEV앱에서 Spark 스크립트를 정상적으로 수행하려면 먼저 Kerberos 인증이 필요합니다. Keytab 사용과 인증은 가이드 참고 부탁드립니다. 인증이 정상적으로 되었다면 아래와 같이 확인할 수 있습니다.인증을 하지 않으면 org.apache.hadoop.security.AccessControlException 이 발생하므로 주의합니다.hdfs 클라이언트 명령어로 데이터 셋도 확인할 수 있습니다.인증 이외에 별도 설정은 필요하지 않습니다. 먼저 spark-shell 을 실행해 보겠습니다. Zeppelin 노트북과 마찬가지로 spark-shell 에서는 SparkContext , SparkSession 이미 생성되어 있는 것에 주의합니다.Zeppelin 노트북에서 썼던 코드를 그대로 실행할 수 있습니다.아래 코드는 Zeppelin 노트북에서 실행한 것과 동일합니다. :paste 로 paste 모드에 진입하여 코드를 쉽게 붙여넣기 할 수 있습니다. ctrl+D로 빠져나오면 됩니다.REPL 형태가 아니라, 소스코드를 jar로 빌드 하여 제출( spark-submit)할 수도 있습니다. 해당 작업은 1개의 argument만 필요로 합니다. 데이터 셋이 위치한 HDFS 경로를 지정하면 됩니다. 이후에 결과 파일도 해당 경로 아래 생성됩니다.소스코드는 Github에서 확인할 수 있습니다.작업을 제출하고 아래처럼 진행 상황이 콘솔에 출력됩니다.Spark Job을 제출하고 나면 Resource Manager UI에서 작업의 상태와 진행 로그를 확인 할 수 있습니다.Spark History Server UI에서 작업이 어떻게 실행되고 있는지 더 자세하게 알 수 있습니다.작업이 완료되면 아래처럼 지정한 HDFS 경로 아래 movie_rating 디렉토리가 생기고, 그 아래로 결과 Parquet 파일이 생성되었음을 확인할 수 있습니다.2. Hive 클라이
spark
zeppelin
네이버클라우드플랫폼
Data Forest에서 Spark, Hive로 데이터 처리하기 Part.1
네이버 클라우드 플랫폼 Data Forest는 빅데이터 처리를 위한 다양한 오픈소스 프레임워크를 제공합니다. 이번 페이지에서는 Data Forest에서 제공하는 Hadoop, Spark, Hive를 이용하여 데이터를 처리하고 저장하는 예제를 수행해보겠습니다. Spark로 영화정보와 평점데이터 셋 MovieLens 20M 을 처리하여 HDFS에 결과를 저장하고, 그 데이터로 Hive 테이블을 만들어보겠습니다.이번 페이지에서는 모든 처리를 Data Forest App에서 생성한 Zeppelin 노트북에서 진행하려고 합니다.Spark Job실행은 spark-submit , spark-shell (REPL) 같은 스크립트를 사용할 수 있습니다. Hive 쿼리 또한 beeline 같은 클라이언트를 실행해도 됩니다.이후 Part. 2에서는 DEV앱을 이용하여 spark-submit beeline 커맨드로 동일한 작업을 하는 방법도 소개하겠습니다.Data Forest App 생성하기Zeppelin앱은 Apache Zeppelin 서버를 생성합니다. 네이버 클라우드 플랫폼(ncloud.com) 콘솔 [Data Forest > App] 에서 + App 생성을 클릭하여 앱을 생성할 수 있습니다.앱 타입은 ZEPPELIN-0.8.1을 선택합니다.앱이 STABLE 상태가 되면 생성이 완료된 것 입니다.데이터 처리하기먼저 원본 데이터셋을 업로드 합니다. 실제 서비스에서는 Kafka, Flume등을 통해서 원본 로그 데이터 등을 HDFS에 저장하거나, RDBMS로 부터 Sqoop을 사용하여 원본 데이터를 HDFS에 보관할 수 있습니다. 여기서는 앞서 언급한 MovieLens 데이터셋의 .csv 파일을 HDFS에 직접 업로드 하도록 하겠습니다.HDFS 네임노드 UI 에 접속하여 /user/${USER} 디렉토리로 이동합니다. Upload 버튼을 클릭해서 rating.csv , movie.csv 파일을 업로드 합니다. 참고로 업로드 완료 된 파일을 클릭한 뒤 Head the file을 해보면 데이터가 어떻게 생겼는지 볼 수 있습니다.1. Zeppelin 앱 접속하기Zeppelin에 접속합니다. URL은 Zeppelin 앱의 [Quick links > zeppelin] 을 참고합니다.Quicklinks 에서 Zeppelin URL확인계정을 생성할 때 지정한 비밀번호를 사용하여 로그인 하면 됩니다.Zeppelin 로그인Notebook > +Create new note로 새로운 노트북을 생성합니다. Default Interpreter는 Spark로 지정합니다. Spark 코드에는 %spark 를 붙여서 인터프리터를 실행 시킵니다.Spark로 두 개의 .csv 파일로 부터 데이터프레임을 생성하고, 두 개의 데이터프레임을 조인하여 Parquet파일로 HDFS에 저장해 보겠습니다. 해당 Zeppelin 노트북의 전체 내용은 여기에서 다운로드 하여 Import할 수 있습니다.movie.csv , rating.csv 를 그대로 쓰는222 것이 아니라 새로운 컬럼을 만들고 변경하는
hive
spark
zeppelin
네이버클라우드플랫폼
네이버 클라우드 플랫폼 서비스를 활용한 Spark ETL 및 데이터 시각화-1부
이번 시간에는 네이버 클라우드 플랫폼의 상품들을 활용하여 데이터를 저장하고, 저장된 데이터를 오픈소스 Apache Spark를 활용하여 ETL 작업을 하고, 이를 분석 및 시각화를 해보도록 하겠습니다.이번 컨텐츠는 총 2부로 구성되어 있습니다. 1부에서는 오픈 데이터를 활용하여 Object Storage 데이터를 추출하고 다차원 데이터 분석을 위한 스키마로 변환하여 저장하는 작업을 수행하고, 2부에서는 1부에서 저장한 다차원 데이터를 분석하고 시각화하는 부분으로 나뉩니다.Cloud Hadoop 클러스터 생성Console에서 Cloud Hadoop 상품에 접속하여 클러스터 생성을 클릭합니다.클러스터 이름, 버전, Type 및 관리자 계정정보를 입력합니다.클러스터 버전을 Cloud Hadoop 1.2를 선택하고, Type을 Spark로 선택합니다.작업자 노드 개수를 3개로 늘립니다.클러스터에 접속하기 위한 인증키를 선택합니다.클러스터를 생성합니다.Cloud Hadoop 클러스터가 운영중 상태가 될때까지 기다립니다.Data Set준비Data Set이 저장될 Object Storage 버킷 및 폴더를 생성합니다.bucket_name/movielens/raw/여기서는 학습용으로 많이 사용하는 MovieLens 영화 평가 오픈 데이터 세트를 활용합니다. csv 파일로 zip으로 압축하여 제공되며, 데이터 관련 자세한 정보는 아래 URL에서 확인 합니다.URL : https://grouplens.org/datasets/movielens/latest/MovieLens의 여러 정보들중 movies, tags, ratings 데이터를 활용합니다.생성한 Cloud Hadoop 클러스터의 edge 노드에 접속하여 zip으로 압축된 데이터 셋을 다운로드 받습니다. (edge 노드 접속 방법은 Cloud Hadoop 가이드 문서 참고)다운로드 받은 zip 파일을 압축 해제합니다.Object Storage에 데이터를 업로드하기 위해 aws cli를 설치합니다.aws configure 를 통해 access key, secret key를 입력하여 aws s3 API를 사용하여 네이버 클라우드 플랫폼의 Object Storage로 접근하기 위한 준비를 합니다.자세한 방법은 Object Storage cli 가이드를 참고 합니다.Object Storage cli 사용 가이드 : https://cli.ncloud-docs.com/docs/guide-objectstorageObject Storage에 movies, ratings, tags csv 파일을 업로드 합니다.Object Storage에 데이터가 정상적으로 업로드 되었는지 확인합니다.ETL 작업Cloud Hadoop의 Spark를 활용해서 ETL 작업을 수행합니다.이번 블로그에서는 zeppelin을 활용해서 spark client 모드로 작업을 수행합니다. (spark job 워크플로우를 오케스트레이션하는 부분은 다루지 않습니다.)Zeppelin Spark Interpreter PropertiesSpark Submi
hadoop
spark
zeppelin
연관 기술 스택

Presto

Redash

Spark

Superset