一、功能
在大数据处理之后,需要数据展示,所以,要把相对较少的数据存储到关系型数据库中,然后做一套框架给外部查询展示。sqoop的作用就是把数据从hdfs或者hive中导出到mysql等关系型数据库
二、sqoop部署
1.解压
tar -zxvf sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /opt/modules/
2.重命名./conf/sqoop-env-template.sh为sqoop-env.sh文件
3.修改sqoop-env.sh文件
export HADOOP_COMMON_HOME=/opt/modules/apache/hadoop-2.7.3
export HADOOP_MAPRED_HOME=/opt/modules/apache/hadoop-2.7.3
export HIVE_HOME=/opt/modules/hive-1.2.1
export ZOOCFGDIR=/opt/modules/zookeeper-3.4.5/conf
4.使用 bin/sqoop help 可以查看帮助信息
5.将mysql驱动包放到sqoop/lib目录下,因为连接mysql需要!
cp /opt/software/mysql-connector-java-5.1.27-bin.jar ./
6.mysqlTohive需要配置hive相关参数
(1)往/etc/profile最后加入
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/opt/modules/hive-1.2.1/lib/*
然后刷新配置
source /etc/profile
(2) 把hive-site复制到sqoop/conf中!
cp ../hive-1.2.1/conf/hive-site.xml conf/
2.命令:
bin/sqoop version
三、测试
1.测试sqoop连接mysql
bin/sqoop list-databases --connect jdbc:mysql://cdh1:3306/ --username root --password 123456
结果:
20/08/29 17:45:25 INFO manager.MySQLManager: Preparing to use a MySQL streaming resultset.
information_schema
db_mblog
ecommerce
imooc_spark
metastore
metastorecdh
mysql
oasys
oozie
2.显示表
bin/sqoop \
list-tables \
--connect jdbc:mysql://cdh1:3306/sqoop \
--username root \
--password 123456
四、总结
1.参考资料:官网
http://archive.cloudera.com/cdh5/cdh/5/sqoop-1.4.6-cdh5.15.2/SqoopUserGuide.html