成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

數(shù)據(jù)集成工具的使用(一)---Sqoop 從理論學(xué)習(xí)到熟練使用

verano / 2397人閱讀

本期與大家分享的是,小北精心整理的大數(shù)據(jù)學(xué)習(xí)筆記,數(shù)據(jù)采集工具Sqoop 的詳細(xì)介紹,希望對大家能有幫助,喜歡就給點(diǎn)鼓勵吧,記得三連哦!歡迎各位大佬評論區(qū)指教討論!

???制作不易,各位大佬們給點(diǎn)鼓勵!
???點(diǎn)贊? ? 收藏? ? 關(guān)注?
???歡迎各位大佬指教,一鍵三連走起!

一、理論學(xué)習(xí)篇

1、Sqoop簡介

????????在阿帕奇閣樓(The Apache Attic)中,Sqoop是這樣介紹的:(Apache Sqoop mission was the creation and maintenance of software related to Bulk Data Transfer for Apache Hadoop and Structured Datastores.) Apache Sqoop 的任務(wù)是創(chuàng)建和維護(hù)與 Apache Hadoop 和結(jié)構(gòu)化數(shù)據(jù)存儲的批量數(shù)據(jù)傳輸相關(guān)的軟件。我們可以理解為:Sqoop是將關(guān)系數(shù)據(jù)庫(oracle、mysql、postgresql等)數(shù)據(jù)與hadoop數(shù)據(jù)進(jìn)行轉(zhuǎn)換的工具、

Sqoop官網(wǎng):http://sqoop.apache.org/

Sqoop的版本:(兩個版本完全不兼容,sqoop1使用最多)
sqoop1:1.4.x
sqoop2:1.99.x

與Sqoop同類的產(chǎn)品有 :DataX:阿里頂級數(shù)據(jù)交換工具

2、Sqoop原理架構(gòu)

????????如下圖,我們可以看出,Sqoop架構(gòu)是非常簡單的,Sqoop是hadoop生態(tài)系統(tǒng)架構(gòu)中最簡單的框架。Sqoop1.4x版本由client端直接接入hadoop,任務(wù)通過解析生成對應(yīng)的maprecue執(zhí)行。

3、使用Sqoop將數(shù)據(jù)導(dǎo)入到HDFS流程解析

4、Sqoop從HDFS導(dǎo)出數(shù)據(jù)流程解析

二、熟練使用篇

(一)、Sqoop的安裝

1、上傳安裝包并解壓(到指定目錄)

tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /usr/local/soft/

2、修改sqoop的文件夾名字

mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop-1.4.6

3、修改sqoop的配置文件

# 切換到sqoop配置文件目錄cd /usr/local/soft/sqoop-1.4.6/conf# 復(fù)制配置文件并重命名cp sqoop-env-template.sh sqoop-env.sh# vim sqoop-env.sh 編輯配置文件,并加入以下內(nèi)容export HADOOP_COMMON_HOME=/usr/local/soft/hadoop/hadoop-2.7.6export HADOOP_MAPRED_HOME=/usr/local/soft/hadoop/hadoop-2.7.6/share/hadoop/mapreduceexport HBASE_HOME=/usr/local/soft/hbase-1.4.6export HIVE_HOME=/usr/local/soft/hive-1.2.1export ZOOCFGDIR=/usr/local/soft/zookeeper/zookeeper-3.4.6/confexport ZOOKEEPER_HOME=/usr/local/soft/zookeeper/zookeeper-3.4.6# 切換到bin目錄cd /usr/local/soft/sqoop-1.4.6/bin# vim configure-sqoop 修改配置文件,注釋掉沒用的內(nèi)容(也就是為了去掉警告信息)

4、修改環(huán)境變量

vim /etc/profile# 將sqoop的目錄加入環(huán)境變量export SQOOP_HOME=/usr/local/soft/sqoop-1.4.6export PATH=$SQOOP_HOME/bin

5、添加MySQL的連接驅(qū)動

# 添加MySQL連接驅(qū)動到$SQOOP_HOME/lib#這里是從HIVE中復(fù)制MySQL連接驅(qū)動到$SQOOP_HOME/libcp /usr/local/soft/hive-1.2.1/lib/mysql-connector-java-5.1.49.jar /usr/local/soft/sqoop-1.4.6/lib/

6、測試安裝

# 打印sqoop版本sqoop version

# 測試MySQL連通性sqoop list-databases -connect jdbc:mysql://master:3306?useSSL=false -username root -password 123456

(二)、準(zhǔn)備MySQL數(shù)據(jù)

1.登錄MySQL數(shù)據(jù)庫并創(chuàng)建student數(shù)據(jù)庫

#登錄mysql -u root -p123456;#創(chuàng)建create database student;#切換use student

2.向student數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)

