전체 글 109

[Linux/Sqoop] Apache Sqoop에 대해 알아보자

Apache SqoopApache Sqoop은 관계형 데이터 베이스 (RDBMS)와 Hadoop 간의 데이터 전송을 효율적으로 처리하는 오픈 소스 도구이다.Sqoop을 사용해 데이터를 Hadoop으로 import 하거나 Hadoop에서 데이터베이스로 export 할 수 있다.  데이터 가져오기 (import)데이터를 관계형 데이터베이스에서 Hadoop의 분산 파일 시스템(HDFS), Apache Hive, Apache HBase 등으로 가져오는 과정 - Sqoop Import 명령어 실행sqoop import \ --connect jdbc:mysql://localhost/mydatabase \ --username myuser \ --password mypassword \ --table mytabl..

[Linux/Hive] 공공데이터 포털에서 데이터셋을 다운로드 받아 Hive에 적재해보자

https://www.data.go.kr/ 공공데이터 포털국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datasewww.data.go.kr 윈도우에서 데이터셋 다운로드 받고 리눅스 root에 전송→ 이 과정에서 csv 파일을 리눅스에서 열었을 때 한글이 깨져보이는 현상이 발생했다. - google colab에서 csv 파일을 전처리해서 문제를 해결한다.import pandas as pddf = pd.read_csv("아파트분양.csv")df = pd.read_csv("아파트분양.csv", encoding='utf-8', header = False)# 인덱스 제거하고 헤..

[Linux/Spark] Apache Spark에 대해 알아보자

