본문 바로가기

빅데이터 부트캠프/Hadoop10

빅데이터 부트캠프 59일차 Spark 기본(DataFrame) 2- cache(), persist() = 일종의 전역변수 개념처럼 한번 로드한 데이터를 그 순간에만 부르는게 아니라 메모리상에 머무르도록 명령 (persist로는 저장공간과 같은 세부사항을 지정할 수 있음, cache는 X)- unpersist() = 적용되어있던 cache(), persist() 명령 해제- array_contains() = 컬럼의 시퀀스 데이터에서 특정 문자열이 있는지 없는지 반환  - Map은 일종의 파이썬의 딕셔너리 같은 개념- 데이터프레임에서는 키/값 지정을 Map("A"->"aa")와 같은 방법으로 지정함 - Map() = 키/값 데이터 생성- map_keys() = 맵의 키만 반환 - map_values() = 맵의 값만 반환 - map_.. 2022. 9. 29.
빅데이터 부트캠프 56일차 Spark 기본(DataFrame)- spark.createDataFrame(데이터, 스키마) = 해당 데이터로 해당 스키마에 맞춰서 데이터프레임 생성 (상세하게)- 시퀀스 데이터.toDF(컬럼명,컬럼명,..) = 해당 시퀀스 데이터로 스키마 없어도 알아서 데이터 프레임 생성 (편하게)(사용하는 시퀀스 데이터의 타입을 보통 seq,list로 사용하나 rbb도 가능)- StructType() = 스키마 객체 생성 (괄호안에 StructField를 이용해 각 열에 대한 속성 지정) - StructField(컬럼명, 데이터 타입, nullable 사용여부) -> 데이터프레임 컬럼 설정- StructType(array(StructField, StructField)) 형식 말고도 new StructType().a.. 2022. 9. 23.
빅데이터 부트캠프 55일차 Spark- MapReduce 형태의 클러스터 컴퓨팅 패러다임의 한계를 극복하고자 등장- Hadoop에 비하여 처리 속도가 빠름 (Hadoop은 Hard disk 이용, Spark는 RAM(memory) 이용)- Spark의 데이터 구조는 RDD (Reslient Distributed Dataset), Dataframe, Dataset - RDD의 묶음 = 파티션(Partition) - RDD는 스키마 X -> 보통 Dataframe(테이블) 형태로 표현 - Dataset = Dataframe- In-memory 연산을 이용- 객체 불변성을 가지고 있어 기존 데이터를 변경한 객체를 이용하려면 새로운 객체에 지정해야함 - In-memory 연산 + 객체 불변성 -> 처리 속도 향상 Spark 실행 순서- .. 2022. 9. 22.
빅데이터 부트캠프 45일차 SQOOP (SQL to Hadoop)- 관계형 데이터베이스(RDB)와 분산 파일 시스템(HDFS) 사이의 양방향 데이터 전송을 위해 설계된 오픈소스 소프트웨어- 기존에 존재하는 RDB에 있는 데이터를 HDFS로 전송※ Flume은 새로 생성된 데이터를 실시간으로 전송 & Hadoop 이외의 대용량 저장소로 전송 가능- sqoop import 시 primary key가 지정되어 있지 않으면 import 불가능- scoop은 리눅스에서 명령어를 입력해야 함 (MySQL, Hadoop X)- JDBC(Java Database Connectivity) = Java에서 DB에 접속할 수 있도록 하는 자바 API MySQL(RDB)에서 Hadoop으로 전송- sqoop import --connect jdbc:my.. 2022. 9. 6.
빅데이터 부트캠프 43일차 Flume - 분산 환경에서 대량의 스트리밍 데이터(로그 데이터 등)를 효율적으로 수집하는 Java 기반 오픈소스※ 로그 데이터(Log Data) = 서버에서 이루어지는 모든 작업에 대한 정보를 담고 있는 데이터- 외부 이벤트 발생시, 해당 데이터를 수집하여 Agent를 통해 원하는 저장소로 전송해줌- 빅데이터를 서버 컴퓨터에서 온전히 감당하기에는 무리가 있기 때문에 Flume을 통하여 데이터를 실시간으로 대용량 저장소로 전송하는 것이 주 목적 - 하나의 Agent는 Source, Channel, Sink로 구성- Source = 웹 서버로부터 로그 데이터 수집(출입문)- Channel = Source에서 받은 로그 데이터를 Sink로 전달하는 통로,- Sink = HDFS로 로그 데이터 전달 (나가는 .. 2022. 9. 2.
빅데이터 부트캠프 41일차 Pig 명령어 2- SUBTRACT(A,B) = 릴레이션 A의 데이터를 반환하는데 B와 같은 것이 있는것은 null로 변환하여 반환 (차집합)- SUM = 지정한 속성의 합계 반환- IN = 데이터의 속성과 조건을 입력하여 해당 속성에서 조건을 만족하는 데이터만 반환  - TOKENIZE = 지정한 문자열 기준(기본값은 빈칸)으로 각각의 문자열 데이터들을 분리하여 반환 (PigStorage와 유사)- TextLoader = 속성의 이름과 데이터 타입을 지정하지 않고 데이터 출력 (스키마 존재 X)- TOP(출력할 개수, 기준 속성, 적용할 릴레이션) = 지정한 속성을 기준으로 상위 데이터를 지정한 개수만큼 출력  (Top을 사용하기 위해서는 릴레이션을 사전에 그룹화를 해야함)- TOMAP(속성1,속성2).. 2022. 8. 31.
빅데이터 부트캠프 40일차 Pig- 대규모의 데이터를 쉽게 분석할 수 있도록 스크립트 수준의 언어를 제공하는 오픈소스 라이브러리 (Hadoop 기반)- Hadoop 상에서 구동하면 스크립트가 내부적으로 MapReduce로 수행- Pig가 설치되어 있다면 pig로 실행 (종료 명령은 quit)※ Linux는 따로 Pig를 설치해줘야하며 Horton에는 Pig가 설치되어있어 바로 사용가능- Pig가 실행되면 자동으로 Linux에서 Hadoop으로 접속- Pig로 Hadoop을 접속하면 hadoop fs를 적을 필요없이 Hadoop에서 리눅스 명령어 사용가능- Pig에서 ls 실행시 안에 데이터 타입이 나오는데 dir = 디렉터리 폴더, r 1 =  파일- Pig로 cat 실행시 다시 명령어 입력창으로 돌아오려면 ; 입력후 엔터- m.. 2022. 8. 30.
빅데이터 부트캠프 39일차 (Hadoop) MapReduce - map = 소스를 쪼개어 key:value 맵을 여러갱 생성 - reduce = 여러 map 값들을 하나의 결과값으로 만듦 ※ 컴파일의 편리성을 위해 maven 설치 (리눅스는 sudo install apt maven, Horton은 yam install maven) Hadoop WordCount 예제 - 단어의 개수를 파악할 때 사용 Hadoop TopN 예제 - 해당 텍스트에서 빈도수가 높은 단어들의 목록을 파악할 때 사용 2022. 8. 29.
빅데이터 부트캠프 38일차 (Hadoop) Hadoop 명령어 기본 - Hadoop은 기본적으로 명령어 입력 시 hadoop fs를 먼저 입력 - hadoop fs을 입력하지 않고 명령어를 입력하면 Hadoop이 아닌 Linux에 명령을 실행하는 것 - hadoop fs -ls = 홈 디렉터리 조회 - hadoop fs -ls -R / | grep test = 하위 디렉토리를 포함해서 test라는 문자가 파일명에 속한 파일들 목록 출력 - hadoop fs -mkdir = 디렉터리 생성 - hadoop fs -rm = 파일 삭제 - hadoop fs -put [복사할 파일이 있는 경로(리눅스)] [복사하여 붙여넣기할 경로(하둡)] = 리눅스에 있는 해당 파일을 hadoop의 지정 파일에 복사 - hadoop fs -get [복사할 파일이 있는 경.. 2022. 8. 26.
빅데이터 부트캠프 33일차 Hadoop 설치 전 세팅 (Java 설치, Name node&Data node 모두) - Hadoop은 Java로부터 파생되었기 때문에 Java 설치가 필수! - sudo add-apt-repository ppa:openjdk-r/ppa로 Java ppa APT 추가 - sudo apt-get install openjdk-8-jdk로 Java 8버전 설치 - sudo gedit ~/.bashrc 실행 후 맨 마지막 줄에 export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64 export PATH=$PATH:$JAVA_HOME/bin export PATH 추가 후 저장 (Java PATH 설정) - source ~/.bashrc로 bashrc 다시 한번 저장 - Jav.. 2022. 8. 19.