flume1.8在线上业务中的使用和总结

分布式日志收集框架Flume-- 文章目录Flume概述Flume架构及核心组件Flume&JDK环境部署Flume实战案例一Flume实战案例二Flume实战案例三(重点掌握) 业务现状:公司有Hadoop集群;同时拥有大量日志数据;你想要把大量日志数据放入Hadoop中进行分析。 WebServer/ApplicationServer分散在各个机器上 想大数据平台Hadoop进行统计分析 日志如何收集到Hadoop平... 阅读详情
什么是flume?
  • flume是一个日志采集、聚合和传输的系统
    这里写图片描述
作用是什么?
  • 作用就是将业务集群上各个机器上的日志收集起来,对数据做集中处理。
部署文档
  • 最新版的flume1.8,请参官网 http://flume.apache.org/FlumeUserGuide.html 的使用说明,真的很详细。
  • 网上也有flume1.7的搭建教程,Google一下就可以,搭建过程没有太大的区别。
前期调研

在考虑日志的收集之前,我们主要调研了flume和logstash两款产品。当前业界使用较多的是logstash作为日志收集的工具。现将flume和logstash在我们的业务考虑范围内的区别简单罗列:

  • Logstash偏重于字段的预处理;flume偏重数据的传输。
  • Logstash有插件可以使用,配置比较灵活;flume则是强调用户的自定义开发(输入、存储、输出等)。
  • Logstash的输入、过滤和输出之间都有缓冲区;flume是有channel作持久化(可以自定义配置)
选择使用flume的原因:
  • 传输数据的可靠性(主要因素)。每一个source和sink都被封装成一个事务存储在channel中,可以保证数据准确的被下游消费。如果下游服务挂掉,flume可以将数据持久化到本地,等待下游服务恢复后在输出。
  • 只传输数据不解析。不会对原始的数据进行过滤和预解析,尽量保证主站机器的资源不被日志服务占据太多。所有的解析操作可以放在下游进行。
  • 多种配置方式。有丰富的数据读取方式,tail、socket、exec等等。数据存储可以在本地或者内存,可以配置各种存储空间大小。多种数据输出方式,输出到hdfs、下游flume、es、kafka等等。
  • 多输入输出。可以同时有多个数据源,也可以同时将数据输出到多个下游。
  • 如果实时性要求不高的话可以采取批量读取的方式。
  • 输出数据时可以对数据进行压缩后输出,存储带hdfs的话可能会需要吧。
  • 有java的api,我们可以自己实现对数据的过滤。

以上的调研并不能全面的概括flume的特性,只是它开箱即用的基本特性,其可扩展性很强大。

我们的日志收集系统的整体框架设计

日志收集框架图

如上图所示,在每个nginx机器上部署一个flume的客户端,将我们关心的日志文件写到到flume的配置文件中,具体的配置可以自行网上查找。

遇到的问题及解决办法

1、flume的服务挂了 日志数据怎么办?
可以采用将服务以守护进程的方式启动,监控进程的状态,日志是后端和nginx实时打在磁盘的,所以就算服务挂了,重启后也是可以读取到日志的对应位置。或者将flume的channel配置成file,就不会出现日志数据丢失的问题。

2、监听的文件fd换了 怎么监控?
flume监控的是文件名,并不是fd,所以当原始日志切换切分时,新创建的日志文件只要名称不变,还是可以监控到。

3、当flume的sink配置的是hdfs时,可以选择将数据压缩。flume支持通用的压缩算法。我们采用了gzip的压缩算法,比不压缩节省约90%的磁盘空间。

最最最重要的问题来了

在flume的sink配置的是hdfs时,请做以下操作,顺序无所谓:

  • flume使用的是hadoop和hdfs中的lib目录下的jar包,所以需要将对应的jar包导入到flume的lib目录下;
  • 导入core-site.xml和hdfs-site.xml文件,如果文件中配置的是hadoop节点的名字,需要将名字和对应的机器ip配置到/etc/hosts中,不然flume找不到;
  • 一定要将hadoop集群中的native目录导入到flume服务端所在机器的环境变量中,命令 export ~/flume/native。原因是Hadoop是使用Java开发的,但是有一些需求和操作并不适合使用java,所以就引入了本地库的概念,通过本地库,Hadoop可以更加高效地执行某一些操作。

