Apache Flume

2020教你如何更好地学习Java

北城以北 提交于 2020-02-28 01:06:26
学习是需要规划时间的,对于自学来说,需要有一个学习路线,因为大部分的人都是从零基础进行学习的,所以我建议大家一定要跟着大纲走,不然非常容易走偏。 首先放大纲 1.制定一个学习计划,没有计划的做事什么都做不成,学习不要盲目的学习,知道自己每天都学习什么东西,这是一个循序渐进的过程,不可以今天多学,明天少学,最后你基本都会放弃。 2.一本Java入门的书籍,当然你在学习Java的时候,一定是先学一块知识,然后在看书,这是我走过来的路,这样的效率非常高,千万别先看书,这样用处不大,都是会看不会写,这样的习惯不要养成。 3.掌握学习方法,那么多人学Java,80%的人都会放弃,原因在于很多人在盲目的摸索,前面人走的弯路,他依旧再走,这不是一个聪明人,聪明人会节省自己的时间,按照少走弯路的思路去学习,跟过来人去请教学习Java要注意的问题,这样你才开始学,而不是什么都不知道就去盲目的学。 4.系统的学习教程,如果你想看视频学习Java,视频不在于多,在于新,在于精,而且看视频有诸多不好,很多人也都会犯这样的错误,就是一天好多视频,看完了就完事了,自己嘴上还说,能听懂他讲的,但是自己不会写,这本身就是不会学习的表现。 5.别人的帮助好,在学习Java的过程中,你不需要都靠自己,外界的帮助是必要的,很多新手问题要找别人去帮忙解决,这样非常节约时间,比如配置环境很多人一天都搞不定

阿里P7高级架构师分享6年多的Java工作经验(想冲破瓶颈者必看)

梦想与她 提交于 2020-02-27 20:27:18
很多工作了五年左右的程序员每天已经习惯了机器般的写代码,如果是这样那么你永远只会是个基础程序员,因为你不能只会用,你要知道原理,不至于让你自己实现一个出来,但是基本原理要知道。 到了这个阶段,你要懂得JVM基本结构,要知道垃圾回收机制,常用垃圾回收算法,JVM简单调优参数; 数据库也是个重头戏,你要知道mysql事务隔离机制的实现,怎么优化sql , 要知道springmvc流程 spring的原理 事务传播机制,mybatis流程原理, 乐观锁悲观锁什么情况用,你要学会考虑系统瓶颈,系统容灾,单点故障, 你要懂得一致性是怎么回事,cap理论 paxos算法 以及zookeeper干嘛用的,能解决什么问题? 你要懂得soa架构,dubbo , 微服务 spring boot spring cloud 这些高级框架 尝试用一用,谷歌,开源社区 将要取代百度成为你解决问题的主要动力和前进的方向, 你会有种一览众山小的感觉,你会觉得弄个百万并发的系统其实并不难,难的是后续问题,日志处理 运维问题, 关于运维我给不了太多建议,可以了解下 zabbix 之类的 可以去学习下 docker 微服务加docker将是未来的趋势。 学到这个地步,你大概已经不用担心工作问题,这种三五年经验的高级程序员需求永远很旺盛,注意 我说的是三五年学习实践经验,不是三五年一直crud经验。这个时候你如果在北上广

logstash与flume区别

左心房为你撑大大i 提交于 2020-02-26 22:16:50
-1. Logstash是一个开源的服务器端数据处理管道,可以同时从多个数据源获取数据,并对其进行转换,然后将其发送到你最喜欢的“存储”。 Inputs:用于从数据源获取数据,常见的插件如file, syslog, redis, beats 等 Filters:用于处理数据如格式转换,数据派生等,常见的插件如grok, mutate, drop, clone, geoip等 Outputs:用于数据输出,常见的插件如elastcisearch,file, graphite, statsd等 Logstash最值得一提的是,在Filter plugin部分具有比较完备的功能,比如grok,能通过正则解析和结构化任何文本,Grok 目前是Logstash最好的方式对非结构化日志数据解析成结构化和可查询化。此外,Logstash还可以重命名、删除、替换和修改事件字段,当然也包括完全丢弃事件,如debug事件。还有很多的复杂功能供程序员自己选择,你会发现这些功能Flume是绝对没有(以它的轻量级线程也是不可能做到的)。当然,在input和output两个插件部分也具有非常多类似的可选择性功能,这一点跟Flume是比较相似的。 -2. Flume 是一个分布式、可靠和高可用的服务,用于收集、聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型。这是一个可靠、容错的服务。

