본문 바로가기

Hadoop38

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.
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.
DataFrame과 Schema(스키마) (feat. Spark 스키마란 데이터 자료의 구조, 자료의 표현 방법, 자료 간의 관계 정의한 데이터의 '구조'이다. from pyspark.sql import SparkSession sparkSession = SparkSession.builder.appName('spark_test_2').getOrCreate() lines = sparkSession.read.csv('/home/hdoop/py-scripts/employee.csv') print(type(lines)) lines = lines.toDF('id','name','salary','job') lines.show() lines.printSchema() #데이터의 구조를 보여준다. 위 코드는 반정형 데이터인 csv데이터를 DataFrame객체로 받아서 컬럼명을 설정하고.. 2021. 9. 16.