기술나눔

Hadoop-23 Sqoop 데이터 MySQL에서 HDFS로(부분) SQL에서 데이터 생성 HDFS 클러스터 Sqoop 가져오기 jdbc ETL MapReduce

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

장 내용

이전 섹션에서는 다음 콘텐츠를 완료했습니다.

  • 데이터를 생성하는 SQL 스크립트 작성
  • 종속 서비스 시작: HDFS, Hive, YARN
  • Sqoop은 모든 데이터를 Hive로 가져옵니다.
  • MapReduce 상태 보기, HDFS 결과 보기

배경 소개

여기에 각각 2C4G로 구성된 3개의 공용 네트워크 클라우드 서버가 있어 제가 배울 수 있는 Hadoop 학습 환경을 구축하고 있습니다.
예전에 VM 가상머신에 구축한 적이 있었는데 메모를 하나도 남기지 않았네요. 이번에는 며칠 전에 집어온 머신 3대를 활용해 빠르게 공용 네트워크에 구축해 보았습니다. 그것을 경험해 보세요.

  • 2C4G 번호 h121
  • 2C4G 번호 h122
  • 2C2G No.h123

여기에 이미지 설명을 삽입하세요.

지침

Apache Sqoop 于 2021 年 6 月迁入 Attic。
Apache Sqoop의 임무는 Apache Hadoop 및 구조화된 데이터 스토리지와 관련된 대규모 데이터 전송 소프트웨어를 만들고 유지하는 것입니다.
비록 오래된 프로젝트일지라도 시간이 충분하다면 제대로 공부해 보시면 도움이 될 것입니다! ! !

부분 가져오기: --query

스크립트 실행

sqoop import 
--connect jdbc:mysql://h122.wzk.icu:3306/sqoop 
--username hive 
--password [email protected] 
--target-dir /root 
--append 
-m 1 
--fields-terminated-by "t" 
--query 'select gname, serialNumber, price, stock_number,
create_time from goodtbl where price>88 and $CONDITIONS;'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

上述参数的解释:

  • 쿼리 문의 where 부분에는 '$CONDITIONS'가 포함되어야 합니다.
  • 쿼리 뒤에 큰따옴표를 사용하는 경우 $CONDITIONS 앞에 전송 기호를 추가하여 쉘이 자신의 변수라고 생각하지 않도록 해야 합니다.

과제

Sqoop이 MapReduce 작업을 시작하는 것을 볼 수 있습니다.
여기에 이미지 설명을 삽입하세요.

실행을 기다리는 중

이 시점에서 작업이 할당되기 시작했습니다. Map -> Reduce
여기에 이미지 설명을 삽입하세요.

결과 보기

작업이 완료된 것을 볼 수 있습니다
여기에 이미지 설명을 삽입하세요.

부분 가져오기: 열 지정

스크립트 실행

sqoop import 
--connect jdbc:mysql://h122.wzk.icu:3306/sqoop 
--username hive 
--password [email protected] 
--target-dir /root 
--delete-target-dir 
--num-mappers 1 
--fields-terminated-by "t" 
--columns gname,serialNumber,price 
--table goodtbl
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

上述参数的解释:

  • 한 열에 여러 개의 열이 포함된 경우 쉼표로 구분하고 공백을 추가하지 마세요! ! !

과제

위 내용과 일치하여 반복되는 내용은 포함되지 않고 일부만 차단됩니다.
여기에 이미지 설명을 삽입하세요.

부분 가져오기: --where

스크립트 실행

sqoop import 
--connect jdbc:mysql://h122.wzk.icu:3306/sqoop 
--username hive 
--password [email protected] 
--target-dir /root 
--delete-target-dir 
-m 1 
--fields-terminated-by "t" 
--table goodtbl 
--where "price>=68"
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

과제

위 사항에 준하여 내용, 결과 등은 기본적으로 반복되며 삭제되지 않습니다.

이미지 설명을 추가해주세요