没有导入的时候一般的操作没有什么问题,但是,使用gzip做数据压缩时就会出现系统环境的问题,导致hadoop集群上hive不能正确的解压缩数据。
没有导入native时,gzip压缩的文件使用file查看文件类型时是: gzip compressed data, from FAT filesystem (MS-DOS, OS/2, NT)
导入后,gzip压缩的文件使用file查看文件类型时是: gzip compressed data, from Unix。这才是我们想要的压缩文件。
所以,一定要导入native!!!千万不要踩坑!!!

目前发现的问题

1、当原始日志被修改过,flume会认为该文件是新创建的。但是线上的日志一般不会有rd去修改,所以目前数据收集工作一切正常。

尚硅谷大数据项目《在线教育之采集系统》笔记001 阅读详情

相关推荐

超详细版risc-v五级流水线cpu硬件设计实现解析

深入剖析risc-v五级流水线cpu的硬件架构与设计细节,涵盖指令流程、模块划分与关键时序控制,帮助理解risc-v五级流水线cpu的工作机制与优化策略。

weixin_42437253的博客 1633

Flume

Flume 介绍 Flume是一个高可用,高可靠,分布式的海量日志采集、聚合和传输的系统,能够有效的收集、聚合、移动大量的日志数据。 Agent是由Source、Channel、Sink这三大组件组成的,这就是Flume中的三大核心组件,其中source是数据源,负责读取数据channel是临时存储数据的,source会把读取到的数据临时存储到channel中sink是负责从channel中读取数据的,最终将数据写出去,写到指定的目的地中。 Flume的三大核心组件 Sour.

爱编程 316

Hifiasm参数调优实战:当N50不理想时的7个排查方向与解决方案

本文详细解析了Hifiasm参数调优实战,针对基因组组装中N50不理想的7个排查方向与解决方案。通过调整--hom-cov、-D、-N等核心参数,结合HiFi数据和参考基因组分析,有效提升组装质量。文章以猪毛菜基因组为例,展示了从2.1MB到4.3MB的N50优化过程,为生物信息学研究者提供实用指南。

weixin_30642561的博客 426

flume 崩溃问题

flume 如果使用 exec , tail -f 方式收集日志,会有已定概率丢失,崩溃。解决办法: 1 增加 restart 属性配置 ,可以稳定运行近一个月。 2 配置第二到保险,使用 crontab -e 增加一个linux 的守护任务 shell 脚本。

问道至简 1926

DISM错误87详解:RestoreHealth选项无法识别的修复方法

DISM(部署映像服务和管理工具)是Windows系统维护与修复的核心命令行工具,常与SFC(系统文件检查器)配合使用,用于扫描和修复组件存储损坏、系统文件缺失等问题。在执行系统健康检查时,用户常会遭遇错误87,提示“未在此上下文中识别出restorehealth选项”。该错误的本质并非工具损坏,而是命令参数结构不符合DISM的语法解析规则,或当前系统环境(如Windows 7、WinRE/PE、32位环境)不支持该参数。理解DISM的命令层级、参数挂载关系以及运行上下文,是精准排除故障的前提。通过核对标准

weixin_34116482的博客 484

YOLOv8实例分割实战:从LabelMe标注到模型训练全流程(附完整代码)

本文详细介绍了YOLOv8实例分割的完整实战流程,涵盖从使用LabelMe进行数据标注、格式转换,到构建数据集、配置参数并完成模型训练的全过程。文章提供了详尽的代码示例和常见问题解决方案,旨在帮助开发者高效掌握YOLOv8实例分割技术,快速应用于实际项目。

java5的博客 816

Flume相关

Flume1.flume管道内存,flume宕机了数据丢失怎么解决2. flume配置方式,flume集群Flume的架构常用Source:常用channel常用sink3.flume不采集Nginx日志,通过Logger4j采集日志,优缺点是什么?4.flume和kafka采集日志区别,采集日志时中间停了,怎么记录之前的日志。 1.flume管道内存,flume宕机了数据丢失怎么解决 解答: 1、Flume的channel分为很多种,可以将数据写入到文件 2、防止非首个agent宕机的方法数可以做集群

qq_46893497的博客 301

数字IC后端时钟树综合实战:OCC电路优化与时钟树平衡策略

