朱焕青
朱焕青新锐讲师讲师评分4.8学员26228课程9

一个不安分的程序员

更多
    • 畅销套餐
    • 精选套餐
    • 人气套餐
    • 尊享套餐
    • 高薪套餐
  • 课程介绍
  • 课程大纲

适合人群:

了解了大数据组件又不知道怎么用的同学,想通过实战加深对大数据掌握的同学

你将会学到:

练习使用Docker部署Kafka创建自己的Flume镜像抽取Nginx日志入Kafka等

课程简介:

tianlangstuio-clickstream-humor.png

请先免费观看上一季视频:

前端采集环境准备 https://edu.51cto.com/course/18823.html

下季视频地址:

大数据开发实战之点击流

 https://edu.51cto.com/course/19018.html


本期视频在语言及视频清晰度等方面均有很大改善,课程涵盖从nginx日志配置到采用Flume容器抽取Nginx日志到Kafka中,你将接触更多的Docker实用操作及大数据组件Flume、Kafka

关于开发环境:

操作系统:

Linux  4.15.0-47-generic

Docker:

    Client:

     Version:           18.09.7

     API version:       1.39

     Go version:        go1.10.8

    

    Server: Docker Engine - Community

     Engine:

      Version:          18.09.7

      API version:      1.39 (minimum version 1.12)

      Go version:       go1.10.8

关于视频制作:

       为了节约您的时间提高学习效率我们将原始视频从1个小时剪辑压缩到10分钟左右,剪辑掉了程序执行、文件下载等时间,由此可能引起视频场景切换不平滑等问题,请知悉!

关于讲师:

      曾任美国上市公司大数据架构师

      曾任公安行业公司首席架构师

      自我学习者

      211/985学历,BAT名企工作背景都没有,一路自学从初级工程师做到**架构师,从月薪500做到年限50万,我还是个孩子,还是那个没伞的孩子


关于讲师讲解风格:

        这是实战课,实战课,实战课……

想了解Docker、Spark、Hadoop等概念的请绕行。

以简单的方式重现真实项目场景,通过真实的项目实战串联Docker、Nginx、Spark、Redis等技术点。

以问题为导向引导学员思考培养解决问题能力。

通过本课程你将具备搭建点击流系统的能力,加深对大数据、Docker的理解,增加项目经验。


展开更多

