08-azkaban和sqoop的介绍和使用

离线阶段第八天

azkaban两个服务模式的安装与使用

sqoop数据迁移

sqoop是一款数据导入导出的工具,从关系型数据库到大数据平台,从大数据平台到关系型数据库

sqoop的版本分为两大类:

sqoop1:主要就是通过命令行来进行操作,比较方便

sqoop2:添加了一个服务端的模式,需要启动一个服务端。我们可以通过代码操作,可以通过脚本操作,可以远程连接操作数据的导入导出等

一般我们都是使用sqoop1这种版本,我们只需要写命令就可以将数据导入导出即可。以后就可以把命令,保存到脚本里面去,定时的执行脚本即可

数据导入导出,都是启动了一个job任务,这个job任务只有maptask,没有reduceTask

使用sqoop列举出数据库当中所有的数据库

bin/sqoop list-databases  --connect jdbc:mysql://192.168.16.30:3306 --username root --password admin

列举出win7某个数据库下面的所有的数据库表

bin/sqoop list-tables --connect jdbc:mysql://192.168.16.30:3306/userdb --username root --password admin

将关系型数据库里面的数据导入到hdfs上面去

bin/sqoop import --connect jdbc:mysql://192.168.16.30:3306/userdb --username root --password admin --table emp -m 1 

将mysql数据导入到hdfs里面去,并且指定导入的路径

 bin/sqoop import --connect jdbc:mysql://192.168.16.30:3306/userdb --username root --password admin --table emp -m 1 --delete-target-dir --target-dir /sqoop/emp

将mysql数据导入到hdfs里面去,并且指定导入的路径,并且指定字段之间的分隔符(一定要掌握)

bin/sqoop import --connect jdbc:mysql://192.168.16.30:3306/userdb --username root --password admin --table emp -m 1 --delete-target-dir --target-dir /sqoop/emp2  --fields-terminated-by '\t'

导入mysql数据到hive里面去

记得一定要拷贝hive-exec.jar到sqoop的lib目录下去

不然的话,数据也不能够导入到hdfs里面去

将mysql数据导入到hive的表里面去(需要提前建立hive的表)

 bin/sqoop import --connect jdbc:mysql://192.168.16.30:3306/userdb --username root --password admin   --table emp --fields-terminated-by '\001' --hive-import --hive-table sqooptohive.emp_hive --hive-overwrite --delete-target-dir --m 1

导入数据到hive数据库并且自动建立hive的表

 bin/sqoop import --connect jdbc:mysql://192.168.16.30:3306/userdb --username root --password admin --table emp_conn --hive-import -m 1 --hive-database sqooptohive

导入数据子集:我们可以通过自定义sql语句,决定我们需要导入哪些数据

 bin/sqoop import --connect jdbc:mysql://192.168.16.30:3306/userdb --username root --password admin  --delete-target-dir -m 1 --query 'select phno from emp_conn where 1=1 and  $CONDITIONS' --target-dir /sqoop/emp_conn

增量导入

实际工作的当中,一般都是每天导出一次数据库里面的数据出来,一般都是凌晨导入前一天的数据,可以通过sqoop的增量的导入,将我们的数据,每天导入一次到hdfs里面去,这种方式就叫做增量的导入

只需要导入前一天的数据,以前的数据都导入过,就不用再导入了

Incremental import arguments:
   --check-column <column>        Source column to check for incremental
        id                          change
   指定我们导入的时候以哪个字段为准                         
                                 
   --incremental <import-type>    Define an incremental import of type
                                  'append' or 'lastmodified'
   使用增量导入的模式                          
                                  
                                  
                                  
   --last-value <value>           Last imported value in the incremental
          1205                         check column
   字段最后的一个值                              
                              

如果我们指定 --check-column id 指定 --last-value 1205 就会把id值大于1205的数据全部导入过来

伪增量导入

bin/sqoop import --connect jdbc:mysql://192.168.16.30:3306/userdb --username root --password admin  --table emp --incremental append --check-column id --last-value 1205 -m1 --target-dir /sqoop/increment

通过–where来实现我们数据的增量的导入

 bin/sqoop import --connect jdbc:mysql://192.168.16.30:3306/userdb --username root --password admin  --table emp --incremental append --where "create_time > '2018-06-17 00:00:00' and create_time < '2018-06-17 23:59:59'" --target-dir /sqoop/incement2 --check-column id -m 1 