本文深入探讨了数字IC后端设计中时钟树综合的关键挑战,重点分析了OCC电路时钟树优化的必要性。通过实战案例,详细阐述了如何通过手动干预、时钟分组与分段长树等策略,避免工具自动平衡导致的时序违例和资源浪费,从而有效实现时钟树平衡并提升设计质量。

weixin_29306261的博客 331

Flume面试题

1.Flume 采集数据会丢失吗? 不会,Channel 存储可以存储在 File 中,数据传输自身有事务。 2.Flume 与 Kafka 的选取? 采集层主要可以使用 Flume、Kafka 两种技术。 Flume:Flume 是管道流方式,提供了很多的默认实现,让用户通过参数部署,及扩展 API。 Kafka:Kafka 是一个可持久化的分布式的消息队列。 Kafka 是一个非常通用的...

大数据指北 1万+

《网络安全自学教程》- MySQL脱库原理和步骤

MySQL脱库,脱库的原理,怎么脱库,脱库的步骤,一库三表六字段

wangyuxiang946的博客 1万+

AUTOSAR AP——SM模块

对AUTOSAR AP中状态管理模块SM,从模块定义、总结等多方面进行了介绍。

weixin_43627682的博客 284

Flume1.8.0背景介绍以及安装部署

一、Flume背景 Hadoop业务的整体开发流程: 从Hadoop的业务开发流程图中可以看出,在大数据的业务处理过程中,对于数据的采集是十分重要的一步,也是不可避免的一步。 许多公司的平台每天会产生大量的日志(一般为流式数据,如,搜索引擎的pv,查询等),处理这些日志需要特定的日志系统,一般而言,这些系统需要具有以下特征: (1) 构建应用系统和分析系统的桥梁,并将它们之间的关联解耦; (2) 支持近实时的在线分析系统和类似于Hadoop之类的离线分析系统; (3) 具有高可扩展性。即:当数据量增加时,

weixin_43579015的博客 2311

[Python] 如何使用 Python 调用 Dify 工作流服务实现自动化翻译

本文介绍了如何使用Python调用Dify的API实现文本翻译自动化。Dify作为AI开发平台,其工作流功能可执行文本处理、翻译等任务。选择Python调用Dify的优势在于职责划分清晰:Dify专注AI服务,Python处理文件操作等非AI任务。

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 1097

flume的初体验

1. flume的基础介绍 (1)常用的数据收集工具   - Chukwa(Apache)  - Scribe(Facebook)  - Fluentd:Fluentd 使用 C/Ruby 开发,使用 JSON 文件来统一日 志数据。  - Logstash(著名的开源数据栈 ELK(ElasticSearch,Logstash,Kibana)中的那个 L)  - Flume(Apache):开...

weixin_34060741的博客 151

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

Spark Streaming实时流处理项目实战(三)日志收集Flume

分布式日志收集框架Flume业务现状分析Flume概述Flume架构及核心组件Flume环境部署Flume实战 业务现状分析 如何解决我们的数据从其他server上移动到Hadoop之上 shell 将数据cp到hadoop的机器上然后再使用 hadoop fs -put …将数据放入到hdfs上 使用传统方案没有办法解决容错和负载均衡,这时可以使用Flume Flume概述 Flume官网:http://flume.apache.org/ Flume是一种分布式的、高可靠的、高可用的服务,用于高效

weixin_36815898的博客 2375

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

轻松入门大数据 第12章 零基础:极速入门日志收集系统Flume 12.1 日志收集框架Flume 12.1.4 竞品分析

轻松入门大数据 第12章 零基础:极速入门日志收集系统Flume 12.1 日志收集框架Flume 12.1.4 竞品分析

代码改变世界 288

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

新闻大数据实时分析可视化系统,Flume+HBase+Kafka

原文:https://blog.csdn.net/u011254180/article/details/80172452 https://blog.csdn.net/xw15061126063/article/details/86760299 本次项目是基于企业大数据经典案例项目(大数据日志分析),全方位、全流程讲解 大数据项目的业务分析、技术选型、架构设计、集群规划、安装部署、整合继承与开...

. 2840

国赛实时采集实战:Flume+Kafka+HDFS高可靠数据管道搭建

