sqoop
sqoop
sqoop环境搭建
-
解压 tar -zxvf /h3cu/sqoop..........tar -C /usr/local/src 并重命名为:mv sqoop ........ sqoop
-
vim /root/.bash_profile (记得source)
export SQOOP_HOME=/usr/local/src/sqoop export path=$path:$SQOOP_HOME/bin -
cd $SQOOP_HOME/conf
-
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 -
把sqoop里的lib下的jar都发送到hdfs相同目录下
-
使用:使用前需要先启动hadoop然后直接使用命令即可!
sqoop的常用命令
导入(import):从非集群 - -> 集群
导出(export):集群 --> 非集群
-
列出mysql数据库中的所有数据库:
sqoop list-databases -connect jdbc:mysql://192.168.1.10:3306 -username root -password 123456 -
通过sqoop执行sql语句
sqoop eval -connect jdbc:mysql:///sqoop -username root -password root -query "select * from employee where id=5" -
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个 # \ 表示隔开每个参数 -
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 ',' -
从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 -
从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