sqoop


sqoop

sqoop环境搭建

  1. 解压 tar -zxvf /h3cu/sqoop..........tar -C /usr/local/src 并重命名为:mv sqoop ........ sqoop

  2. vim /root/.bash_profile (记得source)

    export SQOOP_HOME=/usr/local/src/sqoop
    export path=$path:$SQOOP_HOME/bin
    
  3. cd $SQOOP_HOME/conf

  4. cp sqoop-env-template.sh sqoop-env.sh 并vim sqoop-env.sh 内容如下:

    export HADOOP_COMMON_HOME=/usr/local/src/hadoop
    export HADOOP_MAPRED_HOME=/usr/local/src/hadoop
    export HIVE_HOME=/usr/local/src/hive
    export ZOOKEEPER_HOME=/usr/local/src/zookeeper
    
  5. 把sqoop里的lib下的jar都发送到hdfs相同目录下

  6. 使用:使用前需要先启动hadoop然后直接使用命令即可!

sqoop的常用命令

导入(import):从非集群 - -> 集群

导出(export):集群 --> 非集群

  1. 列出mysql数据库中的所有数据库:

    sqoop list-databases -connect jdbc:mysql://192.168.1.10:3306 -username root 
    -password 123456
    
  2. 通过sqoop执行sql语句

    sqoop eval -connect jdbc:mysql:///sqoop -username root -password root -query "select * from employee where id=5"
    
  3. mysql导入到hdfs

    [hadoop@node01 ~]$ sqoop import \
    > --connect jdbc:mysql://node01:3306/sqooptest \   
    > --username root \
    > --password 123456 \
    > --table Person \
    > --target-dir /sqoop/person \  # 指定导出目录
    > --delete-target-dir \ # 如果导出目录存在,就先删除
    > --fields-terminated-by '\t' \  # 指定字段数据分隔符
    > --m 1  #指定map task数,默认是4个
    
    #  \ 表示隔开每个参数
    
  4. hdfs导出到mysql

    sqoop export \
    --connect jdbc:mysql://node1:3306/userdb \
    --username sqoop \
    --password sqoop \
    --table employee \
    --export-dir /user/hadoop/emp/
    --input-fields-terminated-by ','
    
  5. 从MySQL导入到hive

    [hadoop@node01 ~]$ sqoop import \
    > --connect jdbc:mysql://node01:3306/sqooptest \
    > --username root \
    > --password 123456 \
    > --table Person \
    > --hive-import \
    > --hive-database sqooptohive \
    > --hive-table person1 \
    > --m 1
    
  6. 从hdfs导出数据到MySQL(需要先建mysql中的表)

    sqoop export \
    --connect jdbc:mysql://localhost:3306/wht \
    --username root \
    --password 123456 \
    --table wht_test2 \
    --fields-terminated-by ',' \
    --export-dir /user/hive/warehouse/wht_test1