sqoop
flume数据采集 采集日志数据
sqoop数据迁移 hdfs->mysql
azkaban任务调度 flume->hdfs->shell->hive->sql->BI
sqoop数据迁移=mapreduce
处理离线数据
整个过程就是数据导入处理导出过程
直接使用map
sqoop作用:简化开发
mysql->hdfs
mapreduce
sqoop!
概述:
Apache Sqoop(TM)是一种工具,用于在Apache Hadoop和结构化数据存储(如关
系数据库)之间高效传输批量数据 。数据迁移!
Sqoop于2012年3月成功从孵化器毕业,现在是一个*Apache项目: 更多信息
sqoop安装部署
1)下载
2)上传
3)解压
4)重命名
mv sqoop-env-template.sh sqoop-env.sh
5)添加配置信息
export HADOOP_COMMON_HOME=/root/hd/hadoop-2.8.4
export HADOOP_MAPRED_HOME=/root/hd/hadoop-2.8.4
export HIVE_HOME=/root/hd/hive
export ZOOCFGDIR=/root/hd/zookeeper-3.4.10/conf
6)启动查看版本号
bin/sqoop version
sqoop的import导入
import导入:mysql->hdfs
export导出:hdfs->mysql
mysql->hdfs操作:
1)导入mysql驱动到sqoop/lib下
2)命令操作
bin/sqoop import
--connect jdbc:mysql://hd-01:3306/sqoop
--username root
--password root
--table user
--target-dir /sqoop/datas
--num-mappers 1
--fields-terminated-by "\t"
注意:如果显示mysql的访问权限问题,需要设置mysql的用户权限:所在库 mysql库
的user表
update user set host='%' where host='localhost';
delete from user where Host='127.0.0.1';
delete from user where Host='hd-01';
delete from user where Host='::1';
flush privileges;
使用query对数据进行过滤:
bin/sqoop import
--connect jdbc:mysql://hd-01:3306/sqoop
--username root
--password root
--target-dir /sqoop/selectimport
--num-mappers 1
--fields-terminated-by "\t"
--query 'select * from user where id<=1 and $CONDITIONS'
直接过滤字段
bin/sqoop import
--username root
--password root
--connect jdbc:mysql://hd-01:3306/sqoop
--target-dir /sqoop/datas/selectimport1
--num-mappers 1
--table user
--columns addr
mysql导入到hive
bin/sqoop import
--connect jdbc:mysql://hd-01:3306/sqoop
--username root
--password root
--table user
--num-mappers 1
--hive-import
--fields-terminated-by "\t"
--hive-overwrite
--hive-table user_sqoop
sqoop的export命令
hive->mysql
hive导出到mysql
bin/sqoop export
--connect jdbc:mysql://hd-01:3306/sqoop
--username root
--password root
--table user
--num-mappers 1
--export-dir /user/hive/warehouse/user_sqoop
--input-fields-terminated-by "\t"
常用参数
import 导入数据到集群
export 从集群导出数据
create-hive-table 创建hive表
import-all-tables 指定关系型数据库所有表到hdfs集群
list-databases 列出所有数据库
list-tables 列出所有数据库表
merge 合并hdfs中的不同目录下的数据
codegen 获取某张表数据生成JavaBean 并打包
bin/sqoop merge
--new-data /testmerge/new/
--onto /testmerge/old/
--target-dir /testmerge/merged
--jar-file =/root/sqoopjar/UserBean/UserBean.jar
--class-name UserBean
--merge-key id
注意:merge操作是一个新表替代旧表的操作,如果有冲突id的话新表数据替换旧表数
据,如果没有冲突则是新表数据添加到旧表的数据。
用户画像 merge
身高180 体重70 三围 爱好 .....
身高180 体重90 爱好....
广告大数据 提高销量 广告推送更加精准
工业大数据 flink面试
相关文章
- 02-12sqoop&azkaban-1