面试题:如何解决减量的数据?????

数据库里面被别人删除了一条数据

2018-12-30 应该去导入2018-12-29号的数据 但是别人还把2018-12-25 号的一条数据给删掉了???

一个人去银行办理业务,之前的手机号是13788888888 改成了13766666666

数据的标记,没有什么删除不删除数据只说,所有的删除都是逻辑删除,其实就是更新数据

如果真的要做数据,所有的删除操作都是逻辑删除

任何删除的操作都是有一定意义的

我们获取数据的时候

–where " update_time > ‘2018-12-27 00:00:00 and update_time < 2018-12-27 23:59:59’"

如何解决减量的数据???

没有减量的数据,所有的减量的数据,都是更新操作,一旦更细,更新时间就会变,到时候我们就按照更新时间来进行获取数据即可

hello 2018-12-25 12:25

hello 2018-12-27 12:25

sqoop 导出数据到mysql里面去

bin/sqoop export \

--connect jdbc:mysql://192.168.16.30:3306/userdb \

--username root --password admin \

--table emp_out \

--export-dir /sqoop/emp \

--input-fields-terminated-by ","

如果数据导出的时候,出现中断怎么办??

一般可以这么做,将我们的数据导出到一张临时表里面去,如果临时表导入成功,我们再去导入数据到真正的目标表里面去,可以提高我们导入成功的概率

通过java执行shell命令

网站点击流日志数据综合分析

分析我们网站的用户访问的日志,可以获取我们这个网站很多信息,比如说网站的一些运营情况是否好坏等等,包括用户的一些商品推荐等等也可以知道

不怕你不买,就怕你不来

网站运营

什么时候,什么情况能够让你心甘情愿的掏钱购买

pageView表模型:重视的是每一次页面的访问情况,每一个页面受到访问,都要进行记录,然后按照我们ip和时间进行区分我们每一条数据属于哪一个ip,哪一次session会话当中

visit表模型:重视的是一次session会话的情况,哪个ip从什么时间进来网站,进来访问哪个页面,什么时间出去网站,出去最后访问的一个页面。以及这次会话,一共访问了多少个页面

高收益一定伴随高风险:一般的开公司的回报率大概在 10% - 20%

网站分析常见的一些手段:

流量的质量分析: 竞价排名 魏则西事件 莆田医院

网站流量多维度分析:从各个方面可以分析我们的网站的访问情况

网站内容及导航分析:分析我们网站的浏览情况,以及我们流量的导流情况

网络刷手,改评论

漏斗转化模型的分析:

流量分析常见的指标:

骨灰级的指标:

​ IP:网站每日访问不重复的ip的个数。不重复的ip的个数越多,说明我这个网站访问的独立的人越多

​ Page View:PV值,访问一个页面算作一次PV

​ Unique Page View : UV值 一天之内访问网站不重复的用户数。不重复的用户越多,说明我这个网址 访问的人数越多。使用cookie来进行区分不同的用户

基础级指标:

​ 访问次数:session级别的次数

​ 网站停留时间:可以统计每个人再网站停留多长时间

​ 页面停留时间:页面停留时间,每个页面停留多长时间

复合级指标:

​ 人均浏览页数:平均一个人看了几个页面 总的页面浏览次数/去重的人数

​ 跳出率:只访问了一个页面就跑了的人数/总的访问的人数

​ 退出率:只访问了一次(session会话级别)就跑了的人数/总的访问人数

基础分析指标:

​ 趋势分析:网站流量的走势

​ 对比分析:同比与环比

​ 当前在线:当前网站有多少个人在线进行访问

​ 访问明细:访问用户的一些详情信息

通过ip地址可以确定我们一个人的大致范围

友盟大数据统计

https://solution.umeng.com/?spm=a211g2.182260.0.0.650d9761zdqr58

来源分析:主要就是分析我们网站访问的各种流量都是从哪里来的

受访分析:网站受到访问的一些分析情况

访客分析:分析来我们网站访问的用户,都是哪一类人

大数据杀熟

滴滴打车

转化路径分析:

数据导入导出的工具:canal streamset flume 采集mysql数据 得要下去了解

实际采集mysql数据库的数据

谷歌才是真正做科技的公司

如果谷歌回来,我们光明正大的竞争,我还能够再赢一次

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值