Sqoopインストール&インポートエクスポート

20830 ワード

Sqoop
コンセプト
データは従来のデータベースとHadoopの間からインポートされ、下位層ではMapReduceを使用して実現されていますが、集約操作を必要としないため、MapだけがReduceを持っていません.
シーンの操作
1)データデータRDBMSにおいて、Hiveを使用して処理したい2)Hive統計を使用して分析し、データはHiveにおいて、mysqlにどのように導き出し、統計結果を最終的にレポートによって可視化して展示する
  • ソリューションはmapreduceを使用して出力ファイルを作成できますが、作成が面倒なため、Sqoopというツール
  • が現れます.
  • に必要なパラメータRDBMS:url、driver、db、table、user、password HDFS:path Hive:databse、table、partition
  • バージョン#バージョン#
    1.4.* Sqoop1 *** 1.99.* Sqoop 2は主流で1.4を用いる.xバージョン
    リファレンスポイント
    Hadoopを基準点/基準点とする
  • インポート:import RDBMS=>Hadoop
  • エクスポート:export Hadoop=>RDBMS
  • 導入のインストール
      
    wget http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.6-cdh5.16.2.tar.gz
    
       sofaware   
    [root@JD ~]# mv sqoop-1.4.6-cdh5.16.2.tar.gz /home/hadoop/sofaware/
    
      hadoop  
    [root@JD software]# su - hadoop
    
      
    [hadoop@JD software]$ tar -zxvf sqoop-1.4.6-cdh5.16.2.tar.gz -C ~/app/
    
           Sqoop lib     jar 
    mysql-connector-java-5.1.27-bin.jar
    java-json.jar
    hive-common-1.1.0-cdh5.16.2.jar
    hive-exec-1.1.0-cdh5.16.2.jar
    
    
          
    [hadoop@JD ~]$ vi ~/.bashrc
    export SQOOP_HOME=/home/hadoop/app/sqoop-1.4.6-cdh5.16.2
    export PATH=$SQOOP_HOME/bin:$PATH
    
          
    [hadoop@JD ~]$ source ~/.bashrc
    
      Sqoop conf   ,  sqoop-env-template.sh sqoop-env.sh
    [hadoop@JD conf]$ cp sqoop-env-template.sh sqoop-env.sh 
    
        hadoop hive   
    [hadoop@JD conf]$ vi sqoop-env.sh
    export HADOOP_COMMON_HOME=/home/hadoop/app/hadoop-2.6.0-cdh5.16.2
    export HADOOP_MAPRED_HOME=/home/hadoop/app/hadoop-2.6.0-cdh5.16.2
    export HIVE_HOME=/home/hadoop/app/hive-1.1.0-cdh5.16.2
    
     mysql      lib   
    [hadoop@JD lib]$ cp mysql-connector-java-5.1.27-bin.jar /home/hadoop/app/sqoop-1.4.6-cdh5.16.2/lib
    
    
    

    単純な使用
          
    [hadoop@JD sqoop-1.4.6-cdh5.16.2]$ sqoop help
    usage: sqoop COMMAND [ARGS]
    Available commands:
      codegen            Generate code to interact with database records
      create-hive-table  Import a table definition into Hive
      eval               Evaluate a SQL statement and display the results
      export             Export an HDFS directory to a database table
      help               List available commands
      import             Import a table from a database to HDFS
      import-all-tables  Import tables from a database to HDFS
      import-mainframe   Import datasets from a mainframe server to HDFS
      job                Work with saved jobs
      list-databases     List available databases on a server
      list-tables        List available tables in a database
      merge              Merge results of incremental imports
      metastore          Run a standalone Sqoop metastore
      version            Display version information
      
      
                
      [hadoop@JD sqoop-1.4.6-cdh5.16.2]$ sqoop help list-databases
      
        mysql        
      [hadoop@JD sqoop-1.4.6-cdh5.16.2]$ sqoop list-databases --connect jdbc:mysql://JD:3306 --username root --password xxx
      information_schema
      bigdata
      mysql
      performance_schema
      ruozedata_erp
      ruozedata_hive
      test
     
      mysql           
    [hadoop@JD sqoop-1.4.6-cdh5.16.2]$ sqoop list-tables --connect jdbc:mysql://JD:3306/bigdata --username root --password xxx
    dept
    emp
    sal
    salgrade
    testdata
    
    
    

    データインポート(テーブルのデータをHDFSにインポート)
    パラメータの説明–connect mysqlデータベースアドレス–usernameデータベースユーザー名–passwordデータベースパスワード–tableテーブル名–delete-target-dirインポート前にHDFS上のフォルダを削除–mapreduce-job-name mrタスクの名前–columns指定msqlのフィールド–target-dir HDFSに格納されているパスを指します–fields-terminated-by指定分割ID、デフォルトは、-null-string文字列型nullをデフォルト値として指定-null-non-string文字列以外のnullをデフォルト値として指定-m mrのタスク数を指定し、デフォルトは4つ-queryはsql文を指定してクエリーを行います
    –incremental append–check-column EMPNO–last-value 7788 EMPNOフィールドに従って7788以降データ追加
    sqoop--options-file sqoop実行ファイルコマンド
    1、     emp     EMPNO,ENAME,JOB,SAL,COMM,  \t    ,      null  ‘’,       null  0,    task,     FromMySQL2HDFS
    sqoop import \
    --connect jdbc:mysql://JD:3306/bigdata \
    --password mysqladmin --username root \
    --table emp  \
    --delete-target-dir --mapreduce-job-name FromMySQL2HDFS \
    --columns "EMPNO,ENAME,JOB,SAL,COMM" \
    --target-dir EMP_COLUMN_QUERY \
    --fields-terminated-by '\t' \
    --null-string '' \
    --null-non-string '0' \
    -m 1
    
         hdfs   
    [hadoop@JD bin]$ hadoop fs -cat /user/hadoop/EMP_COLUMN_QUERY/part*
    
    7369    SMITH   CLERK   800.00  0
    7499    ALLEN   SALESMAN        1600.00 300.00
    7521    WARD    SALESMAN        1250.00 500.00
    7566    JONES   MANAGER 2975.00 0
    7654    MARTIN  SALESMAN        1250.00 1400.00
    7698    BLAKE   MANAGER 2850.00 0
    7782    CLARK   MANAGER 2450.00 0
    7788    SCOTT   ANALYST 3000.00 0
    7839    KING    PRESIDENT       5000.00 0
    7844    TURNER  SALESMAN        1500.00 0.00
    7876    ADAMS   CLERK   1100.00 0
    7902    FORD    ANALYST 3000.00 0
    
    
    2、   sql     hdfs , sql      
    $CONDITIONS,  sql     ''    
    
    sqoop import \
    --connect jdbc:mysql://JD:3306/bigdata \
    --password mysqladmin --username root \
    --delete-target-dir --mapreduce-job-name FromMySQL2HDFS \
    --target-dir JOIN \
    --fields-terminated-by '\t' \
    --null-string '' \
    --null-non-string '0' \
    --query 'select e.empno,e.ename,e.deptno,d.dname from emp e join dept d on e.deptno=d.deptno and $CONDITIONS' \
    -m 1
    
        
    [hadoop@JD bin]$ hadoop fs -cat JOIN/part*
    7369    SMITH   20      RESEARCH
    7499    ALLEN   30      SALES
    7521    WARD    30      SALES
    7566    JONES   20      RESEARCH
    7654    MARTIN  30      SALES
    7698    BLAKE   30      SALES
    7782    CLARK   10      ACCOUNTING
    7788    SCOTT   20      RESEARCH
    7839    KING    10      ACCOUNTING
    7844    TURNER  30      SALES
    7876    ADAMS   20      RESEARCH
    7902    FORD    20      RESEARCH
    
    3、 hdfs  emp     
    sqoop import \
    --connect jdbc:mysql://JD:3306/bigdata \
    --password mysqladmin --username root \
    --table emp  \
    --mapreduce-job-name FromMySQL2HDFS \
    --target-dir EMP_APPEND \
    --fields-terminated-by '\t' \
    --null-string '' \
    --incremental append \
    --check-column EMPNO \
    --last-value 7788 \
    --null-non-string '0' \
    -m 1
    
        
    [hadoop@JD bin]$ hadoop fs -cat emp/part*
    7839    KING    PRESIDENT       0       1981-11-17 00:00:00.0   5000.00 0       10
    7844    TURNER  SALESMAN        7698    1981-09-08 00:00:00.0   1500.00 0.00    30
    7876    ADAMS   CLERK   7788    1983-01-12 00:00:00.0   1100.00 0       20
    7902    FORD    ANALYST 7566    1981-12-03 00:00:00.0   3000.00 0       20
    
    
    4、          ,       hdfs  ,   map            
    
    sqoop import \
    --connect jdbc:mysql://JD:3306/bigdata \
    --password mysqladmin \
    --username root \
    --delete-target-dir \
    --table salgrade \
    --split-by 'GRADE'
    
    [hadoop@JD bin]$ hadoop fs -ls salgrade/
    -rw-r--r--   1 hadoop supergroup          0 2019-12-26 23:09 salgrade/_SUCCESS
    -rw-r--r--   1 hadoop supergroup         11 2019-12-26 23:09 salgrade/part-m-00000
    -rw-r--r--   1 hadoop supergroup         12 2019-12-26 23:09 salgrade/part-m-00001
    -rw-r--r--   1 hadoop supergroup         12 2019-12-26 23:09 salgrade/part-m-00002
    -rw-r--r--   1 hadoop supergroup         24 2019-12-26 23:09 salgrade/part-m-00003
    
    
    
    5、mysql    
    mysql> select * from dept;
    +--------+------------+----------+
    | deptno | dname      | loc      |
    +--------+------------+----------+
    |     10 | ACCOUNTING | NEW YORK |
    |     20 | RESEARCH   | DALLAS   |
    |     30 | SALES      | CHICAGO  |
    |     40 | OPERATIONS | BOSTON   |
    +--------+------------+----------+
    4 rows in set (0.00 sec)
    
      sqoop mysql         
    [hadoop@JD bin]$ sqoop eval --connect jdbc:mysql://JD:3306/bigdata --password mysqladmin --username root --query "insert into dept values (60,'RD', 'BEIJING')"
    
      mysql   
    mysql> select * from dept;
    +--------+------------+----------+
    | deptno | dname      | loc      |
    +--------+------------+----------+
    |     10 | ACCOUNTING | NEW YORK |
    |     20 | RESEARCH   | DALLAS   |
    |     30 | SALES      | CHICAGO  |
    |     40 | OPERATIONS | BOSTON   |
    |     60 | RD         | BEIJING  |
    +--------+------------+----------+
    5 rows in set (0.01 sec)
    
        
    
        emp.opt    
    import
    --connect
    jdbc:mysql://ruozedata001:3306/bigdata
    --password
    mysqladmin
    --username
    root
    --target-dir
    EMP_OPTIONS_FILE2
    --delete-target-dir
    --table
    emp
    -m
    2
    
      
    [hadoop@JD bin]$ sqoop --options-file ./emp.opt
    

    HDFSをmysqlにエクスポート
    エクスポートする前に自分でテーブルを作成する必要があります.テーブルが存在しない場合、sqoop exportエクスポートDsqoopは自動的に作成されません.export.records.per.statement一括エクスポート、xxバーごとにコミット–export-dirエクスポートフォルダ–columnsエクスポートフィールド–fields-terminated-byエクスポートデータの区切り記号-m mapタスクの数を指定
      mysql  emp_demo 
    mysql> create table emp_demo as select * from emp where 1=2
    
        
    sqoop export \
    -Dsqoop.export.records.per.statement=10 \
    --connect jdbc:mysql://JD:3306/bigdata \
    --password mysqladmin \
    --username root \
    --table emp_demo \
    --export-dir /user/hadoop/EMP_COLUMN_QUERY \
    --columns "EMPNO,ENAME,JOB,SAL,COMM" \
    --fields-terminated-by '\t' \
    -m 1
    
     mysql        
    mysql> select * from emp_demo;
    +-------+--------+-----------+------+----------+---------+---------+--------+
    | empno | ename  | job       | mgr  | hiredate | sal     | comm    | deptno |
    +-------+--------+-----------+------+----------+---------+---------+--------+
    |  7369 | SMITH  | CLERK     | NULL | NULL     |  800.00 |    0.00 |   NULL |
    |  7499 | ALLEN  | SALESMAN  | NULL | NULL     | 1600.00 |  300.00 |   NULL |
    |  7521 | WARD   | SALESMAN  | NULL | NULL     | 1250.00 |  500.00 |   NULL |
    |  7566 | JONES  | MANAGER   | NULL | NULL     | 2975.00 |    0.00 |   NULL |
    |  7654 | MARTIN | SALESMAN  | NULL | NULL     | 1250.00 | 1400.00 |   NULL |
    |  7698 | BLAKE  | MANAGER   | NULL | NULL     | 2850.00 |    0.00 |   NULL |
    |  7782 | CLARK  | MANAGER   | NULL | NULL     | 2450.00 |    0.00 |   NULL |
    |  7788 | SCOTT  | ANALYST   | NULL | NULL     | 3000.00 |    0.00 |   NULL |
    |  7839 | KING   | PRESIDENT | NULL | NULL     | 5000.00 |    0.00 |   NULL |
    |  7844 | TURNER | SALESMAN  | NULL | NULL     | 1500.00 |    0.00 |   NULL |
    |  7876 | ADAMS  | CLERK     | NULL | NULL     | 1100.00 |    0.00 |   NULL |
    |  7902 | FORD   | ANALYST   | NULL | NULL     | 3000.00 |    0.00 |   NULL |
    +-------+--------+-----------+------+----------+---------+---------+--------+
    12 rows in set (0.00 sec)
    

    MySQLインポートHive
    MySQLがHiveをインポートする場合、まずHiveにテーブル-hive-overwriteを作成して既存のデータを上書きする必要がありますデフォルトはhive-importがHiveにデータをインポートする識別子-hive-table Hiveのテーブル名-hive-partition-keyパーティションフィールドのkey-hive-partition-valueパーティションセグメントのvalue-fields-terminated-byフィールド分割子を追加し、デフォルトは、
    1、     
    
     Hive      
    CREATE TABLE emp_import(
    empno int,
    ename string,
    job string,
    mgr int,
    hiredate string,
    sal double,
    comm double,
    deptno int
    )
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
    
     mysql    hive     
    sqoop import \
    --connect jdbc:mysql://JD:3306/bigdata \
    --password mysqladmin \
    --username root \
    --table emp \
    --hive-overwrite \
    --delete-target-dir \
    --hive-import --hive-database db_hive1 \
    --hive-table emp_import \
    --fields-terminated-by '\t' \
    -m 1
    
     hive   
    hive (db_hive1)> select * from emp_import;
    OK
    emp_import.empno        emp_import.ename        emp_import.job  emp_import.mgr  emp_import.hiredate     emp_import.sal  emp_import.comm emp_import.deptno
    7369    SMITH   CLERK   7902    1980-12-17 00:00:00.0   800.0   NULL    20
    7499    ALLEN   SALESMAN        7698    1981-02-20 00:00:00.0   1600.0  300.0   30
    7521    WARD    SALESMAN        7698    1981-02-22 00:00:00.0   1250.0  500.0   30
    7566    JONES   MANAGER 7839    1981-04-02 00:00:00.0   2975.0  NULL    20
    7654    MARTIN  SALESMAN        7698    1981-09-28 00:00:00.0   1250.0  1400.0  30
    7698    BLAKE   MANAGER 7839    1981-05-01 00:00:00.0   2850.0  NULL    30
    7782    CLARK   MANAGER 7839    1981-06-09 00:00:00.0   2450.0  NULL    10
    7788    SCOTT   ANALYST 7566    1982-12-09 00:00:00.0   3000.0  NULL    20
    7839    KING    PRESIDENT       NULL    1981-11-17 00:00:00.0   5000.0  NULL    10
    7844    TURNER  SALESMAN        7698    1981-09-08 00:00:00.0   1500.0  0.0     30
    7876    ADAMS   CLERK   7788    1983-01-12 00:00:00.0   1100.0  NULL    20
    7902    FORD    ANALYST 7566    1981-12-03 00:00:00.0   3000.0  NULL    20
    
    
    2、  mysql   hive     
    
     hive      
    CREATE TABLE emp_import_partition(
    empno int,
    ename string,
    job string,
    mgr int,
    hiredate string,
    sal double,
    comm double,
    deptno int
    )
    partitioned by (pt string)
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
    
        
    sqoop import \
    --connect jdbc:mysql://JD:3306/bigdata \
    --password mysqladmin \
    --username root \
    --table emp \
    --hive-overwrite \
    --delete-target-dir \
    --hive-import --hive-database db_hive1 \
    --hive-table emp_import_partition \
    --hive-partition-key 'pt' \
    --hive-partition-value '2019-12-30' \
    --fields-terminated-by '\t' \
    -m 1
    
        
    hive (db_hive1)> select * from emp_import_partition where pt='2019-12-30';
    
    emp_import_partition.empno      emp_import_partition.ename      emp_import_partition.job        emp_import_partition.mgr        emp_import_partition.hiredate   emp_import_partition.sal    emp_import_partition.comm       emp_import_partition.deptno     emp_import_partition.pt
    7369    SMITH   CLERK   7902    1980-12-17 00:00:00.0   800.0   NULL    20      2019-12-30
    7499    ALLEN   SALESMAN        7698    1981-02-20 00:00:00.0   1600.0  300.0   30      2019-12-30
    7521    WARD    SALESMAN        7698    1981-02-22 00:00:00.0   1250.0  500.0   30      2019-12-30
    7566    JONES   MANAGER 7839    1981-04-02 00:00:00.0   2975.0  NULL    20      2019-12-30
    7654    MARTIN  SALESMAN        7698    1981-09-28 00:00:00.0   1250.0  1400.0  30      2019-12-30
    7698    BLAKE   MANAGER 7839    1981-05-01 00:00:00.0   2850.0  NULL    30      2019-12-30
    7782    CLARK   MANAGER 7839    1981-06-09 00:00:00.0   2450.0  NULL    10      2019-12-30
    7788    SCOTT   ANALYST 7566    1982-12-09 00:00:00.0   3000.0  NULL    20      2019-12-30
    7839    KING    PRESIDENT       NULL    1981-11-17 00:00:00.0   5000.0  NULL    10      2019-12-30
    7844    TURNER  SALESMAN        7698    1981-09-08 00:00:00.0   1500.0  0.0     30      2019-12-30
    7876    ADAMS   CLERK   7788    1983-01-12 00:00:00.0   1100.0  NULL    20      2019-12-30
    7902    FORD    ANALYST 7566    1981-12-03 00:00:00.0   3000.0  NULL    20      2019-12-30
    
    
    
    

    Hive MySQLのエクスポート
    まずmysqlでテーブルを作成するデフォルトは追加データです–export-dirエクスポートするデータがHDFSの場所を指定します
     hive     
    sqoop export \
    --connect jdbc:mysql://JD:3306/bigdata \
    --password mysqladmin \
    --username root \
    --table emp_demo \
    --export-dir /user/hive/warehouse/db_hive1.db/emp \
    -m 1
    
      mysql,    
    mysql> select * from emp_demo;
    mysql> select * from emp_demo;
    +-------+--------+-----------+------+---------------------+---------+---------+--------+
    | empno | ename  | job       | mgr  | hiredate            | sal     | comm    | deptno |
    +-------+--------+-----------+------+---------------------+---------+---------+--------+
    |  7369 | SMITH  | CLERK     | NULL | NULL                |  800.00 |    0.00 |   NULL |
    |  7499 | ALLEN  | SALESMAN  | NULL | NULL                | 1600.00 |  300.00 |   NULL |
    |  7521 | WARD   | SALESMAN  | NULL | NULL                | 1250.00 |  500.00 |   NULL |
    |  7566 | JONES  | MANAGER   | NULL | NULL                | 2975.00 |    0.00 |   NULL |
    |  7654 | MARTIN | SALESMAN  | NULL | NULL                | 1250.00 | 1400.00 |   NULL |
    |  7698 | BLAKE  | MANAGER   | NULL | NULL                | 2850.00 |    0.00 |   NULL |
    |  7782 | CLARK  | MANAGER   | NULL | NULL                | 2450.00 |    0.00 |   NULL |
    |  7788 | SCOTT  | ANALYST   | NULL | NULL                | 3000.00 |    0.00 |   NULL |
    |  7839 | KING   | PRESIDENT | NULL | NULL                | 5000.00 |    0.00 |   NULL |
    |  7844 | TURNER | SALESMAN  | NULL | NULL                | 1500.00 |    0.00 |   NULL |
    |  7876 | ADAMS  | CLERK     | NULL | NULL                | 1100.00 |    0.00 |   NULL |
    |  7902 | FORD   | ANALYST   | NULL | NULL                | 3000.00 |    0.00 |   NULL |
    |  7369 | SMITH  | CLERK     | 7902 | 1980-12-17 00:00:00 |  800.00 |    NULL |     20 |
    |  7499 | ALLEN  | SALESMAN  | 7698 | 1981-02-20 00:00:00 | 1600.00 |  300.00 |     30 |
    |  7521 | WARD   | SALESMAN  | 7698 | 1981-02-22 00:00:00 | 1250.00 |  500.00 |     30 |
    |  7566 | JONES  | MANAGER   | 7839 | 1981-04-02 00:00:00 | 2975.00 |    NULL |     20 |
    |  7654 | MARTIN | SALESMAN  | 7698 | 1981-09-28 00:00:00 | 1250.00 | 1400.00 |     30 |
    |  7698 | BLAKE  | MANAGER   | 7839 | 1981-05-01 00:00:00 | 2850.00 |    NULL |     30 |
    |  7782 | CLARK  | MANAGER   | 7839 | 1981-06-09 00:00:00 | 2450.00 |    NULL |     10 |
    |  7788 | SCOTT  | ANALYST   | 7566 | 1982-12-09 00:00:00 | 3000.00 |    NULL |     20 |
    |  7839 | KING   | PRESIDENT | NULL | 1981-11-17 00:00:00 | 5000.00 |    NULL |     10 |
    |  7844 | TURNER | SALESMAN  | 7698 | 1981-09-08 00:00:00 | 1500.00 |    0.00 |     30 |
    |  7876 | ADAMS  | CLERK     | 7788 | 1983-01-12 00:00:00 | 1100.00 |    NULL |     20 |
    |  7902 | FORD   | ANALYST   | 7566 | 1981-12-03 00:00:00 | 3000.00 |    NULL |     20 |
    +-------+--------+-----------+------+---------------------+---------+---------+--------+
    
    2、      ,  job  
    
    	  job
    	sqoop job --create bigdata-sqoop-job -- \
    import --connect jdbc:mysql://JD:3306/bigdata \
    --password mysqladmin \
    --username root \
    --table emp \
    --delete-target-dir
    	  job
    	sqoop job --exec bigdata-sqoop-job
    	  job
    	sqoop job --delete bigdata-sqoop-job
    	
    	  job
    [hadoop@JD bin]$ sqoop job --list
    Available jobs:
      bigdata-sqoop-job
    

    総合事例
    1、需要:empとdept表はMySQLで、MySQLデータをHiveに抽出して統計分析を行い、統計結果をMySQLに返信する2、構想:Hive:emp_を作成するetlとdept_etlと結果テーブルresult_etl;統計:select e.empno,e.ename,e.deptno,e.dname from emp_etl e join dept_etl d on e.deptno=d.deptno;MySQL:result_を作成するetl結果表
     hive   emp_etl dept_etl 
    CREATE TABLE emp_etl(
    empno int,
    ename string,
    job string,
    mgr int,
    hiredate string,
    sal double,
    comm double,
    deptno int
    )
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
    
    CREATE TABLE dept_etl(
    deptno int,
    dname string,
    loc string
    )
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
    
     mysql hive    
    sqoop import \
    --connect jdbc:mysql://JD:3306/bigdata \
    --password mysqladmin \
    --username root \
    --table dept \
    --hive-overwrite \
    --delete-target-dir \
    --hive-import --hive-database db_hive1 \
    --hive-table dept_etl \
    --fields-terminated-by '\t' \
    -m 1
    
    sqoop import \
    --connect jdbc:mysql://JD:3306/bigdata \
    --password mysqladmin \
    --username root \
    --table emp \
    --hive-overwrite \
    --delete-target-dir \
    --hive-import --hive-database db_hive1 \
    --hive-table emp_etl \
    --fields-terminated-by '\t' \
    -m 1
    
     hive      
    CREATE TABLE result_etl(
    empno int,
    ename string,
    deptno int,
    dname string
    )
    ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
    
               
    insert overwrite table result_etl select e.empno, e.ename, e.deptno, d.dname from emp_etl e join dept_etl d on e.deptno=d.deptno;	
    
    mysql      
    create table etl_result(
    empno int,
    ename varchar(10),
    deptno int,
    dname varchar(20)
    );
    
     hive      mysql 
    sqoop export \
    --connect jdbc:mysql://JD:3306/bigdata \
    --password mysqladmin \
    --username root \
    --table etl_result \
    --export-dir /user/hive/warehouse/db_hive1.db/result_etl \
    --fields-terminated-by '\t' \
    -m 1
    
        ,    
    mysql> select * from etl_result;
    +-------+--------+--------+------------+
    | empno | ename  | deptno | dname      |
    +-------+--------+--------+------------+
    |  7369 | SMITH  |     20 | RESEARCH   |
    |  7499 | ALLEN  |     30 | SALES      |
    |  7521 | WARD   |     30 | SALES      |
    |  7566 | JONES  |     20 | RESEARCH   |
    |  7654 | MARTIN |     30 | SALES      |
    |  7698 | BLAKE  |     30 | SALES      |
    |  7782 | CLARK  |     10 | ACCOUNTING |
    |  7788 | SCOTT  |     20 | RESEARCH   |
    |  7839 | KING   |     10 | ACCOUNTING |
    |  7844 | TURNER |     30 | SALES      |
    |  7876 | ADAMS  |     20 | RESEARCH   |
    |  7902 | FORD   |     20 | RESEARCH   |
    +-------+--------+--------+------------+
    12 rows in set (0.00 sec)
    
    

    4.shellスクリプトに封入する4.1 shellスクリプトの内容
    #!/bin/sh
    set -x
    
    sqoop import \
    --connect jdbc:mysql://JD:3306/bigdata \
    --password mysqladmin \
    --username root \
    --table dept \
    --hive-overwrite \
    --delete-target-dir \
    --hive-import --hive-database db_hive1 \
    --hive-table dept_etl \
    --fields-terminated-by '\t' \
    -m 1
    
    sqoop import \
    --connect jdbc:mysql://JD:3306/bigdata \
    --password mysqladmin \
    --username root \
    --table emp \
    --hive-overwrite \
    --delete-target-dir \
    --hive-import --hive-database db_hive1 \
    --hive-table emp_etl \
    --fields-terminated-by '\t' \
    -m 1
    
    sql="insert overwrite table result_etl select e.empno, e.ename, e.deptno, d.dname from emp_etl e join dept_etl d on e.deptno=d.deptno"
    
    hive -e "$sql"
    
    mysql -uroot -pruozedata <