sqoop环境搭建与基本导入导出

sqoop用户指南:http://sqoop.apache.org/docs/1.4.4/SqoopUserGuide.html

sqoop环境搭建(在hadoop集群搭建好的基础上)
1、上传sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz和mysql-connector-java-5.1.18.tar.gz到服务器的/usr/local中。
sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz下载地址:http://mirror.bit.edu.cn/apache/sqoop/1.4.6/
mysql-connector-java-5.1.18.tar.gz下载地址:http://ftp.ntu.edu.tw/MySQL/Downloads/Connector-J/

# cd /usr/local && ls
bin  hadoop    jdk-8u91-linux-x64.rpm  libexec  sbin  sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
etc  hadoop-2.7.3.tar.gz  lib  share   src  games  include  lib64  mysql-connector-java-5.1.18.tar.gz
# tar -xvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz
# mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz sqoop
# tar -xvf mysql-connector-java-5.1.18.tar.gz
# cd mysql-connector-java-5.1.18 && ls
build.xml  CHANGES  COPYING  docs  mysql-connector-java-5.1.18-bin.jar  README  README.txt  src
# cp mysql-connector-java-5.1.18-bin.jar /usr/local/sqoop/lib
# vi /etc/profile    //配置sqoop的环境变量

在底部插入:export PATH=$PATH:/usr/local/sqoop/bin

# source /etc/profile
# cd /usr/local/sqoop/conf
# cp sqoop-env-template.sh ./sqoop-env.sh
# vi sqoop-env.sh

export HADOOP_COMMON_HOME=/usr/local/hadoop

export HADOOP_MAPRED_HOME=/usr/local/hadoop

# sqoop-version     查看是否搭建成功

搭建成功:

使用sqoop将mysql中的数据导入到hdfs中
1、导入所有的表

# sqoop import-all-tables --connect jdbc:mysql://localhost/test1 --username root --password hadoop --driver com.mysql.jdbc.Driver -m 1

2、导入当个表

# sqoop import --connect jdbc:mysql://localhost/test1 --username root --password hadoop --table names --driver com.mysql.jdbc.Driver --fields-terminated-by '\t' --target-dir '/sqoop' -m 1

--username 连接mysql的用户
--password 连接mysql的密码,通常使用-P 在控制台输入密码
--driver 手动指定要使用的JDBC驱动程序类
--table 需要导入的表名称
--fields-terminated-by 导入的表在hdfs中的间隔符
--target-dir 指定表存放在hdfs中的那个路径(这个路径hdfs中原本是不存在的)
-m 指定使用几个mapreduce执行该命令

使用sqoop将hdfs中的数据导出到mysql中

# sqoop export --connect jdbc:mysql://localhost/test1 --username root --password hadoop --table emp --driver com.mysql.jdbc.Driver --export-dir /sqoop/123.txt -m 1

--export-dir 指定要长传的文件在hdfs中的存储路径
--table emp (这里的表要事先在mysql中建好空表)

使用sqoop将mysql中的数据导入到hive中

# sqoop import --connect jdbc:mysql://localhost/test1 --username root --password hadoop --table names --driver com.mysql.jdbc.Driver --fields-terminated-by '\t' --lines-terminated-by '\n' --hive-import --hive-overwrite --create-hive-table --hive-table names --delete-target-dir

--lines-terminated-by 设置行尾字符
--hive-import 将表导入到hive中
--hive-overwrite 覆盖Hive表中的现有数据
--create-hive-table 如果设置,那么如果目标配置单元,作业将失败
--hive-table 设置导入到hive中的表名称
--delete-target-dir 删除导入目标目录

使用sqoop将hive中的数据导出到mysql中

# sqoop export --connect jdbc:mysql://localhost/test1 --username root --password hadoop --table test --driver com.mysql.jdbc.Driver --export-dir '/apps/hive/warehouse/names/part-m-00000' --input-fields-terminated-by '\001'

--input-fields-terminated-by 设置输入字段分隔符

你可能感兴趣的:(sqoop环境搭建与基本导入导出)