目前sqoop有两个版本:sqoop1(sqoop-1.4.x)和sqoop2(sqoop-1.99.x),两个版本并不兼容,使用时要特别注意。sqoop1是以命令行工具方式使用。
sqoop2采用server和client的方式使用。
个人习惯用sqoop1。
【sqoop1】安装配置
- $ tar zxcf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz
- $ cd sqoop-1.4.7.bin__hadoop-2.6.0/conf
- $ cp sqoop-env-template.sh sqoop-env.sh
- 在sqoop-env.sh中配置hive
- $ cp /usr/local/hive-current/conf/hive-site.xml .
复制代码
问题:找不到HiveConf相关的类
解决:export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/usr/local/hive-current/lib/*
问题:找不到数据库错误
解决:copy hive中的hive-site.xml文件放入sqoop conf目录下。当没有在sqoop的conf目录下找到hive-site.xml时,sqoop默认采用的是读取deby内置数据库。
【使用示例】
1. 列出mysql下的所有数据库
sqoop list-databases --connect jdbc:mysql://127.0.0.1:9988 --username root --password root
2. 列出DB下的所有表
sqoop list-tables --connect jdbc:mysql://127.0.0.1:9988/m2d_report --username root --password root
3. 创建表结构
sqoop create-hive-table --connect jdbc:mysql://127.0.0.1:9988/test --username root --password root --table t_user --hive-database langbi_dm --hive-table t_user --fields-terminated-by "\0001" --lines-terminated-by "\n" --verbose
|