新闻网站大数据项目

news/2024/5/17 13:16:53/文章来源:https://blog.csdn.net/weixin_34363171/article/details/93030780

介绍:&emsp本次项目是基于企业大数据经典案例项目(大数据日志分析),全方位、全流程讲解 大数据项目的业务分析、技术选型、架构设计、集群规划、安装部署、整合继承与开发和web可视化交互设计。


一、业务需求

   (一)捕获用户浏览日志信息
   (二)实时分析前20名流量最高的新闻话题
   (三)实时统计当前线上已曝光的新闻话题
   (四)统计哪个时段用户浏览量最高

二、系统架构

新闻网站大数据项目

三、集群规划

新闻网站大数据项目

四、数据源介绍

新闻网站大数据项目

五、项目实战

1)离线采集数据

架构flume+hbase+hive
  数据是实时的用户查询日志信息,为了做离线的统计,需要将数据存储HDFS,写入的压力非常大,单位时间内写入的数据量比较大,直接向hdfs中写入的效率比较低;而hbase,高速随机读写的数据库,这里使用hbase去接收flume传送过来的数据,当数据被传入hbase之后,我们可以使用hive去关联hbase中的数据。
hbase建表
create 'zy_news_log' ,'cf''

2)关联flume+hbase

 使用sink为hbase或者asynchbase,但是这两种方式其中定义EventSerializer满足不了我们的需求,日志数据有6列,数据以\t分割,但是默认的hbasesink只能做到一列,所以只能自定义hbase-sink。
自定义sink源代码:http://down.51cto.com/data/2457853
编译打包: mvn package -DskipTests
将项目target目录下面的flume-hbase-sink-1.0-SNAPSHOT.jar
新闻网站大数据项目
放入到flume集群中的lib的目录下。
编写flume:flume-hbase-sink.conf

#########################################################
##
##主要作用是监听文件中的新增数据,采集到数据之后,下沉到hbase中表zy_news_log
##    注意:Flume agent的运行,主要就是配置source channel sink
##  下面的a1就是agent的代号,source叫r1 channel叫c1 sink叫k1
#########################################################
a1.sources = r1
a1.sinks = k1
a1.channels = c1#对于source的配置描述 监听文件中的新增数据
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /home/hadoop/data/flumedata/data/news_log.log#对于channel的配置描述 使用文件做数据的临时缓存 这种的安全性要高
a1.channels.c1.type = file
a1.channels.c1.checkpointDir = /home/hadoop/data/flumedata/project/checkpoint
a1.channels.c1.dataDirs = /home/hadoop/data/flumedata/project/channel
a1.channels.c1.capacity = 10000 
a1.channels.c1.transactionCapacity = 100a1.sinks.k1.type = hbase
a1.sinks.k1.table = zy_news_log
a1.sinks.k1.columnFamily = cf
a1.sinks.k1.serializer = com.zy.flume_hbase.MySimpleHbaseEventSerializer
a1.sinks.k1.serializer.payloadColumn = datetime,userid,searchname,retorder,cliorder,cliurl
a1.sinks.k1.serializer.seperator = \\t  
a1.sinks.k1.serializer.columnFamily = cf
#通过channel c1将source r1和sink k1关联起来
a1.sources.r1.channels = c1
a1.sinks.k1.channel =c1

后台启动:
flume-ng agent -n a1 -c conf -f flume-hbase-sink.conf -Dflume.root.logger=INFO,console
关联flume+hbase
hive创建hbase的表:

CREATE EXTERNAL TABLE zy_news_log(id string,datetime string,userid string,searchname string,retorder int,cliorder int,cliurl string
) 
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf:datetime,cf:userid,cf:searchname,cf:retorder,cf:cliorder,cf:cliurl")
TBLPROPERTIES ("hbase.table.name" = "zy_news_log", "hbase.mapred.output.outputtable" = "zy_news_log");

之后就可以在hive中做一些查询操作,来完成相关业务。

2)实时采集数据

架构flume+Kafka
创建topic

bin/kafka-topics.sh --create \
--topic zy-news-logs \
--zookeeper hadoop01:2181,hadoop02:2181,hadoop03:2181 \
--partitions 3 \
--replication-factor 3

