国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

數據集成工具的使用(一)---Sqoop 從理論學習到熟練使用

verano / 2380人閱讀

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

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

一、理論學習篇

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 的任務是創建和維護與 Apache Hadoop 和結構化數據存儲的批量數據傳輸相關的軟件。我們可以理解為:Sqoop是將關系數據庫(oracle、mysql、postgresql等)數據與hadoop數據進行轉換的工具、

Sqoop官網:http://sqoop.apache.org/

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

與Sqoop同類的產品有 :DataX:阿里頂級數據交換工具

2、Sqoop原理架構

????????如下圖,我們可以看出,Sqoop架構是非常簡單的,Sqoop是hadoop生態系統架構中最簡單的框架。Sqoop1.4x版本由client端直接接入hadoop,任務通過解析生成對應的maprecue執行。

3、使用Sqoop將數據導入到HDFS流程解析

4、Sqoop從HDFS導出數據流程解析

二、熟練使用篇

(一)、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# 復制配置文件并重命名cp sqoop-env-template.sh sqoop-env.sh# vim sqoop-env.sh 編輯配置文件,并加入以下內容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 修改配置文件,注釋掉沒用的內容(也就是為了去掉警告信息)

4、修改環境變量

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

5、添加MySQL的連接驅動

# 添加MySQL連接驅動到$SQOOP_HOME/lib#這里是從HIVE中復制MySQL連接驅動到$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

(二)、準備MySQL數據

1.登錄MySQL數據庫并創建student數據庫

#登錄mysql -u root -p123456;#創建create database student;#切換use student

2.向student數據庫導入數據

方式一: 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運行SQL文件

導出MySQL數據庫的方法

mysqldump -u root -p123456 數據庫名>任意一個文件名.sql

(三)、import 從傳統的關系型數據庫導入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","

執行編寫的MySQLToHDFS.conf腳本文件

sqoop --options-file MySQLToHDFS.conf

注意事項:

1、–m 表示指定生成的Map任務個數,注意,個數不是越多越好,因為MySQL Server的承載能力有限

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

3、若指定的分割鍵數據分布不均勻,那么可能會導致數據傾斜問題

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

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

--username root  // 錯誤的// 應該分成兩行--usernameroot

6、當運行的時候報錯InterruptedException,不用擔心,這是hadoop2.7.6自帶的問題,忽略它就行

7、Sqoop讀取mysql數據實際用的是JDBC的方式,當數據量大的時候,效率不是很高

8、Sqoop底層是通過MapReduce完成數據導入導出的,并且只需要Map任務而不需要Reduce任務

9、每個Map任務會都生成一個文件

2、MySQLToHive

先會將MySQL的數據導出來并在HDFS上找個目錄臨時存放,( 默認為:/user/用戶名/ ),然后再將數據加載到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中創建testsqoop庫

hive> create database testsqoop;

執行腳本

sqoop --options-file MySQLToHIVE.conf

–direct

加上這個參數,可以在導出MySQL數據的時候,使用MySQL提供的導出工具mysqldump,可以加快導出速度,提高效率

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

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

-e參數的使用

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中創建student表

create "student","cf1"

執行腳本

sqoop --options-file MySQLToHBase.conf

(四)、 export操作 從HDFS、HIVE、HBASE… 導出到傳統的關系型數據庫

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表中的數據,不然會造成主鍵沖突

執行腳本

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的詳細幫助sqoop import --help

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/121949.html

相關文章

  • 學習Hadoop大數據基礎框架

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

    amc 評論0 收藏0
  • 數據遷移工具輔助向云端遷移

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

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

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

    sumory 評論0 收藏0

發表評論

0條評論

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