1. 程式人生 > >Linux安裝Sqoop(CentOS7+Sqoop1.4.6+Hadoop2.8.0+Hive2.1.1)

Linux安裝Sqoop(CentOS7+Sqoop1.4.6+Hadoop2.8.0+Hive2.1.1)

轉載於:https://blog.csdn.net/pucao_cug/article/details/72083172 寫的很贊~

關鍵字:Linux  CentOS  Sqoop  Hadoop  Hive  Java

版本號:CetOS7  Sqoop1.4.6   Hadoop2.8.0   Hive2.1.1

        注意:本文只講Sqoop1.4.6的安裝。和hive一樣,sqoop只需要在hadoopnamenode上安裝即可。本例安裝sqoop的機器上已經安裝了hdoop2.8.0hive2.1.1hadoop2.8.0的安裝請參考博文:

hive2.1.1的安裝請參考博文:

1下載Sqoop

         因為官方並不建議在生產環境中使用1.99.7版本,所以我們還是等2.0版本出來在用新的吧,現在依然使用1.4.6版本

開啟官網:

      如圖:

 

點選上圖的nearby  mirror

如圖:

   

如圖:

    

點選1.4.6,相當於是直接開啟地址:

如圖:

    

2上載和解壓縮

            在opt目錄下新建一個名為sqoop的目錄,將下載得到的檔案sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar上載到該目錄內

   如圖:

     

  進入到該目錄下,執行解壓縮,也就是執行命令:

  cd    /opt/sqoop

  tar   -xvf    sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

  命令執行完成後得到了/opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha目錄

3一系列配置

3.1 配置環境變數

         編輯/etc/profile檔案,新增SQOOP_HOME變數,並且將$SQOOP_HOME/bin新增到PATH變數中,編輯方法很多,可以將profile檔案下載到本地編輯,也可以直接用vim命令編輯。

    新增的內容如下:

export  JAVA_HOME=/opt/java/jdk1.8.0_121

export  HADOOP_HOME=/opt/hadoop/hadoop-2.8.0

export  HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop

export  HADOOP_COMMON_LIB_NATIVE_DIR=${HADOOP_HOME}/lib/native

export  HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib"

export  HIVE_HOME=/opt/hive/apache-hive-2.1.1-bin

export  HIVE_CONF_DIR=${HIVE_HOME}/conf

export  SQOOP_HOME=/opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha

export  CLASS_PATH=.:${JAVA_HOME}/lib:${HIVE_HOME}/lib:$CLASS_PATH

export  PATH=.:${JAVA_HOME}/bin:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin: ${HIVE_HOME}/bin:${SQOOP_HOME}/bin:$PATH

 /etc/profile檔案編輯完成後,執行命令:

   source    /etc/profile

3.2   Sqoop配置檔案修改

3.2.1  sqoop-env.sh檔案

3.2.1.1 新建

       進入到/opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/conf目錄下,也就是執行命令:

cd     /opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/conf

將sqoop-env-template.sh複製一份,並取名為sqoop-env.sh,也就是執行命令:

cp    sqoop-env-template.sh  sqoop-env.sh

如圖:

     

3.2.1.2 編輯內容

編輯這個新建的sqoop-env.sh檔案,編輯方法有很多,可以下載到本地編輯,也可是使用vim命令編輯。

       在該檔案末尾加入下面的配置:

export  HADOOP_COMMON_HOME=/opt/hadoop/hadoop-2.8.0

export  HADOOP_MAPRED_HOME=/opt/hadoop/hadoop-2.8.0

export  HIVE_HOME=/opt/hive/apache-hive-2.1.1-bin

       說明:上面的路徑修改為自己的hadoop路徑和hive路徑。

3.3 將MySQL驅動包上載到Sqoop的lib下

         將MySQL的驅動包上載到Sqoop安裝目錄的lib子目錄下

如圖:

     

           說明:該驅動不是越舊越好,也不是越新越好,5.1.31我這裡測試是可以的。

4  使用sqoop

  sqoop是一個工具,安裝完成後,如果操作的命令不涉及hive和hadoop的,可以實現不啟動hive和hadoop,直接輸入sqoop命令即可,例如sqoop help命令。要使用hive相關的命令,必須事先啟動hive和hadoop。

hadoop的安裝和啟動可以參考該博文:

hive的安裝和啟動可以參考該博文:

4.1  使用help命令

         首先看看sqoop都有哪些命令,在終上輸入命令:

sqoop  help

如圖:

    

