sqoop的概念和安裝
sqoop: 概念及功能: 資料遷移的,資料移動 原來資料管理是集中式管理 將原來的集中式管理的資料 移動到分散式平臺下 sqoop就是將傳統的關係型資料庫的資料和大資料據平臺之間的資料遷移 遷移有兩個方向: 1)關係型資料庫mysql/oracle----》大資料平臺(hadoop,hive,hbase) 資料匯入 2)大資料平臺(hadoop hive hbase)----》關係型資料庫(mysql) 資料匯出 通常用於 分析結果資料從hive或hdfs匯出到mysql中 便於前臺展示 sqoop是關係型資料庫和大資料平臺的橋樑
注意:這裡的大資料平臺指的是hadoop的廣義概念 hadoop: 1)狹義 專門指hadoop元件 2)廣義: hadoop生態圈的所有元件 hadoop hive hbase zookeeper ......
sqoop的資料匯入和資料匯出的本質: 資料匯入:mysql----》hadoop 將mysql的資料複製到hadoop上 實質上是將sqoop的命令轉換為MR任務進行執行 重新定義的資料輸入 將原來的資料輸入(hdfs)轉為 從mysql資料庫進行讀資料的資料輸入 資料匯出:hadoop-----》mysql 實質上相當於重新定義了MR的輸出 實質上是將sqoop的命令轉換為MR任務進行執行 輸出是mysql或oracle資料庫 這裡的sqoop的命令轉換的MR任務 不需要reduce任務的 只需要Map任務
sqoop的安裝: sqoop1.4.6 版本介紹: sqoop1.0版本 主流 1.99.3 sqoop2.0版本 只需要安裝一個節點: mysql hdfs hive hbase 保證節點上有以上的大資料相關服務 hadoop02 安裝步驟: 1)上傳 2)解壓 tar -xvzf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz 3)配置環境變數 export SQOOP_HOME=/home/hadoop/apps/sqoop-1.4.6.bin__hadoop-2.0.4-alpha export HIVE_HOME=/home/hadoop/apps/apache-hive-2.3.2-bin export PATH=JAVA_HOME/bin:HADOOP_HOME/sbin:HIVE_HOME/bin:$SQOOP_HOME/bin 4)生效環境變數 並驗證 source /etc/profile sqoop version 5)修改配置檔案 cp sqoop-env-template.sh sqoop-env.sh 修改配置檔案解析:
#Set path to where bin/hadoop is available #export HADOOP_COMMON_HOME= #Set path to where hadoop-*-core.jar is available #export HADOOP_MAPRED_HOME= #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=zokeeper的conf檔案的目錄 hadoop的common mapreduce為什麼需要分開配置: 開源: hadoop來說 common mapreduce都在一個安裝包中 對於開源的來說上面的兩個都是hadoop的安裝目錄 商業版: CDH HDP 對於商業版本的hadoop來說 common和mapreduce分別、 安裝在不同的目錄下的 6)將mysql的驅動放在sqoop的lib包下 /home/hadoop/apps/sqoop-1.4.6.bin__hadoop-2.0.4-alpha/lib 7)測試: sqoop list-databases \ --connect jdbc:mysql://hdp1:3306/ \ --username root \ --password 123456