日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Linux下安裝并使用sqoop

sqoop它是一款開源的工具,主要用于在Hadoop(Hive)與傳統(tǒng)的數(shù)據(jù)庫(mysql、postgresql…)間進(jìn)行數(shù)據(jù)的傳遞,可以將一個關(guān)系型數(shù)據(jù)庫(例如 : MySQL ,Oracle ,Postgres等)中的數(shù)據(jù)導(dǎo)進(jìn)到Hadoop的HDFS中,也可以將HDFS的數(shù)據(jù)導(dǎo)進(jìn)到關(guān)系型數(shù)據(jù)庫中。

在尉犁等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站制作、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需網(wǎng)站設(shè)計,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,全網(wǎng)整合營銷推廣,外貿(mào)網(wǎng)站制作,尉犁網(wǎng)站建設(shè)費(fèi)用合理。

sqoop-1.4.7安裝配置流程

(1) Sqoop環(huán)境前提:

  • Hadoop
  • 關(guān)系型數(shù)據(jù)庫(MySQL/Oracle)
  • HBase
  • Hive
  • ZooKeeper

(2) 解壓sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz安裝包到目標(biāo)目錄下:

  • tar -zxvf .tar.gz -C 目標(biāo)目錄

(3) 為后續(xù)方便,重命名Sqoop文件夾:

  • mv sqoop-1.4.7.bin__hadoop-2.6.0/ sqoop-1.4.7

(4) 修改配置文件:

  • 進(jìn)入sqoop-1.4.7/conf路徑,重命名配置文件:

    • mv sqoop-env-template.sh sqoop-env.sh
  • 修改sqoop-env.sh信息:(若配置了環(huán)境變量,可通過

    echo $XXXXX_HOME
    

    查詢安裝位置)

    • vi sqoop-env.sh

    • #Set path to where bin/hadoop is available
      
      export HADOOP_COMMON_HOME=Hadoop安裝路徑
      
      
      
      #Set path to where hadoop-*-core.jar is available
      
      #export HADOOP_MAPRED_HOME=Hadoop安裝路徑
      
      
      
      #set the path to where bin/hbase is available
      
      #export HBASE_HOME=HBase安裝路徑
      
      
      
      #Set the path to where bin/hive is available
      
      #export HIVE_HOME=Hive安裝路徑
      
      
      
      #Set the path for where zookeper config dir is
      
      #export ZOOCFGDIR=ZooKeeper 配置文件夾 路徑
      
      復(fù)制代碼
      

(5) 關(guān)聯(lián)Hive:

  • cp /XXX/hive/conf/hive-site.xml /XXX/sqoop-1.4.7/conf/

(5) 配置環(huán)境變量:

  • 修改配置文件:

    • vi /etc/profile
  • 增加以下內(nèi)容:

    • export SQOOP_HOME=sqoop安裝路徑
    • export PATH=$PATH:$SQOOP_HOME/bin
  • 聲明環(huán)境變量:

    • source /etc/profile

(6) 啟動查看版本號

  • sqoop version

(7) 添加驅(qū)動:

  • 導(dǎo)入MySQL驅(qū)動到sqoop/lib下
  • 導(dǎo)入Oracle驅(qū)動到sqoop/lib下

3. Sqoop操作

(1) 常用參數(shù):

  • 參數(shù)查看:Sqoop官網(wǎng) -> documentation -> Sqoop User Guide

  • import 導(dǎo)入數(shù)據(jù)到集群

  • export 從集群導(dǎo)出數(shù)據(jù)

  • create-hive-table 創(chuàng)建hive表

  • import-all-tables 指定關(guān)系型數(shù)據(jù)庫所有表到集群

  • list-databases 列出所有數(shù)據(jù)庫

  • list-tables 列出所有數(shù)據(jù)庫表

  • merge 合并數(shù)據(jù)

  • codegen 獲取某張表數(shù)據(jù)生成JavaBean并打Jar包