上圖中的內容是:

  1. [[email protected] ~]# sqoop  help  
  2. Warning:/opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/../hbase does not exist! HBaseimports will fail.  
  3. Please set $HBASE_HOME to the root of yourHBase installation.  
  4. Warning:/opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/../hcatalog does not exist! HCatalogjobs will fail.  
  5. Please set $HCAT_HOME to the root of yourHCatalog installation.  
  6. Warning:/opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/../accumulo does not exist!Accumulo imports will fail.  
  7. Please set $ACCUMULO_HOME to the root ofyour Accumulo installation.  
  8. Warning:/opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/../zookeeper does not exist!Accumulo imports will fail.  
  9. Please set $ZOOKEEPER_HOME to the root ofyour Zookeeper installation.  
  10. 17/05/14 16:21:30 INFO sqoop.Sqoop: RunningSqoop version: 1.4.6  
  11. usage: sqoop COMMAND [ARGS]  
  12. Available commands:  
  13.  codegen            Generate codeto interact with database records  
  14.  create-hive-table  Import a tabledefinition into Hive  
  15.  eval               Evaluate a SQLstatement and display the results  
  16.   export             Export an HDFS directory to adatabase table  
  17.  help               List availablecommands  
  18.  import             Import a tablefrom a database to HDFS  
  19.  import-all-tables  Import tablesfrom a database to HDFS  
  20.  import-mainframe   Import datasetsfrom a mainframe server to HDFS  
  21.  job                Work with savedjobs  
  22.  list-databases     List availabledatabases on a server  
  23.  list-tables        List availabletables in a database  
  24.  merge              Merge resultsof incremental imports  
  25.  metastore          Run astandalone Sqoop metastore  
  26.  version            Display versioninformation  
  27. See 'sqoop help COMMAND' for information ona specific command.  
  28. [[email protected] ~]#  

      說明:因為我們沒有基於hadoop安裝HBase,所以HBase相關的命令不能用,但是操作hadoop分散式檔案系統的命令是可以用的。

4.2  使用Sqoop檢視MySQL中的資料表

       下面是使用命令檢視MySQL資料庫中的資料表list,命令是(命令中不能有回車,必須是在同一行,複製貼上時候請注意):

  1. sqoop   list-tables  --username  root   --password  'cj'     --connect     jdbc:mysql://192.168.27.132:3306/hello?characterEncoding=UTF-8  

如圖:

      

4.3  基於MySQL的表建立hive表

4.3.1  建立

     注意:hive是基於hadoopHDFS的,在執行下面的匯入命令請,請確保hadoophive都在正常執行。

       現在MySQL資料庫伺服器上有一個數據庫名為 hello,下面有一張表名為people

如圖:

       

執行命令,在已經存在的db_hive_deu這個庫中建立名為place的表:

  1. sqoop              create-hive-table    --connect    jdbc:mysql://192.168.119.132:3306/hello?characterEncoding=UTF-8    --table  people     --username   root   -password 'cj'     --hive-database  db_hive_edu  

如圖:

    