方式一: mysql shell

source /root/student.sql;source /root/score.sql;

方式二: linux shell

mysql -u root -p123456 student</root/student.sqlmysql -u root -p123456 student</root/score.sql

方式三: 使用Navicat運(yùn)行SQL文件

導(dǎo)出MySQL數(shù)據(jù)庫的方法

mysqldump -u root -p123456 數(shù)據(jù)庫名>任意一個文件名.sql

(三)、import 從傳統(tǒng)的關(guān)系型數(shù)據(jù)庫導(dǎo)入HDFS、HIVE、HBASE…

1、 MySQLToHDFS

編寫腳本,并保存為MySQLToHDFS.conf文件

import--connectjdbc:mysql://master:3306/student?useSSL=false--usernameroot--password123456--tablestudent--m2--split-byage--target-dir/sqoop/data/student1--fields-terminated-by","

執(zhí)行編寫的MySQLToHDFS.conf腳本文件

sqoop --options-file MySQLToHDFS.conf

注意事項(xiàng):

1、–m 表示指定生成的Map任務(wù)個數(shù),注意,個數(shù)不是越多越好,因?yàn)镸ySQL Server的承載能力有限

2、當(dāng)指定的Map任務(wù)個數(shù)大于1時,那么就需要結(jié)合--split-by參數(shù),用于指定分割鍵,以用來確定每個map任務(wù)應(yīng)該到底讀取哪一部分的數(shù)據(jù),最好要指定數(shù)值型的列,最好指定列為主鍵(或者是分布均勻的列,這樣可以避免每個map任務(wù)處理的數(shù)據(jù)量差別過大)

3、若指定的分割鍵數(shù)據(jù)分布不均勻,那么可能會導(dǎo)致數(shù)據(jù)傾斜問題

4、分割的鍵最好指定為數(shù)值型的列,而且字段的類型為int、bigint這樣的數(shù)值型

5、編寫腳本的時候,注意事項(xiàng):例如:--username參數(shù),參數(shù)值不能和參數(shù)名同一行

--username root  // 錯誤的// 應(yīng)該分成兩行--usernameroot

6、當(dāng)運(yùn)行的時候報(bào)錯InterruptedException,不用擔(dān)心,這是hadoop2.7.6自帶的問題,忽略它就行

7、Sqoop讀取mysql數(shù)據(jù)實(shí)際用的是JDBC的方式,當(dāng)數(shù)據(jù)量大的時候,效率不是很高

8、Sqoop底層是通過MapReduce完成數(shù)據(jù)導(dǎo)入導(dǎo)出的,并且只需要Map任務(wù)而不需要Reduce任務(wù)

9、每個Map任務(wù)會都生成一個文件

2、MySQLToHive

先會將MySQL的數(shù)據(jù)導(dǎo)出來并在HDFS上找個目錄臨時存放,( 默認(rèn)為:/user/用戶名/ ),然后再將數(shù)據(jù)加載到Hive中,加載完成后,會將臨時存放的目錄刪除

編寫腳本,并保存為MySQLToHIVE.conf文件

import --connectjdbc:mysql://master:3306/student?useSSL=false--usernameroot--password123456--tablescore--fields-terminated-by"/t"--lines-terminated-by "/n"--m3--split-bystudent_id--hive-import--hive-overwrite--create-hive-table--hive-databasetestsqoop--hive-tablescore--delete-target-dir

在Hive中創(chuàng)建testsqoop庫

hive> create database testsqoop;

執(zhí)行腳本

sqoop --options-file MySQLToHIVE.conf

–direct

加上這個參數(shù),可以在導(dǎo)出MySQL數(shù)據(jù)的時候,使用MySQL提供的導(dǎo)出工具mysqldump,可以加快導(dǎo)出速度,提高效率

需要將master上的/usr/bin/mysqldump分發(fā)至 node1、node2的/usr/bin目錄下

scp /usr/bin/mysqldump node1:/usr/bin/scp /usr/bin/mysqldump node2:/usr/bin/

-e參數(shù)的使用

import --connect jdbc:mysql://master:3306/student --username root --password 123456 --fields-terminated-by "/t" --lines-terminated-by "/n" --m 2 --split-by student_id --e "select * from score where student_id=1500100011 and $CONDITIONS" --target-dir /testQ --hive-import --hive-overwrite --create-hive-table --hive-database testsqoop --hive-table score2

3、MySQLToHBase

編寫腳本,并保存為MySQLToHBase.conf

import --connect jdbc:mysql://master:3306/student?useSSL=false--username root --password 123456--table student--hbase-table student--hbase-create-table--hbase-row-key id --m 1--column-family cf1

在HBase中創(chuàng)建student表

create "student","cf1"

執(zhí)行腳本

sqoop --options-file MySQLToHBase.conf