(2) import——Sqoop的導(dǎo)入操作:

  • 功能:MySQL/Oracle –> HDFS/Hive

  • 修改MySQL訪問權(quán)限:

    • update user set host='%' where host='localhost';
    • delete from user where Host='127.0.0.1';
    • delete from user where Host='bigdata01';
    • delete from user where Host='::1';
    • flush privileges;
    • use mysql;
    • select User, Host, Password from user;
    • 查看權(quán)限:
    • 修改權(quán)限為所有用戶都可訪問:
  • 操作命令:

    • 準(zhǔn)備工作:
    • 導(dǎo)入命令:
    • 開啟hive服務(wù)
    • 在hive中創(chuàng)建好要導(dǎo)入的對應(yīng)表
    • FAILED: SemanticException [Error 10072]: Database does not exist: XXXXXXXX
    • 報錯原因:Sqoop沒有關(guān)聯(lián)Hive
    • 解決方法:
    • cp /XXX/hive/conf/hive-site.xml /XXX/sqoop-1.4.7/conf/
    • ERROR tool.ImportTool: Import failed: org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://bigdata01:9000/XXXXXXXXXX already exists
    • 報錯原因:hdfs中存在同名路徑
    • 解決方法:
    • 指定新路徑或者刪除hdfs中原文件
    • ERROR tool.ImportTool: Import failed: java.io.IOException: java.lang.ClassNotFoundException: org.apache.hadoop.hive.conf.HiveConf
    • 報錯原因:hive環(huán)境變量配置缺失
    • 解決方法:——Hadoop環(huán)境加入Hive依賴
    • source /etc/profile
    • export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:$HIVE_HOME/lib/*
    • vi /etc/profile
    • 修改配置文件:
    • 增加以下內(nèi)容:
    • 聲明環(huán)境變量:
    • sqoop import --connect jdbc:mysql://bigdata01:3306/數(shù)據(jù)庫名 --username root --password 密碼 --table 表名 --num-mappers 1 --hive-import --fields-terminated-by "\t" --hive-overwrite --hive-table hive數(shù)據(jù)庫名.表名
    • 在Hive中可以看到指定表中已傳入數(shù)據(jù)信息
    • 可能報錯1:
    • 可能報錯2:
    • 可能報錯3:
    • 導(dǎo)出命令:
    • Linux本地查看hdfs上傳結(jié)果:
    • 使用query對數(shù)據(jù)進(jìn)行過濾:
    • 直接過濾字段:
    • sqoop import
      --connect jdbc:mysql://bigdata01:3306/數(shù)據(jù)庫名 # 連接MySQL
      --username root # 用戶名
      --password XXXXXX # 密碼
      --table 表名 # 上傳至HDFS的表
      --target-dir /YYYYYYY # HDFS目標(biāo)文件夾
      --num-mappers 1 # 指定map運(yùn)行
      --fields-terminated-by "\t" # 指定分隔符
    • hdfs dfs -cat /XXXXXXX/part-m-00000
    • sqoop import --connect jdbc:mysql://bigdata01:3306/數(shù)據(jù)庫名 --username root --password XXXXXX --table 表名 --target-dir /YYYYYYY --num-mappers 1 --fields-terminated-by "\t" --query 'select * from 表名 where 條件 and $CONDITIONS' # $CONDITIONS 對mapper進(jìn)行索引
    • sqoop import --connect jdbc:mysql://bigdata01:3306/數(shù)據(jù)庫名 --username root --password XXXXXX --table 表名 --target-dir /YYYYYYY --num-mappers 1 --columns 字段名
    • 本地mysql表上傳至hdfs:
    • 本地mysql表上傳至hive:

(3) emport——Sqoop的導(dǎo)出操作:

  • 功能:HDFS/Hive –> MySQL/Oracle

  • 操作命令:

    • 導(dǎo)出命令:
    • sqoop emport
      --connect jdbc:mysql://bigdata01:3306/數(shù)據(jù)庫名 # 連接MySQL
      --username root # 用戶名
      --password XXXXXX # 密碼
      --table 表名 # 目標(biāo)mysql表
      --export-dir /user/hive/warehouse/YYYYYYY # hive文件夾
      --num-mappers 1 # 指定map運(yùn)行
      --input-fields-terminated-by "\t" # 指定分隔符
    • hive表導(dǎo)出至本地mysql:

(4) 列出所有數(shù)據(jù)庫:

  • 操作命令:

    • sqoop list-databases --connect jdbc:mysql://bigdata01:3306/ --username root --password 密碼

(5) 獲取數(shù)據(jù)庫表數(shù)據(jù)生成JavaBean:

  • 操作命令:

    • sqoop codegen --connect jdbc:mysql://bigdata01:3306/數(shù)據(jù)庫名 --username root --password 密碼 --table 表名
      -- bindir Linux本地路徑 # 指定Jar包打包路徑
      --class-name 類名 # 指定Java類名
      --fields-terminated-by "\t"

(6) 合并hdfs中不同目錄下的數(shù)據(jù):

  • 操作命令:

    • sqoop merge
      --new-data hdfs新表路徑 --onto hdfs舊表路徑
      --target-dir /YYYYYYY # 合并后的hdfs路徑
      --jar-file = # Linux本地Jar包路徑
      --class-name XXXXX # Jar包的類
      --merge-key id # 合并依據(jù)
  • **注意:**merge操作是一個新表替代舊表的操作,如果有沖突id的話新表數(shù)據(jù)替換舊表數(shù)據(jù),如果沒有沖突則是新表數(shù)據(jù)添加到舊表的數(shù)據(jù)。


分享題目:Linux下安裝并使用sqoop
路徑分享:http://www.5511xx.com/article/ccccdhi.html