上圖中的內容是:

  1. [[email protected] ~]# sqoop  create-hive-table   --connect jdbc:mysql://192.168.119.132:3306/hello?characterEncoding=UTF-8  --table people    --username  root -password 'cj'   --hive-database  db_hive_edu  
  2. Warning: /opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/../hbasedoes not exist! HBase imports will fail.  
  3. Please set $HBASE_HOME to the root of your HBase installation.  
  4. Warning: /opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/../hcatalogdoes not exist! HCatalog jobs will fail.  
  5. Please set $HCAT_HOME to the root of your HCatalog installation.  
  6. Warning: /opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/../accumulodoes not exist! Accumulo imports will fail.  
  7. Please set $ACCUMULO_HOME to the root of your Accumulo installation.  
  8. Warning: /opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/../zookeeperdoes not exist! Accumulo imports will fail.  
  9. Please set $ZOOKEEPER_HOME to the root of your Zookeeperinstallation.  
  10. 17/05/14 21:06:06 INFO sqoop.Sqoop: Running Sqoop version: 1.4.6  
  11. 17/05/14 21:06:06 WARN tool.BaseSqoopTool: Setting your password onthe command-line is insecure. Consider using -P instead.  
  12. 17/05/14 21:06:06 INFO tool.BaseSqoopTool: Using Hive-specificdelimiters for output. You can override  
  13. 17/05/14 21:06:06 INFO tool.BaseSqoopTool: delimiters with--fields-terminated-by, etc.  
  14. 17/05/14 21:06:07 INFO manager.MySQLManager: Preparing to use aMySQL streaming resultset.  
  15. 17/05/14 21:06:09 INFO manager.SqlManager: Executing SQL statement:SELECT t.* FROM `people` AS t LIMIT 1  
  16. 17/05/14 21:06:09 INFO manager.SqlManager: Executing SQL statement:SELECT t.* FROM `people` AS t LIMIT 1  
  17. 17/05/14 21:06:11 WARN util.NativeCodeLoader: Unable to loadnative-hadoop library for your platform... using builtin-java classes whereapplicable  
  18. 17/05/14 21:06:16 INFO hive.HiveImport: Loading uploaded data intoHive  
  19. 17/05/14 21:06:26 INFO hive.HiveImport: which: no hbase in (.:/opt/java/jdk1.8.0_121/bin:/opt/hadoop/hadoop-2.8.0/bin:/opt/hadoop/hadoop-2.8.0/sbin:/opt/hive/apache-hive-2.1.1-bin/bin:/opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin)  
  20. 17/05/14 21:06:29 INFO hive.HiveImport: SLF4J: Class path containsmultiple SLF4J bindings.  
  21. 17/05/14 21:06:29 INFO hive.HiveImport: SLF4J: Found binding in[jar:file:/opt/hive/apache-hive-2.1.1-bin/lib/log4j-slf4j-impl-2.4.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]  
  22. 17/05/14 21:06:29 INFO hive.HiveImport: SLF4J: Found binding in[jar:file:/opt/hadoop/hadoop-2.8.0/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]  
  23. 17/05/14 21:06:29 INFO hive.HiveImport: SLF4J: Seehttp://www.slf4j.org/codes.html#multiple_bindings for an explanation.  
  24. 17/05/14 21:06:58 INFO hive.HiveImport:  
  25. 17/05/14 21:06:58 INFO hive.HiveImport: Logging initialized usingconfiguration injar:file:/opt/hive/apache-hive-2.1.1-bin/lib/hive-common-2.1.1.jar!/hive-log4j2.propertiesAsync: true  
  26. 17/05/14 21:07:32 INFO hive.HiveImport: OK  
  27. 17/05/14 21:07:32 INFO hive.HiveImport: Time taken: 6.657 seconds  
  28. 17/05/14 21:07:32 INFO hive.HiveImport: Hive import complete.  
  29. [[email protected] ~]#  

     注意:create-hive-table只是建立hive表,並沒有匯入資料,匯入資料的命令在4.4中講到。

4.3.2  測試

        在hive命令模式下,輸入以下命令,切換到db_hive_edu資料庫中,命令是:

use  db_hive_edu;

      如圖:

    

      在hive命令模式下,輸入以下命令:

show  tables;

       如圖:

   

4.4  將MySQL中的資料匯入到hive中

4.4.1  執行匯入命令

         注意:hive是基於hadoopHDFS的,在執行下面的匯入命令請,請確保hadoophive都在正常執行。需要額外說明的是,下面的命令不需要以4.3為前提,也就是說直接執行下面的命令即可,不需要事先在hive上建立對應的表。

  執行下面的命令(下面的命令在同一行內):

  1. sqoop    import     --connect     jdbc:mysql://192.168.119.132:3306/hello?characterEncoding=UTF-8        --table    place    --username   root  -password  'cj'    --fields-terminated-by   ','    --hive-import      --hive-database  db_hive_edu     -m  1  

如圖:

     