Apache Spark Aparche Spark는 디스크 기반의 MapReduce와 달리 메모리 기반의 처리 방식을 사용해 높은 성능을 제공한다.Hadoop은 매번 중간 결과를 디스크 (하드웨어)에 저장한다.-> 데이터 처리 속도가 대폭 개선되었다-> 고성능, Functional programming Interface 메모리 가격이 하락하며 메모리 시장이 호황을 누리던 2012년 등장했다.-> 여러 단계 연산, 반복 연산은 중간 메모리에 저장하여 처리하는 것이 효율적 메모리에 데이터를 캐시하여 반복적인 데이터 액세스와 변환 작업을 빠르게 수행할 수 있다. Machine Learning과 같은 알고리즘처럼 반복 계산이 많은 경우 좋은 성능을 보인다.   Apache Spark의 핵심인 RDD (Resili..

[Linux/Hive] Apache Hive를 설치해보자

리눅스 환경에서 Apache Hive를 설치해보자. Firefox에 접속해 다음 링크에 접속해 다운받을 hive 패키지를 우클릭해 링크를 복사해준다.https://dlcdn.apache.org/hive/hive-3.1.3/ Index of /hive/hive-3.1.3 dlcdn.apache.org  - wget 명령어와 링크를 이용해 Hive 패키지를 다운로드 받기 - tar.gz 파일의 압축을 풀어준다 - apache-hive-3.1.3-bin 으로 된 파일 이름을 간단하게 apache-hive로 변경하기 Hive 환경 설정- 템플릿 파일을 변경해서 hive-env.sh 파일을 만들기 - hive-env.sh 파일에 하둡 홈 경로 설정하기gedit apache-hive/conf/hive-env.sh ..

[Linux/Spark] PySpark를 이용해 쿼리 조회하고 데이터 CRUD 해보자

JOIN - Join 실습을 하기 위한 DataFrame 생성하기 (Person, graduateProgram, sparkStatus)person = spark.createDataFrame([ (0, "Bill Chambers", 0, [100]), (1, "Matei Zaharia", 1, [500, 250, 100]), (2, "Michael Armbrust", 1, [250, 100])])\ .toDF("id", "name", "graduate_program", "spark_status")graduateProgram = spark.createDataFrame([ (0, "Masters", "School of Information", "UC Berkeley"), (2, "..

[Linux/Hive] Apache Hive에 대해 알아보자

Apache Hive대규모 데이터 웨어하우스 시스템을 위한 데이터 쿼리 및 분석 프레임워크이다.Hive는 Hadoop의 위에서 실행되며, 사용자가  SQL과 유사한 언어를 통해 Hadoop 분산 파일 시스템과 상호작용할 수 있게 해준다. Apache Hive의 특징1. 쿼리 언어HiveQL (HQL) : Hive는 SQL과 유사한 쿼리 언어인 HiveQL 또는 HQL을 사용한다.HiveQL은 표준 SQL 문법을 바탕으로 하며, 데이터를 쿼리하고 분석하는 데 필요한 기능을 제공한다.-> 사용자는 복잡한 MapReduce 작업을 작성하지 않아도 데이터 분석을 수행할 수 있다. 2. 데이터 모델 테이블: Hive는 데이터를 테이블 형태로 저장한다. 테이블은 데이터베이스 내의 논리적 구조로, 실제 데이터는 HD..

[Linux/Sqoop] Apache Sqoop을 설치해보자

Sqoop 다운로드firefox에서 sqoop-1.4.7.bin_hadoop-2.6.0.tar.gz 링크 복사- 링크 가져와서 wget 명령어로 패키지 다운로드 받기 - 다운로드 받은 tar.gz 파일 압축 풀기   Sqoop 환경 설정 - Sqoop 홈 경로 설정하기gedit ~/.bashrc - bashrc에서 수정한 내용을 source로 적용하고 sqoop/conf 하위에 있는 내용 확인하기source ~/.bashrccd sqoop/conf/ls -l  - sqoop 환경 템플릿 이름 바꿔서 복제 - sqoop  환경 열어서 하둡 홈 경로 및 하이브 홈 경로 설정하기gedit sqoop-env.sh

[Linux] SSH 접속 오류 Trouble Shooting

윈도우 OS에서 리눅스 서버로 파일을 전송하려고 했는데 다음과 같은 오류가 발생했다.   리눅스 Server를 새로 생성한 일이 있었다. 기존에 쓰던 서버의 IP 주소와 동일한 IP 주소를 가지도록 생성한 것이 문제였다. 그래서 ssh-keygen -R 192.168.111.100 명령어가 먹지 않았다.192.168.111.100 은 내가 사용하는 IP 주소 우선 기존의 가상 머신을 모두 밀고 새로운 서버를 구축해보았다. 그러나, 여전히 같은 오류가 발생했다. ssh-keygen -R 192.168.111.100 명령어를 cmd에서 다시 실행하고 파일 전송을 시도했더니 성공했다.  내 경우에는 기존 서버와 동일한 IP 주소에서 새로 서버를 설치해서 발생한 오류라고 판단된다. SSH client는 ~/.s..

OS/Linux 2024.08.22

[Linux/Hadoop] 외부에서 작성한 파이썬 파일을 Hadoop에 전송해보자

- jupyter lab에서 mapper.py 파일을 만들었다. - 윈도우 cmd 창에서 mapper.py 파일을 hadoop에 전송한다. - hadoop이 위치한 경로에서 ls 입력 후 이동한 파일 확인하고 ‘chmod +x mapper.py’ 코드 실행chmod : change mode, 권한을 부여할 수 있는 코드권한에는 r, w, x 가 있다r : read, 읽기 권한w : write, 쓰기 권한x : 실행 권한 - mapper.py 파일을 열어서 파이썬 인터프리터를 사용하겠다는 문장 추가하기#!/usr/bin/env python  - echo 명령어를 이용해 파이썬 파일 내용 실행해보기 - mapreduce.py 파일을 리눅스 환경에서 만들기 (mapper.py는 외부에서 만들어서 전송한 상태)..

[Linux/Spark] PySpark와 MySQL을 연동해보자

홈 디렉토리에 위치해있던 mysql-connector jar 파일을 spark 디렉토리로 이동시켰다. // mySQL과 PySpark 연동을 위해 세션 생성하기mysql_spark = SparkSession.builder.config('spark.jar','mysql-connector=java-5.1.46.jar')\.master('local').appName('pySpark_MySql').getOrCreate() // 1. 생성한 새로운 세션으로 데이터프레임 가져오기df = ( mysql_spark.read.format('jdbc')\ .option('url','jdbc:mysql://localhost:3306/epldatabase') .option('driver','com.mysql...