sqoop是讓hadoop技術(shù)支持的clouder公司開發(fā)的一個在關(guān)系數(shù)據(jù)庫和hdfs,hive之間數(shù)據(jù)導(dǎo)入導(dǎo)出的一個工具 sqoop-1.2.0-CDH3B4依賴hadoop-core-0.20.2-CDH3B4.jar,所以你需要下載hadoop-0.20.2-CDH3B4.tar.gz,解壓縮后將hadoop-0.20.2-CDH3B4/hadoop-core-0.20.2-CDH3B4.jar復(fù)制到sqoop-1.2.0-CDH3B4/lib中。我們只需要hadoop-core-0.20.2-CDH3B4.jar,hadoop的環(huán)境我們還可以使用Apache的開源hadoop。 下面是CDH3和SQOOP 1.2.0的下載地址 http://archive./cdh/3/hadoop-0.20.2-CDH3B4.tar.gz http://archive./cdh/3/sqoop-1.2.0-CDH3B4.tar.gz 另外,sqoop導(dǎo)入mysql數(shù)據(jù)運行過程中依賴mysql-connector-java-*.jar, 2、修改SQOOP的文件configure-sqoop,注釋掉hbase和zookeeper檢查(除非你準(zhǔn)備使用HABASE等HADOOP上的組件) #if [ ! -d "${HBASE_HOME}" ]; then # echo “Error: $HBASE_HOME does not exist!” # echo 'Please set $HBASE_HOME to the root of your HBase installation.’ # exit 1 #fi #if [ ! -d "${ZOOKEEPER_HOME}" ]; then # echo “Error: $ZOOKEEPER_HOME does not exist!” # echo 'Please set $ZOOKEEPER_HOME to the root of your ZooKeeper installation.’ # exit 1 #fi 還有其他HBASE和ZOOKEEPER的部分也需要注釋掉。 要配置configure-sqoop的HADOOP_HOME 3、在使用sqoop之前需要首先啟動hadoop 4、1》列出mysql數(shù)據(jù)庫中的所有數(shù)據(jù)庫 sqoop list-databases --connect jdbc:mysql://localhost:3306/ --username root --password 1234562)連接mysql并列出數(shù)據(jù)庫中的表 sqoop list-tables --connect jdbc:mysql://localhost:3306/test --username root --password 123456 命令中的test為mysql數(shù)據(jù)庫中的test數(shù)據(jù)庫名稱 username password分別為mysql數(shù)據(jù)庫的用戶密碼 3)將關(guān)系型數(shù)據(jù)的表結(jié)構(gòu)復(fù)制到hive中,只是復(fù)制表的結(jié)構(gòu),表中的內(nèi)容沒有復(fù)制過去。 sqoop create-hive-table --connect jdbc:mysql://localhost:3306/test --table sqoop_test --username root --password 123456 --hive-table test 其中 --table sqoop_test為mysql中的數(shù)據(jù)庫test中的表 --hive-table test 為hive中新建的表名稱 4)從關(guān)系數(shù)據(jù)庫導(dǎo)入文件到hive中 sqoop import --connect jdbc:mysql://localhost:3306/zxtest --username root --password 123456 --table sqoop_test --hive-import --hive-table s_test -m 1 5)將hive中的表數(shù)據(jù)導(dǎo)入到mysql中,在進(jìn)行導(dǎo)入之前,mysql中的表hive_test必須已經(jīng)提起創(chuàng)建好了。 sqoop export --connect jdbc:mysql://localhost:3306/zxtest --username root --password root --table hive_test --export-dir /user/hive/warehouse/new_test_partition/dt=2012-03-05 6》從數(shù)據(jù)庫導(dǎo)出表的數(shù)據(jù)到HDFS上文件 sqoop import --connect jdbc:mysql://localhost:3306/zxtest --username root --password 123456 --table hive_test -m 1 注意:如果沒有密碼,則不需要password參數(shù),否則會報錯!
|
|