上圖中的內容是(完整的):

  1. [[email protected]~]# sqoop import --connect jdbc:mysql://192.168.119.132:3306/hello?characterEncoding=UTF-8  --table place    --username root  -password 'cj'  --fields-terminated-by   ',' --hive-import   --hive-databasedb_hive_edu   -m 1  
  2. Warning: /opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/../hbasedoes not exist! HBase imports will fail.  
  3. Please set $HBASE_HOME to the root of yourHBase installation.  
  4. Warning:/opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/../hcatalog does not exist!HCatalog jobs will fail.  
  5. Please set $HCAT_HOME to the root of yourHCatalog installation.  
  6. Warning:/opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/../accumulo does not exist!Accumulo imports will fail.  
  7. Please set $ACCUMULO_HOME to the root ofyour Accumulo installation.  
  8. Warning: /opt/sqoop/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/../zookeeperdoes not exist! Accumulo imports will fail.  
  9. Please set $ZOOKEEPER_HOME to the root ofyour Zookeeper installation.  
  10. 17/05/14 20:44:07 INFO sqoop.Sqoop: RunningSqoop version: 1.4.6  
  11. 17/05/14 20:44:08 WARN tool.BaseSqoopTool:Setting your password on the command-line is insecure. Consider using -Pinstead.  
  12. 17/05/14 20:44:08 INFOmanager.MySQLManager: Preparing to use a MySQL streaming resultset.  
  13. 17/05/14 20:44:08 INFO tool.CodeGenTool:Beginning code generation  
  14. 17/05/14 20:44:10 INFO manager.SqlManager:Executing SQL statement: SELECT t.* FROM `place` AS t LIMIT 1  
  15. 17/05/14 20:44:10 INFO manager.SqlManager:Executing SQL statement: SELECT t.* FROM `place` AS t LIMIT 1  
  16. 17/05/14 20:44:10 INFOorm.CompilationManager: HADOOP_MAPRED_HOME is /opt/hadoop/hadoop-2.8.0  
  17. Note:/tmp/sqoop-root/compile/382b047cc7e935d9ba3014747288b5f7/place.java uses oroverrides a deprecated API.  
  18. Note: Recompile with -Xlint:deprecation fordetails.  
  19. 17/05/14 20:44:18 INFOorm.CompilationManager: Writing jar file:/tmp/sqoop-root/compile/382b047cc7e935d9ba3014747288b5f7/place.jar  
  20. 17/05/14 20:44:18 WARNmanager.MySQLManager: It looks like you are importing from mysql.  
  21. 17/05/14 20:44:18 WARNmanager.MySQLManager: This transfer can be faster! Use the --direct  
  22. 17/05/14 20:44:18 WARNmanager.MySQLManager: option to exercise a MySQL-specific fast path.  
  23. 17/05/14 20:44:18 INFOmanager.MySQLManager: Setting zero DATETIME behavior to convertToNull (mysql)  
  24. 17/05/14 20:44:18 INFOmapreduce.ImportJobBase: Beginning import of place  
  25. 17/05/14 20:44:18 INFOConfiguration.deprecation: mapred.job.tracker is deprecated. Instead, usemapreduce.jobtracker.address  
  26. 17/05/14 20:44:20 WARNutil.NativeCodeLoader: Unable to load native-hadoop library for yourplatform... using builtin-java classes where applicable  
  27. 相關推薦

    Linux安裝Sqoop(CentOS7+Sqoop1.4.6+Hadoop2.8.0+Hive2.1.1)

    轉載於:https://blog.csdn.net/pucao_cug/article/details/72083172 寫的很贊~關鍵字:Linux  CentOS  Sqoop  Hadoop  Hive  Java版本號:CetOS7  Sqoop1.4.6   Had

    Centos7安裝Sqoop(CentOS7+Sqoop1.4.6+Hadoop2.8.0+Hive2.1.1)

    rem unable 分布式文件 createdb obb 很多 bsp reat .cn 註意:本文只講Sqoop1.4.6的安裝。和hive一樣,sqoop只需要在hadoop的namenode上安裝即可。本例安裝sqoop的機器上已經安裝了hdoop2.8.0和h

    Linux中基於hadoop安裝hive(CentOS7+hadoop2.8.0+hive2.1.1)

    2安裝          3.3測試        關鍵字:Linux  Java  CentOS  Hadoop  Hive         說明:安裝hive前提是要先安裝hadoop叢集,並且hive只需要再hadoop的namenode節點叢集裡安裝即可(需要再所有n

    centos7中基於hadoop安裝hive(CentOS7+hadoop2.8.0+hive2.1.1)

    root drive notepad lds opts 裝配 -- 3.2 window 1下載hive 下載地址:http://hive.apache.org/downloads.html 點擊上圖的Download release now! 如圖:

    Sqoop1.4.5+hadoop2.2.0進行Mysql到HDFS的資料轉換

    正如上一篇記錄的那樣,採用sqoop1.99.4 + hadoop2.2.0來將mysql的表資料匯入到HDFS的時候,死活沒有找到如何制定欄位分隔符號,這才有了試用sqoop1.4.5這番折騰。從架構上來將,Sqoop2確實在安全性等方面有很好的提升,但是Sqoop2目前

    Centos7 zabbix3.4.6安裝部署 (二)

    pos gpo 監控服務器 技術分享 color conf blog sys nbsp 接著安裝zabbix客戶端 直接安裝在服務器上 監控服務器 ip 192.168.161.25 yum -y install zabbix-agent #通過Yum安裝zabbix

    Linux安裝Spark叢集(CentOS7+Spark2.1.1+Hadoop2.8.0)

    [plain] view plain copy print?{SPARK_HOME}/bin&nbsp;&nbsp;</span></span></li></ol></div><pre code_snippet_id="2398

    【暫未解決】win10下安裝VS2017 15.3版本 提示 未能安裝包“Microsoft.NET.4.6.FullRedist.NonThreshold.Resources,version=4.6.81.9,language=zh-CN”。

    nis source 方式 ins urn pac 故障 鼓勵 報告 win10下安裝VS2017 15.3版本的時候,出現以上錯誤日誌提示,請問如何解決的哇? 這個問題,開始我以為是我的安裝包所在的路徑問題引起的,但是我將安裝包移動到了磁盤根目錄進行安裝,依然出現

    Linux安裝zabbix--CentOS7.3

    linux zabbixLinux安裝zabbix--CentOS7.3 背景: zabbix作為企業級的系統監控系統,它能監視各種網絡參數,保證服務器系統的安全運營;並提供靈活的通知機制,讓系統管理員可以快速定位並解決存在的各種問題。學習如何安裝和使用zabbix至為重要。 安裝zabbi

    linux安裝配置zookeeper-3.4.10

    mirror http ima mkdir ech cli comm 利用 .com 安裝zookeeper: 下載地址:http://mirror.bit.edu.cn/apache/zookeeper/ zk節點最好是奇數個,這樣子方便在節點中選取leader節點; 上

    oozie4.3.0+sqoop1.4.6實現mysql到hive的增量抽取

    ssa 使用 註意 表分區 namenode localhost coord 分隔 his 1.準備數據源 mysql中表bigdata,數據如下: 2. 準備目標表 目標表存放hive中數據庫dw_stg表bigdata 保存路徑為 hdfs://localh

    在Windows Server 2012R2 上安裝 Bitnami-redmine 3.4.6-3

    進行 com tails bitnami 需要 redmin redis nbsp dmi 最近在服務器上安裝bitnami redmine遇到的問題進行總結 服務器上要安裝了 VC++2015,但是安裝不上,需要windows系統更新,打補丁到KB2919355被安裝

    在Windows Server 2012R2 上安裝 Bitnami-redmine 3.4.6-3

    最近在伺服器上安裝bitnami redmine遇到的問題進行總結  伺服器上要安裝了 VC++2015,但是安裝不上,需要windows系統更新,打補丁到KB2919355被安裝。 https://blog.csdn.net/neochan1108/article/detail

    linux 安裝、啟動 Elasticsearch6.4.2 詳細步驟以及問題解決方案

    第一步:環境  linux 系統 Java 1.8.0_141  elasticsearch-5.6.3 第二步:下載   2.1 JDK的下載可以去官網上直接下載,再次宣告一下不要下載最新版本 JAVA 9 版本本人在次已經踩過坑了 &nbs

    centos7基於hadoop2.8.0安裝hive2.1.1注意點

    安裝參考文章:安裝hive2.1.1連結 我安裝hive2.1.1基本上就是看這個博主的,但是在安裝的時候出現一些錯誤,不知道博主為什麼可以安裝成功,我就會出現錯誤,所以寫這一篇就是記錄一下自己怎麼對博主安裝做了哪些改動的。 1.直接關閉防火牆 ,因為前面都沒有單獨開放埠,所以為了統一就統統

    Ambari 安裝 HDP(Centos7,HDP-2.6.3.0-235,HDP-UTILS-1.1.0.21,ambari-2.6.0.0)

    centos1:192.168.1.4 2G 2核 60G centos2:192.168.1.5 1G 1核 60G centos3:192.168.1.6 1G 1核 60G (1) SSH免密登陸 hadoop.001 [[emai

    Android Studio 在安裝中遇gradle-4.6-all.zip下載問題

    Android Studio 在安裝中遇gradle-4.6-all.zip下載問題 很久沒用Android Studio了,最近重新安裝Android Studio 時,遇到了這樣一個問題,一直在顯示gradle檔案在下載中,檢查其他檔案,全部沒問題後,並且更改使用者名稱為英文也無效;記錄下來以免以後遺忘

    Arch Linux 安裝 Mono 2.11.4 備忘錄

    從原始碼編譯 Mono 2.11.4 基本步驟如下所示: ~$ cd repo repo$ wget http://download.mono-project.com/sources/mono/mono-2.11.4.tar.bz2 repo$ tar xjf mono-2.11.4.tar.bz2

    Linux——安裝篇】:CentOS 6.7新增中文輸入法

    一、命令列輸入:1.su root2.yum isntall "@Chinese Support" -y二、點選桌面頂部“system"-->"Perferences"-->"Input M

    Linux中基於hadoop安裝hive(RHEL7.0+hadoop2.8.3+hive2.3.2)

    2安裝          3.3測試        關鍵字:Linux  Java  CentOS  Hadoop  Hive         說明:安裝hive前提是要先安裝hadoop叢集,並且hive只需要再hadoop的namenode節點叢集裡安裝即可(需要再所有n