指定flume的配置文件:flume-kafka-sink.conf
新闻网站大数据项目

a1.sources = r1
a1.sinks = k1
a1.channels = c1#对于source的配置描述 监听文件中的新增数据 exec
a1.sources.r1.type = exec
a1.sources.r1.command  = tail -F /home/data/projects/news/data/news_log_rt.log#对于sink的配置描述 使用kafka日志做数据的消费
a1.sinks.k1.type = org.apache.flume.sink.kafka.KafkaSink
a1.sinks.k1.kafka.bootstrap.servers = hadoop01:9092,hadoop02:9092,hadoop03:9092
a1.sinks.k1.kafka.topic = zy-news-logs
a1.sinks.k1.kafka.flumeBatchSize = 1000
a1.sinks.k1.kafka.producer.acks = 1
a1.sinks.k1.kafka.producer.linger.ms = 1#对于channel的配置描述 使用文件做数据的临时缓存 这种的安全性要高
a1.channels.c1.type = memory
a1.channels.c1.capacity = 100000
a1.channels.c1.transactionCapacity = 1000#通过channel c1将source r1和sink k1关联起来
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

4)数据的统计分析

SparkStreaming+Kafka+web+scala+java+maven+hbase/mysql/redis
具体的代码实现可以在小编的博客中下载:http://down.51cto.com/data/2457867

转载于:https://blog.51cto.com/14048416/2340823

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_791486.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

个人博客一|抓取崔庆才个人博客网站前端源码

1、准备 工具:仿站小工具V9.0 工具获取方式一: 关注微信公众号 微信公众号『stormsha』,后台回复『仿站工具』获取工具 工具获取方式二: 仿站小工具官网 https://smalltool.github.io/崔庆才博客 https://cuiqingcai.com/从网站源…

15 个边玩游戏边学编程的网站

Java面试笔试面经、Java技术每天学习一点Java面试关注不迷路作者:创客星辰来源:辰语学习笔记前言经常听到有朋友说,学习编程是一件非常枯燥无味的事情。其实,大家有没有认真想过,可能是我们的学习方法不对?…

Python 编程快速上手 让繁琐工作自动化-第十一章实践项目 11.11.2 图像网站下载...

Python 编程快速上手 让繁琐工作自动化-第十一章实践项目 11.11.2 图像网站下载编写一个程序,访问图像共享网站,如Flickr 或Imgur,查找一个类型的照片,然后下载所有查询结果的图像。可以编写一个程序,访问任何具有查找…

pageadmin CMS网站建设:.Net Framework的安装教程

pageadmin CMS网站制作:.Net Framework的安装教程 Net Framework是微软的一个系统组件,基本所有windows平台上开发的产品都需要安装Net Framework,除了winxp这种老系统,所有的window系统都自带,Net Framework,如果您的…

为什么程序员的个人网站博客一般都很丑

为什么程序员的个人网站博客一般都很丑?说实话,在国内程序员的个人站UI、UE出彩的还是比较少的,依然还是90年代是web1.0的风格。 而且,作为前端程序员,什么交互设计,什么css3动效果,平常项目中…

中大型网站技术架构演变过程

Java面试笔试面经、Java技术每天学习一点Java面试关注不迷路作者:汤帅来源:https://juejin.im/user/5aeea24b6fb9a07aa11419241、大型网站的特点高并发,大流量:PV量巨大。即页面浏览量;用户每1次对网站中的每个网页访问…

6个超酷的网站,专门用于学习编程算法

Java面试笔试面经、Java技术每天学习一点Java面试关注不迷路程序员书库(ID:CodingBook) 猿妹编译书单来自:https://levelup.gitconnected.com/6-super-cool-websites-for-practicing-algorithms-learning-programming-4cda65a64b7…

做一个网站多少钱?

Java面试笔试面经、Java技术每天学习一点Java面试关注不迷路作者:kimix 的博客来源:kimix.name/做一個網站多少錢?/「一辆车子多少钱?一个房子多少钱?」这问题在工程师或设计师的眼里就如「一辆车子多少钱?…