45亿数据迁移记录后续-日数据量千万级别到clickhouse

隐身守侯 提交于 2020-02-26 09:07:01
45亿数据迁移记录后续-日数据量千万级别到clickhouse 相关文档地址 flume 参考地址 waterdrop 参考地址 clickhouse 参考地址 kafka 参考地址 环境 日志在一个服务器,clickhouse集群在另一个服务器。 思路 之前迁移数据的时候,没考虑这块,等数据整个迁移完了以后,才开始考虑,做准备的。 思路1 : flume 读取 日志文件,然后使用flume 的avro模式传递日志(这里使用avro传递日志,是因为,日志服务器没有hadoop 环境,而且也是为了保持日志服务器的稳定),将读取到的日志落在hdfs,写入的规则,按照天进行分割,一天一个数据文件。然后使用waterdrop 动态传递参数日期,写一个linux 的crontab 任务,每天调用一次,每次传递昨天的日期,拉取昨天的数据,从hdfs 到 clickhouse。 整个方案是可行的,初步测试,已经走通,但是与我们的场景不符合,因为我这边的数据,相对而言,都是实时数据,不允许出现一天的这么长时间的间隔。 思路2 : 扔掉flume,使用waterdrop直接读取日志,清洗处理,然后直接到clickhous。关于waterdrop处理日志,之前博客,可翻阅进行参考。 这个方案是错误的,因为我之前并没有正确了解waterdrop,waterdrop并不支持实时数据处理,所有针对日志文件

Flume概述及组成

人走茶凉 提交于 2020-02-25 23:54:23
Flume是Cloudera提供的一个 高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统 ,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。 Flume最主要作用就是实时读取服务器本地磁盘的数据,将数据写入到HDFS。 Flume组成架构 Agent Agent是一个JVM进程,它以事件的形式将数据从源头送至目的地, 是Flume数据传输的基本单元 。Agent主要有3个部分组成:Source、Channel、Sink。 Source Source是负责接收数据到Flume Agent的组件 。Source组件可以处理各种类型、各种格式的日志数据,包括avro、thrift、exec、jms、spooling director、netcat、sequence generator、syslog、http、legacy。 Channel Channel是位于Source 和Sink之间的缓冲区, 因此,Channel允许Source和Sink运作在不同的速率上。Channel是线程安全的,可以同时处理几个Source的写入操作和几个Sink的读取操作。 Flume自带了两种Channel:Memory Channel和File Channel Memory Channel 是内存中的队列

大数据教程(7.6)shell脚本定时采集日志数据到hdfs

丶灬走出姿态 提交于 2019-12-29 10:45:07
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 上一篇博客博主分享了hadoop内置rpc的使用案例,本节博主将为小伙伴们分享一个在实际生产中使用的日志搜集案例。前面的文章我们有讲到过用户点击流日志分析的流程,本节就是要完成这个分析流程中的日志搜集。 日志收集有三种方式: (1)、shell脚本搜集(利用hadoop命令行客户端hadoop fs -put ..) (2)、java程序收集(利用hadoop hdfs API的copyFromLocal方法) 通过java程序我们可以写出上传的逻辑后用linux的定时任务cron或java自带的定时器定时任务来进行实时收集。 (3)、Flume开源实时日志搜集系统 日志收集图: shell脚本如下: #!/bin/bash #set java env export JAVA_HOME=/home/hadoop/app/jdk1.7.0_51 export JRE_HOME=${JAVA_HOME}/jre export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib export PATH=${JAVA_HOME}/bin:$PATH #set hadoop env export HADOOP_HOME=/home/hadoop/app/hadoop-2.9.1

Flume+Kafka+Sparkstreaming日志分析

