본문 바로가기

분류 전체보기52

Sqoop <-> Hive 명령어 **SQL의 DB에 있는 데이터를 Hive를 통해 hdfs에 저장 sqoop import --connect jdbc:mysql://localhost:3306/userdb?serverTimezone=UTC --username user1 --password user1pwd --table emp -m 1 --hive-import --fields-terminated-by "," --columns "id,name,salary,dept" --hive-import : SQL userdb의 emp테이블을 hive에 가져온다 --fields-terminated-by "," : emp테이블의 내용을 가져올 때 필드 구분자 지정 --columns "id,name,salary,dept" : emp테이블의 내용을 저장할 때 c.. 2021. 9. 28.
Sqoop & Hive 연결 세팅 1. .bashrc 편집 export HADOOP_CLASSPATH=$HADOOP_HOME/lib* export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/* 위 두줄을 .bashrc에 추가 2. source .bashrc 3. cd hive-3.1.2/lib 4. cp hive-exec-3.1.2.jar ~/sqoop-1.4.7/lib/ 5. cd hive-3.1.2/bin 6. hive --service metastore 2021. 9. 28.
Sqoop(MySQL <-> hdfs) 명령어 sqoop import --connect jdbc:mysql://localhost:3306/userdb?serverTimezone=UTC --username user1 --password user1pwd --table emp -m 1 --target-dir /user/data/mysql/emp import : SQL DB로부터 HDFS영역에 데이터를 불러온다. --table emp -m 1 : DB의 emp 테이블을 1개의 파일로 분산시켜 저장한다 --target-dir /user/data/mysql/emp : hdfs영역내의 저장할 디렉토리 지정 truncate table_name; - MySQL의 테이블 내용 비우기 : hdfs영역의 데이터를 SQL의 DB Table로 가져올 때 Table이 비우기 .. 2021. 9. 28.
Sqoop 설치 (feat. Linux) Sqoop - CLI (Command Line Interface), # CLI (Command Line Interface) GUI (Graphic User Interface) *Sq : SQL, oop : Hadoop -> Sq + oop = Sqoop Sqoop은 hadoop의 hdfs영역에 파일을 저장/처리하며 sql의 db와 hdfs를 연동하여 파일을 저장/처리하게 해준다. **설치 1. http://archive.apache.org/dist/sqoop/ Index of /dist/sqoop archive.apache.org 위 링크에서 최신버전의 *.gz 파일을 다운받는다. (작성 시점 최신버전 : sqoop-1.4.7.tar.gz) 2. 압축해제 tar -xvzf 파일명 (e.g. t.. 2021. 9. 27.
MySQL & Spark **설치 방법 https://computingforgeeks.com/how-to-install-mysql-8-on-ubuntu/ **삭제 방법 sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-* sudo rm -rf /etc/mysql /var/lib/mysql sudo apt-get autoremove sudo apt-get autoclean **mysql Connector 설치 https://downloads.mysql.com/archives/get/p/3/file/mysql-connector-java-8.0.24.tar.gz ** python에서 mysql 연동을 위한 spar.. 2021. 9. 27.
Spark를 이용한 hive 접근 1. hive-site.xml에 추가 hive.metastore.uris thrift://localhost:9083 spark.sql.warehouse.dir /user/hive/warehouse 2. hive --service metastore (metastore가 있는 디렉토리에서 실행) metastore 서버를 실행함 hive가 아닌곳에서의 접근을 위함 접근 경로는 위에 추가한 과 의 hive.metastore.uris를 thrift://localhost:9073에서 돌린다는 의미이므로 과 에 작성한 값을 참고하면 된다 3. sparkSession = (SparkSession.builder.appName("pyspark-hivemetastore7")\ .config('hive.metastore.ur.. 2021. 9. 23.
DataFrame 가공/처리 함수(feat. Spark) Spark의 DataFrame에는 여러가지 함수들이 존재한다. DataFrame에 들어있는 데이터를 처리/가공하기 쉽게 해주는 함수들이다. 이 함수들은 방대한 양의 데이터에서 필요한 정보만 필터링/추출 하는것이 매우 쉽다. 1. df.WithColumn() - df.withColumn('col_name','new value') -> 특정 컬럼의 값을 new_value로 변경 2. df.select() - df.select('col_name') -> 특정 컬럼 선택 3. df.filter() - df.filter( ( df.col_name == 'Smith') & (...) ) -> 특정 행 선택 (조건을 여러개 붙힐때는 '&'를 사용한다) 4. df.drop() - df.drop('col_name') -.. 2021. 9. 20.
프로그래머스_정수 삼각형 https://programmers.co.kr/learn/courses/30/lessons/43105 코딩테스트 연습 - 정수 삼각형 [[7], [3, 8], [8, 1, 0], [2, 7, 4, 4], [4, 5, 2, 6, 5]] 30 programmers.co.kr 접근법 문제는 Level 0 위치, 즉 숫자 피라미드의 맨 꼭대기부터 마지막 바닥 Level까지 내려갈 때 지나간 숫자들의 최대합을 구하여야 한다. 상위 Level에서 하위 Level로 내려갈 때는 일정한 규칙이 있다. - 피라미드 형태에서 상위 Level의 왼쪽 아래, 오른쪽 아래, 두 위치로만 내려갈 수 있다. 이 조건이 이 문제를 동적 계획법(Dynamic Programming)으로 간단히 풀 수 있도록 해주었다. 코드 설명 def.. 2021. 9. 17.
Spark로 Json파일 읽고 쓰기 Json은 데이터의 표준 전송 방식이다. 외부의 형태는 파이썬의 Dictionary(딕셔너리)와 매우 흡사하다. read.json() #Json파일 읽는법 #sparkSession.read.json() idColumn = StructField('id',IntegerType(),nullable=False) #컬럼명 중에서 'id'는 Int 형이다 라는 정의, False : Null값 허용 X nameColumn = StructField('name',StringType(),nullable=False) #컬럼명 중에서 'name'은 문자열 형이다 라는 정의, False : Null값 허용 X salaryColumn = StructField('salary',IntegerType(), nullable=True) .. 2021. 9. 16.