GitHub网站究竟可不可靠?谷歌工程师教你用BigQuery一探究竟

作者简介:Felipe Hoffa,谷歌开发顾问,来自智利,现工作于旧金山以及全球各地,谷歌Cloud Platform社区编辑。 以独特方式组织的可视化数据往往能够为我们提出一些有趣的观点。Felipe Hoffa最近使用BigQuery结合Reddit近八…

大型网站技术架构(五)网站高可用架构

2019独角兽企业重金招聘Python工程师标准>>> 网站的可用性(Avaliability)描述网站可有效访问的特性。 1、网站可用性的度量与考核 网站不可用时间(故障时间)故障修复时间点-故障发现(报告)时间点…

如何打造一个小而精的电商网站架构?

本文大纲: 1. 小型电商网站的架构 2. 日志与监控系统的解决方案 3. 构建数据库的主从架构 4. 基于共享存储的图片服务器架构 5. 移动M站建设 6. 系统容量预估 7. 缓存系统 一、小型电商网站的架构 刚从传统软件行业进入到电商企业时,觉得电商网站…

全网最全编程学习网站汇总来了,还不赶快收藏

Java面试笔试面经、Java技术每天学习一点公众号Java面试关注我不迷路作者:brightwang来源:https众所周知,程序员是一个需要不断学习的职业,而幸运的是,在这个互联网时代,知识就在那里,等着我们去…

老同学十块钱让我帮做个视频网站,带弹幕那种

Java面试笔试面经、Java技术每天学习一点公众号Java面试关注我不迷路作者:刘滨浩来源:https://binhao.blog.csdn.net/2021年了,还有不支持弹幕的视频网站吗,现在各种弹幕玩法层出不穷,抽奖,ppt都上弹幕玩法…

Drupal 网站漏洞修复以及网站安全防护加固方法

drupal是目前网站系统使用较多一个开源PHP管理系统,架构使用的是php环境mysql数据库的环境配置,drupal的代码开发较为严谨,安全性较高,但是再安全的网站系统,也会出现网站漏洞,drupal是网站运行访问必不可少…

【Python爬虫系列】为什么我喜欢python?来看看这些让人爱不释手的原因吧,购物网站大盘点,看过这些python做的项目,我立马入坑了…(神奇 | 爱了,爱了)

导语 Python编程零基础如何逆袭成为爬虫实战高手?! 哈喽!我是木木子,你们的贴心小助手。想学习爬虫的小可爱注意啦,一定不要错过哦~ 所有文章完整的素材源码都在👇👇 粉丝白嫖源码福利&#x…

oss php sdk+laravel搭建图片处理静态网站

背景和目标 接着上两篇继续写oss php sdklaravel搭建静态网站。 主要说下静态网站的重要部分图片服务,现在很多的网站上都会用到大量的图片, 图片在网页传输中占据很大的数据量, 图片处理也是影响网站性能的重要因素。 这篇文章主要结合oss的图片处理功能介绍如何利…

学习编程有疑问?七个网站助你菜鸟变大牛

很多同学在学习编程时候会遇到各种各样的问题,这些问题需要自己去想办法解决,那么这些网站平台将会给你很大的帮助。 1、W3school 这是一个免费学习编程语言的在线学习网站,里面的知识浅显易懂,非常适合初学者。如果你对编程还不…

前端学习的几个网站

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!1.菜鸟教程:http://www.runoob.c…

【云计算的1024种玩法】10分钟轻松设置出 A+ 评分的 HTTP/2 网站

前言 其实 HTTP/2 应该是 2015 年的老话题了(2015 年 5 月 14 日 HTTP/2 协议正式版的发布),但是 2018 年都到了很多网站依旧没有使用,作为新一代互联网协议,HTTP/2 不仅速度比目前常见的 HTTP/1.1 更快,而…

如何优化网站,网站推广优化一般流程

理论上针对不同类型的网站,优化网站的策略是不完全相对,但基于搜索引擎网站排名的原理,对于任何一个网站优化流程,都可以参考如下方法: 1、网站架构设计 在做网站信息架构的时候,我们并不单纯的只是简单的罗…