橙三吉。 提交于 2019-12-18 11:48:01
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 最近要做一个日志实时分析的应用,采用了flume+kafka+sparkstreaming框架,先搞了一个测试Demo,本文没有分析其架构原理。   简介:flume是一个分布式,高可靠,可用的海量日志聚合系统,kafka是一高吞吐量的分布式发布订阅系统,sparkstreaming是建立在spark上的实时计算框架,这这个Demo中,以上内容均为单机版伪分布,flume的source为exec,agent的名称为producer,sink为kafka。   运行所需要的环境直接到官网上下载即可:   我的环境是:flume1.6+kafka_2.10+spark1.2.0   flume的配置:   在conf下编辑配置文件roomy.conf如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 #agent section producer.sources = s producer.channels = c producer.sinks = r #source section producer.sources.s. type = exec producer.sources.s. command = tail -F -n+1 /Users/roomy

我花10个小时,写出了小白也能看懂的阿里数据中台分析

旧城冷巷雨未停 提交于 2019-12-12 11:05:08
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 作者:数据分析不是个事儿 https://www.jianshu.com/p/05a8db84e454 数据中台被誉为大数据的下一站,由阿里兴起,核心思想是数据共享,2015年阿里提出“大中台,小前台”的策略。2018 年因为“腾讯数据中台论”,中台再度成为了人们谈论的焦点。 2019年,似乎人人都在提数据中台,但却不是所有人都清楚数据中台到底意味着什么。数据中台是只有大厂才需要考虑的高大上的概念吗?普通企业该不该做数据中台?数据中台的出现会给现有数据从业者们带来颠覆式的挑战吗? 数据中台不是大数据平台! 首先它不是一个平台,也不是一个系统,如果有厂商说他们有个数据中台卖给你,对不起,它是个骗子。 要回答数据中台是什么,首先要探讨一下中台到底是什么。虽然没有明确的定义,但是作为理工直男,我们可以先把中台看作是一种中间层。既然是一种中间层,那么中台确实是一种十足技术用语,我们可以完全从技术角度来探讨了。 我们可以应用 Gartner 的 Pace Layer 来理解为什么要有中间层,这样可以更好地理解中台的定位和价值。Pace Layer 里提到,可以按照事物变化的速度来分层,这样可以逐层分析并设计合理的边界与服务。 在数据开发中,核心数据模型的变化是相对缓慢的,同时,对数据进行维护的工作量也非常大

centOS7下flume使用

自作多情 提交于 2019-12-04 11:33:51
启动hadoop ./start-all.sh jps 配置flume环境变量 修改/etc/profile export FLUME_HOME=/app/flume-1.5.2 export FLUME_CONF_DIR=$FLUME_HOME/conf export PATH=$PATH:$FLUME_HOME/bin source /etc/profile echo $PATH 设置 flume-env.sh 配置文件 在 $FLUME_HOME/conf 下复制改名 flume-env.sh.template 为 flume-env.sh,修改 conf/ flume-env.sh 配置文件 cp flume-env.sh.template flume-env.sh sudo vi flume-env.sh cp flume-env.sh.template flume-env.sh sudo vi flume-env.sh 修改 flume-conf 配置文件 在 $FLUME_HOME/conf 目录下修改 flume-conf.properties.template 文件,复制并改名为 flume-conf.properties cp flume-conf.properties.template flume-conf.properties sudo vi flume

大数据(hadoop-flume的原理架构)

北城以北 提交于 2019-12-03 08:06:05
背景介绍 Hadoop提供了一个中央化的存储系统 有利于进行集中式的数据分析与数据共享 Hadoop对存储格式没有要求: 用户访问日志 产品信息 网页数据等 如何将数据存入Hadoop: 数据分散在各个离散的设备上 数据保存在传统的存储设备和系统中 常见的两种数据来源 分散的数据源: 机器产生的数据; 用户访问日志; 用户购买日志。 传统系统中的数据: 传统关系型数据库:Mysql、Oracle等; Hadoop收集和入库基本要求 分布式 数据源多样化 数据源分散 可靠性 保证不丢数据 允许丢部分数据 可扩展 数据源可能会不断增加 通过并行提高性能 数据收集 Flume Kafka Scribe 传统数据库与Hadoop同步 Sqoop Flume Flume OG OG:“Original Genaration” 0.9.x或cdh3以及更早版本 由agent、collector、master等组件构成 Flume NG NG:“Next/New Generation” 1.x或cdh4以及之后的版本 由Agent、Client等组件构成 为什么要推出NG版本 精简代码 架构简化 Flume OG基本架构 Flume NG基本架构 来源: oschina 链接: https://my.oschina.net/u/3728166/blog/3061770