大數據環境部署8:Sqoop1部署安裝



一、Sqoop的安裝

1、下載sqoop並解壓: 也可用wge命令下載

sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz    對應hadoop 2.x http://psg.mtu.edu/pub/apache/sqoop/1.4.6/sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz

解壓:tar zxf    sqoop-1.4.4.bin__hadoop-2.0.4-alpha.tar.gz

2、下載並解壓MySQL Connectors

http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.36.tar.gz

解壓mysql-connector-java-5.1.36.tar.gz,將mysql-connector-java-5.1.36-bin.jar複製到:$SQOOP_HOME/lib

3、複製sqoop包到hadoop集羣節點Master上。

$ scp -rsqoop-1.4.6.bin__hadoop-2.0.4-alpha spark@Master:/home/hadoop/ sqoop-1.4.6

4、設置環境變量

Vi ~/.bash_profile

#forhadoop2.6.0

exportJAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.91.x86_64

exportJRE_HOME=$JAVA_HOME/jre

exportCLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH

exportHADOOP_HOME=/home/spark/opt/hadoop-2.6.0

exportPATH=.:$HADOOP_HOME/bin:$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME/bin:$PATH

 

#forzookeeper

exportZOOKEEPER_HOME=/home/spark/opt/zookeeper-3.4.6

exportPATH=$PATH:$ZOOKEEPER_HOME/bin:$ZOOKEEPER_HOME/conf

 

#forhbase

exportHBASE_HOME=/home/spark/opt/hbase-1.0.1.1

exportPATH=$PATH:$HBASE_HOME/bin

 

#for sqoop1.4.6

exportSQOOP_HOME=/home/spark/opt/sqoop-1.4.6.bin__hadoop-2.0.4-alpha

export PATH=$PATH:$SQOOP_HOME/bin

 

source ~/.bash_profile

5、修改配置文件

$SQOOP_HOME/conf    目錄下拷貝sqoop-env-template.sh改名爲sqoop-env.sh.

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

#Setpath to where bin/hadoop is available

exportHADOOP_COMMON_HOME=/home/spark/opt/hadoop-2.6.0

 

#Setpath to where hadoop-*-core.jar is available

#exportHADOOP_MAPRED_HOME=/home/spark/opt/hadoop-2.6.0

 

#setthe path to where bin/hbase is available

exportHBASE_HOME=/home/spark/opt/hbase-1.0.1.1

 

#Setthe path to where bin/hive is available

#exportHIVE_HOME=/home/spark/opt/hive-1.2.1

 

#Setthe path for where zookeper config dir is

exportZOOCFGDIR=/home/spark/opt/zookeeper-3.4.6

 

修改$SQOOP_HOME/bin/configure-sqoop(實際未作修改)

二、運行測試

啓動sqoopSqoop1作爲客戶端模式,並沒有服務端需要啓動。

列出數據庫:

sqoop list-databases--connectjdbc:mysql://172.16.247.140:3306/ --username hive --password 123456

列出表:

sqoop list-tables --connectjdbc:mysql://172.16.247.140:3306/sqoop--username hive --password 123456

mysql中表tb1導入到hdfs

sqoop import--connectjdbc:mysql://172.16.247.140:3306/sqoop --username hive --password123456--table tb1 -m 1

 

其他的一些例子:

sqoop list-databases --connect jdbc:mysql://xx.xx.xx.xx:3306/ --username xxxxxx --password xxxxxx  
sqoop list-tables --connect jdbc:mysql://192.168.56.204:3306/mysql --username root --password root  
sqoop list-databases -connect jdbc:mysql://xx.xx.xx.xx:3306/ -username xxxxxx -password xxxxxx
sqoop create-hive-table --connect jdbc:mysql://xx.xx.xx.xx:3306/datahouse --table base_dorm --username xxxxxx --password xxxxxx --hive-table base_dorm
sqoop list-tables --connect jdbc:mysql://xx.xx.xx.xx:3306/datahouse --username xxxxxx --password xxxxxx
sqoop import --connect jdbc:mysql://xx.xx.xx.xx:3306/datahouse --username xxxxxx --password xxxxxx --table base_dorm -m 9999999
sqoop create-hive-table --connect jdbc:mysql://xx.xx.xx.xx:3306/datahouse --table base_dorm --username xxxxxx --password xxxxxx --hive-table base_dorm
sqoop import --connect jdbc:mysql://xx.xx.xx.xx:3306/datahouse --username xxxxxx --password xxxxxx --table base_dorm --hive-table base_dorm --hive-import
sqoop import --connect jdbc:mysql://xx.xx.xx.xx:3306/datahouse --username xxxxxx --password xxxxxx --table h_59_dormentrydorm --hive-table h_59_dormentrydorm --hive-import
sqoop import --connect jdbc:mysql://xx.xx.xx.xx:3306/datahouse --username xxxxxx --password xxxxxx --table base_dorm_sal --hive-table base_dorm_sal --hive-import -m 1
sqoop import --connect jdbc:mysql://xx.xx.xx.xx:3306/datahouse --username xxxxxx --password xxxxxx --table base_dorm_pur_trace --hive-table base_dorm_pur_trace --hive-import  --split-by dorm_id,rid
sqoop import --connect jdbc:mysql://xx.xx.xx.xx:3306/datahouse --username xxxxxx --password xxxxxx --query 'select a.order_id,a.order_mo,a.order_amount,a.order_date,a.city_desc,a.city_staff_name,a.dorm_name,b.dorm_price from base_order a left join base_food b on a.order_id=b.order_id  WHERE $CONDITIONS'  --target-dir /alidata/query1 --split-by a.order_id

3、說明

sqoop1sqoop2區別

這兩個版本是完全不兼容的,其具體的版本號區別爲1.4.xsqoop11.99xsqoop2sqoop1sqoop2在架構和用法上已經完全不同。

在架構上,sqoop2引入了sqoop server(具體服務器爲tomcat),對connector實現了集中的管理。其訪問方式也變得多樣化了,其可以通過REST APIJAVA APIWEBUI以及CLI控制檯方式進行訪問。另外,其在安全性能方面也有一定的改善,在sqoop1中我們經常用腳本的方式將HDFS中的數據導入到mysql中,或者反過來將mysql數據導入到HDFS中,其中在腳本里邊都要顯示指定mysql數據庫的用戶名和密碼的,安全性做的不是太完善。在sqoop2中,如果是通過CLI方式訪問的話,會有一個交互過程界面,你輸入的密碼信息不被看到。

本次安裝的是Sqoop1,與Sqoop2比起來安裝上都差不多,使Sqoop2使用起來不太習慣。

 

 

參考:

http://f.dataguru.cn/thread-523804-1-1.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章