在大数据实时处理场景中,数据采集链路的可靠性与可验证性是工程落地的核心挑战。Flume作为轻量级日志采集工具,擅长协议适配与事件级容错;Kafka凭借分区与副本机制,承担流量削峰与解耦缓冲的关键角色;HDFS则提供高吞吐、可追溯的持久化存储。三者组合构成‘接入—缓冲—落盘’的标准分层架构,广泛应用于车载传感、IoT设备等200QPS级稳定流式数据采集任务。其技术价值体现在启动快、资源省、路径可控、证据链完整,特别适合教学实训与技能竞赛等强约束环境。本文聚焦国赛真实考题,详解Flume源码级配置调优、Kafk

weixin_30873847的博客 414

flume--为搬砖而生,日志传输的一把好手

(一)flume的产生 为什么会有flume 随着互联网的发展,人们对网络日志产生的信息也越来越重视。不仅如此,我们的服务器,比如Nginx,每天都会产生大量的日志。我们要将这些日志收集到指定的地方,比如hdfs平台,进行分析。但是大量的日志产生的位置比较分散,可能来自于Tomcat、Nginx、甚至是数据库等等,而且存储的目的地也不一样,这就导致了数据采集的复杂性。然鹅最关键的问题是,...

CWG2017的博客 529

基于Flume的美团日志收集系统(一)架构和设计

转自:http://www.aboutyun.com/thread-8317-1-1.html 问题导读: [color=red]1.Flume-NG与Scribe对比,Flume-NG的优势在什么地方? 2.架构设计考虑需要考虑什么问题? 3.Agent死机该如何解决? 4.Collector死机是否会有影响? 5.Flume-NG可靠性(reliability)方面做了哪些措施...

疯狂的矩阵 239

基于Flume+Kafka+ Elasticsearch+Storm的海量日志实时分析平台

基于Flume+Kafka+ Elasticsearch+Storm的海量日志实时分析平台 原文网址:http://www.weixinnu.com/tag_article/1542492037 作者:互联网技术联盟 微信公众号 日期:2016年4月26日 袁晓亮 猎聘网 架构中间件负责人 互联网技术联盟 ITA1024讲师团成员 本篇文章整理自袁晓亮4月26日在

ddcowboy的博客 1万+

在线教育之采集系统 day01

本文介绍了数据仓库的基本概念及在线教育数据分析项目的整体架构设计。数据仓库主要整合业务数据、用户行为数据等为企业决策提供支持。项目需求包括搭建数据采集平台(用户行为数据和业务数据)、构建数据仓库、开发近百个教育主题分析指标,并实现即席查询、集群监控等功能。技术选型涵盖数据采集(Flume/Kafka)、存储(HDFS/HBase)、计算(Hive/Spark)、查询(Presto)等全流程组件,采用Apache开源框架。

记录学习点滴,分享实战干货,一起奔赴技术之路 259

大数据推荐系统实时架构和离线架构

1、概述 推荐系统是大数据中最常见和最容易理解的应用之一,比如说淘宝的猜你喜欢和京东等网站的用户提供个性化的内容。但是不仅仅只有电商会用推荐引擎为用户提供额...

qianshanding0708的博客 3111

从零开始学Flume:这个大数据框架学习网站让你快速上手!

Flume是一个分布式、高可用、高可靠的海量日志采集、聚合和传输的系统,最初Flume是一个分布式、高可用、高可靠的海量日志采集、聚合和传输的系统,最初由Cloudera开发并现在广泛应用于数据采集流式处理。其设计目标是支持从各种数据源收集数据,包括本地文件(spooling directory source)、实时日志(taildir、exec)、REST消息、Thift、Avro、Syslog、Kafka等,并将这些数据发送到各种数据接收方,如HDFS、HBase、Kafka等。

qq_45746668的博客 467

个性化广告推荐系统(实战)-1-协同过滤篇

一. 数据集介绍与实现分析 1. 数据集介绍 本项目使用天池数据集,淘宝广告展示/点击数据集 – Ad Display/Click Data raw_sample 淘宝网站中随机抽样了114万用户8天内的广告展示/点击日志(2600万条记录)构成原始的样本数据: 字段 描述 user_id 脱敏过的用户ID adgroup_id 脱敏过的广告单元ID time_stamp ...

putdoor的博客 5224
上一篇: python数据清洗流程和注意点
下一篇: google的tensor2tensor的学习和使用
csa121
博客等级 码龄11年 9粉丝 13原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值