亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        使用Sqoop進(jìn)行數(shù)據(jù)遷移

        2022-09-07 12:00:38黃明輝
        科教導(dǎo)刊·電子版 2022年20期
        關(guān)鍵詞:指令數(shù)據(jù)庫

        黃明輝

        (湖北三峽職業(yè)技術(shù)學(xué)院電子信息學(xué)院,湖北 宜昌 443000)

        1 概述

        Sqoop是一種旨在有效地在ApacheHadoop和關(guān)系數(shù)據(jù)庫等結(jié)構(gòu)化數(shù)據(jù)存儲之間傳輸大量數(shù)據(jù)的工具,結(jié)構(gòu)化數(shù)據(jù)可以是MySQL、Oracle等RDBMS。Sqoop底層用MapReduce程序?qū)崿F(xiàn)抽取、轉(zhuǎn)換、加載,MapReduce良好的特性保證了并行化和高容錯率,而且相比 Kettle等傳統(tǒng)ETL工具,任務(wù)運(yùn)行在Hadoop集群上,減少了ETL服務(wù)器資源的使用情況。在特定場景上,抽取過程會有很大的性能提升。

        可以使用Sqoop工具將數(shù)據(jù)從關(guān)系數(shù)據(jù)庫管理系統(tǒng)導(dǎo)入(import)到Hadoop分布式文件系統(tǒng)中,或者將Hadoop中數(shù)據(jù)轉(zhuǎn)換導(dǎo)出(export)關(guān)系數(shù)據(jù)庫管理系統(tǒng),其功能如圖1所示。

        圖1 Sqoop功能

        (1)導(dǎo)入原理。

        在導(dǎo)入數(shù)據(jù)之前,Sqoop使用JDBC檢查導(dǎo)入的數(shù)據(jù)表,檢索出表的所有列以及列的SQL數(shù)據(jù)類型,并將這些SQL類型映射為Jave數(shù)據(jù)類型,在轉(zhuǎn)換后的MapReduce應(yīng)用中使用這些對應(yīng)的Jave類型來保存字段的值,Sqoop的代碼生成器使用這些信息來創(chuàng)建對應(yīng)表的類,用于保存從表中抽取的記錄。

        (2)導(dǎo)出原理。

        在導(dǎo)出數(shù)據(jù)之前,Sqoop會根據(jù)數(shù)據(jù)庫連接字符串來選擇一個導(dǎo)出方法,對于大部分系統(tǒng)來說,Sqoop會選擇JDBC。Sqoop會根據(jù)目標(biāo)表的定義生成一個Jave類,這個生成的類能夠從文本中解析出記錄數(shù)據(jù),并能夠向表中插入類型合適的值,然后啟動一個MapReduce作業(yè),從HDFS中讀取源數(shù)據(jù)文件,使用生成的類解析出記錄,并且執(zhí)行選定的導(dǎo)出方法。

        2 Sqoop安裝配置

        Sqoop的安裝配置非常簡單,前提是部署Sqoop工具的機(jī)器需要具備Jave和Hadoop的運(yùn)行環(huán)境。本文是以穩(wěn)定版本Sqoop-1.4.6為例。

        (1)Sqoop安裝。

        將安裝包上傳至Hadoop01主點(diǎn)的/export/software目錄中,并解壓至/export/serers路徑下,然后對解壓包進(jìn)行重命名,具體指令如下:

        $tar–zxvf sqoop-1.4.6.bin_hadoop-2.0.4-alpha.tar.gz–C/export/servers/

        $mv sqoop-1.4.6.bin_hadoop-2.0.4-alpha/dqoop-1.4.6

        執(zhí)行完上述Sqoop的下載解壓后,就完成了Sqoop的安裝。

        (2)Sqoop配置。

        先進(jìn)入Sqoop解壓包目錄中的conf文件夾目錄下,將 sqoop-env-template.sh文件復(fù)制并重命名為 sqoopenv.sh,對該文件中的如下內(nèi)容進(jìn)行修改。

        exportHDAOOOP_COMMON_HOME=/export/servers/hadoop-2.7.4

        export HDAOOOP_MAPRED_HOME=/export/servers/hadoop-2.7.4

        export HIVE_HOME=/export/servers/hadoop-1.2.1-bin

        在sqooop-evn.sh配置文件中,需要配置的是Sqoop運(yùn)行時必環(huán)境的安裝目錄,Sqoop運(yùn)行在Hadoop之上,因此必須指定Hadoop環(huán)境。另外在配置文件中還要根據(jù)需要自定義配置HBase、Hive和Zookeeper等環(huán)境變量。

        為了后續(xù)方便Sqoop的使用和管理,可以配置Sqoop系統(tǒng)環(huán)境變量。使用“vi/etc/profile”指令進(jìn)入profile文件,在文件底部進(jìn)一步添加如下內(nèi)容類配置Sqoop系統(tǒng)環(huán)境變量。

        export SQOOP_HOME=/export/servers/sqoop-1.4.6

        export PATH=$PATH:$SQOOP_HOME/bin

        配置完成后直接保存退出,接著執(zhí)行“source/etc/profile”指令刷新配置文件即可。

        當(dāng)完成前面Sqoop的相關(guān)配置后,還需要根據(jù)所操作的關(guān)系數(shù)據(jù)庫添加對應(yīng)的JDBC驅(qū)動包,用于數(shù)據(jù)庫連接。本文將針對MySQL數(shù)據(jù)庫進(jìn)行遷移操作,所以需要將mysql-connector-java-5.1.23.jar包上傳至 Sqoop解壓包目錄的lib文件夾下。

        (3)Sqoop效果測試。

        執(zhí)行完上述 Sqoop的安裝配置操作后,就可以執(zhí)行Sqoop相關(guān)指令來驗(yàn)證Sqoop的執(zhí)行效果了,具體指令如下。

        $sqoop list-databases

        -connect jdbc:mysql://localhost:3306

        --username root–password 123456

        上述指令中,sqooplist-databases用于輸出連接本地的MySQL數(shù)據(jù)庫中的所有數(shù)據(jù)庫名,如果正確返回指定地址的MySQL數(shù)據(jù)庫信息,那么說明Sqoop配置完成。

        3 使用Sqoop將數(shù)據(jù)從MySQL導(dǎo)入HDFS

        (1)數(shù)據(jù)準(zhǔn)備。

        在MySQL中有一個表student,表的數(shù)據(jù)如下表:

        表1 student數(shù)據(jù)表

        確定HDFS、MySQL已啟動。

        cd/usr/local/hadoop

        ./sbin/start-dfs.sh

        Service mysql restart

        mysql-u roop-p

        (2)在MySQL中新建一張表并插入一些數(shù)據(jù)。

        use mysql;

        create table student(

        sid char(10)primary key,

        sname char(10)not null,

        sex varchar(10)null,

        birthday date null,

        class char(16)null,

        dep varchar(20)null

        );

        insert into student values(10001,'gopal','male','2002-06-02','1','computer');

        insertintostudentvalues(10002,'andy','male','2002-01-05','2','electromechanical');

        insert into student values(10003,'lily','female','2001-05-06','3','computer');

        導(dǎo)入表的所有數(shù)據(jù)至HDFS

        ./bin/sqoop import

        --connect jdbc:mysql://localhost:3306/mysql

        --username root

        --password'hadoop'

        --table student

        -m l

        --fields-terminated-by' '

        檢查導(dǎo)入結(jié)果

        通過hdfs命令檢查導(dǎo)入結(jié)果:

        hdfs dfs-cat/user/hadoop/student/part-m-00000

        10001,gopal,male

        10002,andy,male

        10003,lily,female

        4 作用Sqoop將數(shù)據(jù)從HDFS導(dǎo)出MySQL

        在導(dǎo)出前需要先創(chuàng)建待導(dǎo)出的表的結(jié)構(gòu),如果導(dǎo)出的表在數(shù)據(jù)庫中不存在會報(bào)錯;如果重復(fù)導(dǎo)出表,表中的數(shù)據(jù)也會重復(fù)出現(xiàn)。

        (1)在MySQL下創(chuàng)建表。

        create table student_demo(

        sid char(10)primary key,

        sname char(10)not null,

        sex varchar(10)null,

        birthday date null,

        class char(16)null,

        dep varchar(20)null

        );

        (2)指定分隔符導(dǎo)出表的所有列。

        ./bin/sqoop export

        --connect jdbc:mysql://localhost:3306/mysql

        --username root

        --password'hadoop'

        --table student_demo

        --fields-terminated-by' '

        --lines-terminated-by' '

        --export-dir path/user/hadoop/student

        -m l

        在MySQL Shell界面輸入select*from student_demo查看導(dǎo)出表的數(shù)據(jù),如圖1所示。

        圖1

        說明:每執(zhí)行一次,數(shù)據(jù)都會插入MySQL中,所以在執(zhí)行之前根據(jù)需要將表中的數(shù)據(jù)刪除后再導(dǎo)入。

        猜你喜歡
        指令數(shù)據(jù)庫
        聽我指令:大催眠術(shù)
        ARINC661顯控指令快速驗(yàn)證方法
        LED照明產(chǎn)品歐盟ErP指令要求解讀
        電子測試(2018年18期)2018-11-14 02:30:34
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        殺毒軟件中指令虛擬機(jī)的脆弱性分析
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        數(shù)據(jù)庫
        一種基于滑窗的余度指令判別算法
        国产精品偷伦视频免费手机播放| 天堂在线资源中文在线8| 色婷婷一区二区三区四| 亚洲色图在线免费视频| 亚洲精品中文字幕一区二区| 免费人成视频x8x8入口| 亚洲男人天堂2019| 日韩精品精品一区二区三区| 国产精品老熟女乱一区二区| 日日摸天天摸97狠狠婷婷| 性高湖久久久久久久久| 亚洲V日韩V精品v无码专区小说 | 国产精品亚洲综合天堂夜夜| 成人av天堂一区二区| 免费国产一区二区视频| 国产动作大片中文字幕| 在线观看免费a∨网站| 无码中文字幕久久久久久| 国产色婷亚洲99精品av网站| 青青草中文字幕在线播放| 国产成人无码精品久久久露脸| 国产一区二区内射最近更新| 亚洲av无码专区在线电影| 亚洲视频在线看| 亚洲av网一区天堂福利| 国产又大大紧一区二区三区| 激情在线一区二区三区视频| 亚洲国产av精品一区二区蜜芽| 欧美日本国产三级在线| 欧洲人体一区二区三区| 精品亚洲国产日韩av一二三四区 | 国产精品无码无在线观看| 91精品福利观看| 久久精品网站免费观看| 国产精品一区二区三区av在线| 亚洲国产欧美在线观看| 中文无码成人免费视频在线观看 | 精品国产一区二区三广区| 亚洲av成人精品一区二区三区| 波多野结衣乳巨码无在线| 久99久精品免费视频热77|