Java操作Sqoop對象

來源:互聯網
上載者:User

標籤:資料庫   需要   from   group   water   argument   load   上傳   title   

Windows下使用Eclipse工具操作Sqoop1.4.6對象

Sqoop是用來在關係型資料庫與Hadoop之間進行資料的匯入匯出,Windows下使用Eclipse工具操作時,需要先搭建好Hadoop的開發環境

  1. 參照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的目錄下即可。

  2. 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; 
  3. 檢查是否配置成功 
    sqoop version 
     
    警告不用管,Windows下不需配置

  4. 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對象

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.