(四)、 export操作 從HDFS、HIVE、HBASE… 導(dǎo)出到傳統(tǒng)的關(guān)系型數(shù)據(jù)庫

1、HDFSToMySQL

編寫腳本,并保存為HDFSToMySQL.conf

export--connectjdbc:mysql://master:3306/student?useUnicode=true&characterEncoding=UTF-8--usernameroot--password123456--tablestudent-m1--columnsid,name,age,gender,clazz--export-dir/sqoop/data/student1/--fields-terminated-by ","

先清空MySQL student表中的數(shù)據(jù),不然會造成主鍵沖突

執(zhí)行腳本

sqoop --options-file HDFSToMySQL.conf

(五)、查看sqoop help

sqoop help21/04/26 15:50:36 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6usage: sqoop COMMAND [ARGS]Available commands:  codegen            Generate code to interact with database records  create-hive-table  Import a table definition into Hive  eval               Evaluate a SQL statement and display the results  export             Export an HDFS directory to a database table  help               List available commands  import             Import a table from a database to HDFS  import-all-tables  Import tables from a database to HDFS  import-mainframe   Import datasets from a mainframe server to HDFS  job                Work with saved jobs  list-databases     List available databases on a server  list-tables        List available tables in a database  merge              Merge results of incremental imports  metastore          Run a standalone Sqoop metastore  version            Display version informationSee "sqoop help COMMAND" for information on a specific command.
# 查看import的詳細(xì)幫助sqoop import --help

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/121949.html

相關(guān)文章

  • 學(xué)習(xí)Hadoop大數(shù)據(jù)基礎(chǔ)框架

    摘要:大快的大數(shù)據(jù)通用計(jì)算平臺,已經(jīng)集成相同版本號的開發(fā)框架的全部組件。,更是集成了大快的大數(shù)據(jù)一體化開發(fā)框架開發(fā)框架提供了大數(shù)據(jù)搜索自然語言處理和人工智能開發(fā)中常用的二十多個類,通過總計(jì)一百余種方法,實(shí)現(xiàn)了倍以上的開發(fā)效率的提升。 什么是大數(shù)據(jù)?進(jìn)入本世紀(jì)以來,尤其是2010年之后,隨著互聯(lián)網(wǎng)特別是移動互聯(lián)網(wǎng)的發(fā)展,數(shù)據(jù)的增長呈爆炸趨勢,已經(jīng)很難估計(jì)全世界的電子設(shè)備中存儲的數(shù)據(jù)到底有多少,...

    amc 評論0 收藏0
  • 數(shù)據(jù)遷移工具輔助向云端遷移

    摘要:如果我們可以克服一些數(shù)據(jù)遷移的挑戰(zhàn),將一個數(shù)據(jù)倉庫以及其數(shù)據(jù)分析工具從數(shù)據(jù)中心中的專用服務(wù)器轉(zhuǎn)移到基于云的文件系統(tǒng)和數(shù)據(jù)庫就可以解決這個問題。數(shù)據(jù)遷移工具輔助向云端遷移從數(shù)據(jù)庫抽取數(shù)據(jù)很容易,從數(shù)據(jù)庫中有效挖掘大容量數(shù)據(jù)確是一項(xiàng)挑戰(zhàn)。 云計(jì)算和數(shù)據(jù)倉庫是合理的一對。云存儲可以按需擴(kuò)展,云可以將大量服務(wù)器貢獻(xiàn)于某一具體任務(wù)。數(shù)據(jù)倉庫通用功能是本地?cái)?shù)據(jù)分析工具,受到計(jì)算和存儲資源的限制,同時也受...

    scq000 評論0 收藏0
  • 如何克服云端數(shù)據(jù)倉庫數(shù)據(jù)遷移問題?

    摘要:如果我們可以克服一些數(shù)據(jù)遷移的挑戰(zhàn),將一個數(shù)據(jù)倉庫以及其數(shù)據(jù)分析工具從數(shù)據(jù)中心中的專用服務(wù)器轉(zhuǎn)移到基于云的文件系統(tǒng)和數(shù)據(jù)庫就可以解決這個問題。數(shù)據(jù)遷移工具輔助向云端遷移從數(shù)據(jù)庫抽取數(shù)據(jù)很容易,從數(shù)據(jù)庫中有效挖掘大容量數(shù)據(jù)確是一項(xiàng)挑戰(zhàn)。 云計(jì)算和數(shù)據(jù)倉庫是合理的一對。云存儲可以按需擴(kuò)展,云可以將大量服務(wù)器貢獻(xiàn)于某一具體任務(wù)。數(shù)據(jù)倉庫通用功能是本地?cái)?shù)據(jù)分析工具,受到計(jì)算和存儲 資源的限制,同時也...

    sumory 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<