课程大纲-大数据开发实战之点击流<二>数据抽取

  • 1

    编写采集JS 2接上季https://edu.51cto.com/center/course/lesson/index?id=414070 在这一期里我们开始编写采集用户点击行为信息的StatJS,很幸运的是我们遇到了在浏览器Console中执行代码可以获取到超链接对象但同样的代码在StatJS中却获取不到。后面我们修改了StatJS在index.html中的加入位置解决了这个问题。这次经历告诉我们有些时候代码的确没有问题但是加载的地方或者运行的环境可能引起问题。 通过给A标签添加onclick事件监听我们获取到了用户点击的坐标点击的具体哪个A标签,为了区分A标签我们还给A标签添加了自定义属性data-sid。 我们编写了sendToServer 函数专门用于将数据传送给服务端。

    「仅限付费用户」点击下载“write-statjs.pdf”

    [13:48]
  • 2

    使用Docker启动Nginx并配置日志这期我们使用Docker启动了Stat Nginx并配置其日志参数将statjs采集的用户点击行为数据输出到日志文件中 练习了使用history grep在命令行中查找使用过的命令 复习了用apt安装vim请思考: 1.拿到用户浏览器信息我们可以做那些统计 2.我们当前Stat Nginx的日志是输出在容器内部的文件中的我们如果用Flume采集该怎么读取到这些文件呢

    「仅限付费用户」点击下载“lesson5-run-stat-nginx-by-docker.pdf”

    [11:45]
  • 3

    创建Flume Docker镜像在本期我们通过网易和Docker官方的镜像中心都没有找到比较新的Flume Docker镜像,最后我们通过clone并修改github上一个Docker Flume项目创建了我们自己的Flume 1.9.0镜像在修改项目代码前我们使用:git checkout -b 分支名称创建了一个git本地分支 并在新建的分支中修改Dockerfile文件把Dockerfile中的1.8.0换成了1.9.0 在执行Docker build创建我们自己的镜像的时候出错了我们通过使用父镜像起一个容器并进入容器中执行Dockerfile中的命令确定出错命令,找到了jre包没有正常下载通过修改jre下载链接后我们成功执行了:docker build -t tianlangstudio/flume:1.9.0 .创建了我们自己的Flume Docker镜像然后我们通过执行Apache Flume Getting Start文档里的Demo验证了我们的Docker镜像可以正常工作

    「仅限付费用户」点击下载“点击流课程.pdf”

    [13:19]
  • 4

    使用Flume镜像抽取Nginx日志在上期我们创建了我们自己的Flume镜像,在这期里我们将使用这个镜像抽取Nginx日志 我们先把ClickStream Nginx和Stat Nginx启动起来,使用docker exec命令进入stat nginx容器:使用 tail -F 日志文件名称查看日志文件,这里我们用的是大F参数,tail命令还有小F参数,大F和小F的区别大家需要了解下。我们打开浏览器访问网站页面, 点击, 我们可以看到在tail -F窗口已经打印出了**的点击日志信息,这也就说明我们的Stat Nginx是可以正常接收前端Stat Js采集的用户点击行为数据并写入到日志文件里,如果用flume读取这个日志文件,还有个问题需要解决,当前的日志文件目录/var/log/nginx 是在stat Nginx内部吧,容器与容器之间的文件系统是隔离的吧,那我们用Flume容器就读不到stat Nginx的日志信息了吧? 怎么办呢?我们可以在执行Docker run命令启动stat Nginx容器的时候添加-v参数把nginx日志目录映射到本地机器上,但是现在我们的stat Nginx已经创建成功了吧,如果这个容器里已经做了大量更改再重新执行Docker run创建容器,以前做的工作

    「仅限付费用户」点击下载“点击流课程.pdf”

    [11:19]
  • 5

    使用Docker compose安装Kafka在上一期中通过我们制作的flume镜像已经抽取到了Nginx日志并打印在了控制台上,这一期我们将使用Docker在开发机器上安装一个Kafka,为后续Flume写入Kafka做准备我们在github上找到了一个kafka docker项目我们可以使用这个项目启动我们的Kafka首先我们需要把项目使用git clone到本地使用vim打开Docker-compose-single-broker.xml 文件, 这是一个Docker compose的配置文件,Docker compose是一个容器编排工具,我们在使用Docker的时候会碰到一个容器需要依赖另一个容器提供的功能的情况,比如说我们现在需要启动的Kafka容器需要依赖一个zookeeper容器,如果不使用容器编排工具我们每次启动Kafka都需要一个一个容器启动这样比较麻烦,用了编排工具我们只需要把容器间的依赖关系编写成配置文件然后交给编排工具去执行就可以了。Docker compose做为早期的编排工具功能有限这里推荐了解下k8s也就是kubernetes。但是对于我们当前开发使用compose功能已经可以满足而且相对简单。看这里配置了build配置项,也就是说这个Kafka容器启动时是需要先创建镜像的,这个项目

    「仅限付费用户」点击下载“点击流课程.pdf”

    [07:35]
  • 6

    使用Flume抽取Nginx日志到Kafka用Flume抽取Nginx日志写入kafka:在上一期中我们使用docker compose 启动了一个单节点的Kafka这一期我们将使用我们制作的Flume镜像将nginx日志抽取到Kafka中。要把日志信息写入到Kafka中我们是不是通过修改Agent配置中的Sink为Kafka Sink就可以了?不知道Kafka Sink怎么配置?! 没关系我也不知道。我们可以看官方文档啊,编程的时候有很多东西是没必要记得的吧?用的时候知道在哪里能够找到就可以了吧,没必要像背单词似的再背下Kafka Sink有XX配置什么的吧。我们从官方文档里找到Kafka Sink这里有写Kafka Sink相关的配置项吧,这里的flumeBatchSize用于控制一次往Kafka里最多写多少条数据的,我们数据量没那么大,一条一条写也没关系吧。这个acks学过kafka的话有印象吧,如果没印象,没关系,会用百度吧。我们看下面有个配置示例,这里有kafka sink的type该怎么设置吧,这里设置要写入的topic名称吧, 这个是配置使用的压缩方式我们就不压缩了吧,数据量又不大。我们就复制这个配置示例到我们的Agent配置中我们修改flumeBatchSize为1 刚才说了我们没那么大数

    「仅限付费用户」点击下载“点击流课程.pdf”

    [09:39]

“朱焕青”老师的其他课程更多+

在线
客服
APP
下载

下载Android客户端

下载iphone 客户端

官方
微信

关注官方微信

返回
顶部