博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Sqoop
阅读量:6302 次
发布时间:2019-06-22

本文共 3615 字,大约阅读时间需要 12 分钟。

1、sqoop

flume数据采集 采集日志数据

sqoop数据迁移 hdfs->mysql
azkaban任务调度 flume->hdfs->shell->hive->sql->BI

sqoop数据迁移=mapreduce

处理离线数据
整个过程就是数据导入处理导出过程
直接使用map

sqoop作用:简化开发

mysql->hdfs
mapreduce
sqoop!

2、概述:

Apache Sqoop(TM)是一种工具,用于在Apache Hadoop和结构化数据存储(如关

系数据库)之间高效传输批量数据 。数据迁移!
Sqoop于2012年3月成功从孵化器毕业,现在是一个顶级Apache项目: 更多信息

3、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

4、sqoop的import导入

import导入:mysql->hdfs

export导出:hdfs->mysql
mysql->hdfs操作:
1)导入mysql驱动到sqoop/lib下
2)命令操作
mysql> create database sqoop;
mysql> use sqoop;
mysql> create table user(id int primary key auto_increment,name varchar(50),addr varchar(300));

 
[root@hsiehchou121 sqoop]# bin/sqoop import \
> --connect jdbc:mysql://hsiehchou121: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=’hsiehchou121’;
delete from user where Host=’::1’;
flush privileges;

使用query对数据进行过滤

 
[root@hsiehchou121 sqoop]# bin/sqoop import \
> --connect jdbc:mysql://hsiehchou121: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'

直接过滤字段

 
[root@hsiehchou121 sqoop]# bin/sqoop import \
> --username root \
> --password root \
> --connect jdbc:mysql://hsiehchou121:3306/sqoop \
> --target-dir /sqoop/selectimport1 \
> --num-mappers 1 \
> --table user \
> --columns addr

5、mysql导入到hive

在~/.bash_profile里面增加下面配置

 
export HADOOP_CLASSPATH=$HADOOP_CLASSPATH:/root/hd/hive/lib/*
export HADOOP_USER_HOME=root
 
[root@hsiehchou121 sqoop]# bin/sqoop import \
> --connect jdbc:mysql://hsiehchou121:3306/sqoop \
> --username root \
> --password root \
> --table user \
> --num-mappers 1 \
> --hive-import \
> --fields-terminated-by "\t" \
> --hive-overwrite \
> --hive-table user_sqoop

6、sqoop的export命令

hive->mysql

hive导出到mysql
首先清空mysql里面的user:truncate table user;

 
[root@hsiehchou121 sqoop]# bin/sqoop export \
> --connect jdbc:mysql://hsiehchou121:3306/sqoop \
> --username root \
> --password root \
> --table user \
> --num-mappers 1 \
> --export-dir /user/hive/warehouse/user_sqoop \
> --input-fields-terminated-by "\t"

7、常用参数

import 导入数据到集群

export 从集群导出数据
create-hive-table 创建hive表
import-all-tables 指定关系型数据库所有表到hdfs集群
list-databases 列出所有数据库
list-tables 列出所有数据库表
merge 合并hdfs中的不同目录下的数据
codegen 获取某张表数据生成JavaBean 并打包

 
[root@hsiehchou121 sqoop]# bin/sqoop codegen \
> --connect jdbc:mysql://hsiehchou121:3306/sqoop \
> --username root \
> --password root \
> --table user \
> --bindir /root/sqoopjar/UserBean \
> --class-name UserBean \
> --fields-terminated-by "\t"
 
[root@hsiehchou121 sqoop]# bin/sqoop list-databases \
> --connect jdbc:mysql://hsiehchou121:3306/ \
> --username root \
> --password root
 
[root@hsiehchou121 sqoop]# bin/sqoop merge \
> --new-data /testmerge/new/ \
> --onto /testmerge/old/ \
> --target-dir /testmerge/merged table user \
> --jar-file /root/sqoopjar/UserBean/UserBean.jar \
> --class-name UserBean \
> --merge-key id

注意:

merge操作是一个新表替代旧表的操作,如果有冲突id的话新表数据替换旧表数据,如果没有冲突则是新表数据添加到旧表的数据

用户画像 merge

身高180 体重70 爱好 …..
身高180 体重90 爱好….

广告大数据 提高销量 广告推送更加精准

工业大数据 flink面试

转载于:https://www.cnblogs.com/hsiehchou/p/10505027.html

你可能感兴趣的文章
react脚手架应用以及iview安装
查看>>
shell学习之用户管理和文件属性
查看>>
day8--socket网络编程进阶
查看>>
node mysql模块写入中文字符时的乱码问题
查看>>
仍需"敬请期待"的微信沃卡
查看>>
分析Ajax爬取今日头条街拍美图
查看>>
内存分布简视图
查看>>
POJ 2918 求解数独
查看>>
如何学习虚拟现实技术vr? vr初级入门教程开始
查看>>
第4 章序列的应用
查看>>
Mysql explain
查看>>
初识闭包
查看>>
java tcp socket实例
查看>>
011 指针的算术运算
查看>>
hdu1874畅通工程续
查看>>
rails 字符串 转化为 html
查看>>
java-学习8
查看>>
AOP动态代理
查看>>
Oracle序列
查看>>
xcodebuild命令行编译错误问题解决
查看>>