標籤:資料庫 需要 from group water argument load 上傳 title
Windows下使用Eclipse工具操作Sqoop1.4.6對象
Sqoop是用來在關係型資料庫與Hadoop之間進行資料的匯入匯出,Windows下使用Eclipse工具操作時,需要先搭建好Hadoop的開發環境
參照Java操作HDFS對象的pom.xml配置,添加配置
<dependency> <groupId>org.apache.sqoop</groupId> <artifactId>sqoop</artifactId> <version>1.4.6</version></dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.36</version></dependency>
使用MySQL進行資料和Hadoop之間的匯入匯出操作,需要MySQL的驅動包。sqoop-1.4.6.jar包在maven裡下載不下來,將sqoop的安裝目錄下$SQOOP_HOME下的sqoop-1.4.6.jar包拷貝到maven倉庫對應的sqoop的目錄下即可。
Windows下配置Sqoop的環境變數
Windows下操作Sqoop時需要使用到Sqoop下的包,需要配置環境變數。
將下載的sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz解壓到本機目錄下,配置Sqoop的環境變數:
SQOOP_HOME=F:\data\sqoop-1.4.6.bin__hadoop-2.0.4-alphaPATH=PATH;%SQOOP_HOME%\bin;
檢查是否配置成功
sqoop version
警告不用管,Windows下不需配置
Java操作Sqoop對象
Windows本機下MySQL服務要先啟動
4.1 將MySQL資料匯入到HDFS
import org.apache.hadoop.conf.Configuration;import org.apache.sqoop.Sqoop;import org.apache.sqoop.tool.SqoopTool;import org.apache.sqoop.util.OptionsFileUtil;public class SqoopTest { private static int importDataFromMysql() throws Exception { String[] args = new String[] { "--connect","jdbc:mysql://192.168.1.97:3306/mydb", "--driver","com.mysql.jdbc.Driver", "-username","root", "-password","root", "--table","user", "-m","1", "--target-dir","java_import_user" }; String[] expandArguments = OptionsFileUtil.expandArguments(args); SqoopTool tool = SqoopTool.getTool("import"); Configuration conf = new Configuration(); conf.set("fs.default.name", "hdfs://192.168.1.200:9000");//設定HDFS服務地址 Configuration loadPlugins = SqoopTool.loadPlugins(conf); Sqoop sqoop = new Sqoop((com.cloudera.sqoop.tool.SqoopTool) tool, loadPlugins); return Sqoop.runSqoop(sqoop, expandArguments); } public static void main(String[] args) throws Exception { importDataFromMysql(); }}
可以在HDFS上查看產生的檔案
發現在HDFS下產生了目錄/user/cyyun/java_import_user,程式中--target-dir沒有指定具體路徑,本機Windows的使用者名稱是cyyun,在Windows上使用程式操作時會在/user/下產生一個Windows使用者名稱的目錄
查看結果:
hadoop fs -cat /user/cyyun/java_import_user/part-m-00000hadoop fs -cat /user/cyyun/java_import_user/part-m-00001
將程式中--target-dir指定為/user/root/java_import_user,運行查看結果:
hadoop fs -cat /user/root/java_import_user/part-m-00000
本文參考:
http://blog.csdn.net/guzicheng/article/details/41519947
Java操作Sqoop對象