Hadoop

Kafka简介

帅比萌擦擦* 提交于 2020-08-16 19:10:51
Kafka Kafka是最初由Linkedin公司开发,是一个分布式、支持分区的(partition)、多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处理大量数据以满足各种需求场景:比如基于hadoop的批处理系统、低延迟的实时系统、storm/Spark流式处理引擎,web/nginx日志、访问日志,消息服务等等,用scala语言编写,Linkedin于2010年贡献给了Apache基金会并成为顶级开源 项目。 1.介绍 消息队列的性能好坏,其文件存储机制设计是衡量一个消息队列服务技术水平和最关键指标之一。下面将从Kafka文件存储机制和物理结构角度,分析Kafka是如何实现高效文件存储,及实际应用效果。 1.1 Kafka的特性: 高吞吐量、低延迟:kafka每秒可以处理几十万条消息,它的延迟最低只有几毫秒,每个topic可以分多个partition, consumer group 对partition进行consume操作。 可扩展性:kafka集群支持热扩展 持久性、可靠性:消息被持久化到本地磁盘,并且支持数据备份防止数据丢失 容错性:允许集群中节点失败(若副本数量为n,则允许n-1个节点失败) 高并发:支持数千个客户端同时读写 1.2 Kafka的使用场景: 日志收集:一个公司可以用Kafka可以收集各种服务的log

田亮:坚信大数据的变革力量

一个人想着一个人 提交于 2020-08-16 17:43:51
简介: 我和田亮的交流耗时较久,甚至用上了他出差的所有碎片时间,而他的回答始终谨慎、认真、高效。历任搜狐、阿里巴巴、新浪微博,10年如一日始终深耕大数据领域,阿里云 MVP田亮能在百舸争流中成为大数据和人工智能领域的佼佼者,似乎也就不奇怪了。 以下为田亮的专访内容,推荐阅读(约5分钟)。 兴趣导向职业,信心坚定抉择 在读研期间我就深深痴迷于大数据这个领域,与几个同学一起做了很多这方面的应用实践,大数据是一个机遇与挑战共存的方向,毕业时我就坚定了这个择业目标,整个职业履历也聚焦在分布式计算系统、大数据云计算平台以及机器学习算法与AI。 以我个人对大数据10年的研究来说,大数据变革可以分上下两半场,前5年聚焦在云计算基础设施方面,企业级应用从自建到逐步迁云,技术选型上摆脱IOE的垄断,有了新的技术思路与选择。后5年聚焦在大数据的应用场景上,企业级数据应用不再是大数据变革的目标,而是更多地渗透到人们日常生活中,改变大家的生活方式,甚至未来社会经济发展的模式。 大家都知道大数据与云计算是密不可分的共同体,大数据促使云计算迭代,云计算支撑着大数据业务的落地与发展。随着移动互联网的高速发展,每日数据增长达到几何级别,这对大数据计算提出了前所未有的挑战,包括研发效率,运维成本,数据安全,容灾等环节。于是我们尝试寻找更具性价比的优化方案,同时积极调研下一代大数据计算解决方案

Spark读取Mysql,Redis,Hbase数据(一)

谁说我不能喝 提交于 2020-08-16 13:21:31
1、读取Mysql数据 object JdbcRddDemo { def getConn() = { Class.forName( "com.mysql.jdbc.Driver" ).newInstance() DriverManager.getConnection( "jdbc:mysql://hadoop000:3306/hive", "root", "root" ) } def main(args: Array[String]): Unit = { val sparkConf = new SparkConf().setAppName("jdbcRdd").setMaster("local[*]" ) val sc = new SparkContext(sparkConf) val jdbcRDD = new JdbcRDD( sc, getConn, "select * from TBLS where TBL_ID >= ? and TBL_ID <= ?" , 1 , 10 , 2 , rs => { val id = rs.getInt(1 ) val name = rs.getString(2 ) val age = rs.getInt(3 ) (id,name,age) } ) jdbcRDD.collect().toBuffer } } 来源: oschina 链接

【赵强老师】大数据工作流引擎Oozie

两盒软妹~` 提交于 2020-08-16 11:32:29
一、什么是工作流? 工作流(WorkFlow)就是工作流程的计算模型,即将工作流程中的工作如何前后组织在一起的逻辑和规则在计算机中以恰当的模型进行表示并对其实施计算。工作流要解决的主要问题是:为实现某个业务目标,在多个参与者之间,利用计算机,按某种预定规则自动传递。下面我们以“员工请假的流程”为例,来为大家介绍什么是工作流。 这个例子包含了一个完整的员工请假流程。从“请假流程开始”,到“员工填写请假条”,再到“部门经理审批”,如果审批不通过,流程回到“员工填写请假条”;如果部门经理审批通过,则流程进入下一个节点;直到最后的流程结束。在Java中,我们可以使用一些框架帮助我们来实现这样的过程。Java的三大主流工作流引擎分别是:Shark,osworkflow,JBPM 二、什么是Oozie? 关于什么是Oozie,其实Oozie是服务于Hadoop生态系统的工作流调度工具,Job运行平台是区别于其他调度工具的最大的不同。但其实现的思路跟一般调度工具几乎完全相同。Oozie工作流通过HPDL(一种通过XML自定义处理的语言,类似JBOSS JBPM的JPDL)来构造。Oozie工作流中的Action在运程系统运行如(Hadoop,Pig服务器上)。一旦Action完成,远程服务器将回调Oozie的接口 并通知Action已经完成

集群与分布式,你们知道有什么区别吗?

廉价感情. 提交于 2020-08-16 11:27:55
用一个例子介绍集群与分布式: 小餐馆原来只有一个厨师,切菜洗菜备料炒菜他都全干。后来餐馆的客人多了,厨房里一个厨师忙不过来,又请了个厨师,两个厨师都能炒一样的菜,这两个厨师的关 系是集群。为了让厨师专心炒菜,把菜做到极致,又请了个配菜师负责切菜,备菜,备料,厨师和配菜师的关系是分布式,一个配菜师也忙不过来了,又请了个配菜 师,两个配菜师关系是集群。 一、分布式: 分布式是指将多台服务器集中在一起,每台服务器都实现总体中的不同业务,做不同的事情。并且每台服务器都缺一不可,如果某台服务器故障,则网站部分功能缺失,或导致整体无法运行。存在的主要作用是大幅度的提高效率,缓解服务器的访问和存储压力。 分布式的优点是细化了应用程序的功能模块,同时也减轻了一个完整的应用程序部署在一台服务器上的负担,用了分布式拆分后,就相当于把一个应用程序的多个功能分配到多台服务器上去处理了。 注意:该图中最大特点是:每个Web服务器(Tomcat)程序都负责一个网站中不同的功能,缺一不可。如果某台服务器故障,则对应的网站功能缺失,也可以导致其依赖功能甚至全部功能都不能够使用。 二、集群: 集群是是指将多台服务器集中在一起,每台服务器都实现相同的业务,做相同的事情。但是每台服务器并不是缺一不可,存在的作用主要是缓解并发压力和单点故障转移问题。可以利用一些廉价的符合工业标准的硬件构造高性能的系统。实现:高扩展

Hadoop介绍

坚强是说给别人听的谎言 提交于 2020-08-16 11:27:41
Hadoop是Apache旗下的一个用java语言实现开源软件框架,是一个开发和运行处理大规模数据的软件平台,允许使用简单的编程模型在大量的计算机集群上对大型数据集进行分布式处理。 下面是Hadoop的版本: HDFS (分布式文件系统):解决海量数据存储 YARN (作业调度和集群资源管理的框架):解决资源任务调度 MAPREDUCE (分布式运算编程框架):解决海量数据计算 其中Hadoop2.0版本中多了YARN,更加合理的来解决资源任务调度问题,分解了Hadoop1.0版本中MapRuce的压力。 Hadoop特性优点: 扩容能力: Hadoop是可用的计算机集群间分配数据并完成计算任务的,这些集群可用方便的扩展到数以千计的节点中 成本低: Hadoop通过普通廉价的机器组成服务器集群来分发以及处理数据,以至于成本很低 高效率: 通过并发数据,Hadoop可以在节点之间动态并行的移动数据,使得速度非常快。 可靠性: 能自动维护数据的多份复制,并且在任务失败后能自动重新部署计算任务,所以Hadoop的按位存储和处理数据的能力值得人们信赖。 来源: oschina 链接: https://my.oschina.net/u/4373202/blog/4320928

kafka-集群搭建及启动脚本

99封情书 提交于 2020-08-16 07:15:09
集群搭建: [root@localhost kafka_2.11-0.10.2.1]# cat config/server.properties | grep -v ^$ | grep -v ^# broker.id=0 listeners=PLAINTEXT://node1:9092 num.network.threads=3 num.io.threads=8 socket.send.buffer.bytes=102400 socket.receive.buffer.bytes=102400 socket.request.max.bytes=104857600 log.dirs=/tmp/kafka-logs num.partitions=1 num.recovery.threads.per.data.dir=1 log.retention.hours=168 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 zookeeper.connect=node1:2181,node2:2181,node3:2181 zookeeper.connection.timeout.ms=6000 listeners=PLAINTEXT://node1:9092, 配置物理机器的hostname,

大数据学习笔记之一基本概念

社会主义新天地 提交于 2020-08-15 21:47:00
近年来,随着IT技术与大数据、机器学习、算法方向的不断发展,越来越多的企业都意识到了数据存在的价值,将数据作为自身宝贵的资产进行管理,利用大数据和机器学习能力去挖掘、识别、利用数据资产。 如果缺乏有效的数据整体架构设计或者部分能力缺失,会导致业务层难以直接利用大数据大数据,大数据和业务产生了巨大的鸿沟,这道鸿沟的出现导致企业在使用大数据的过程中出现数据不可知、需求难实现、数据难共享等一系列问题,本文介绍了一些数据平台设计思路来帮助业务减少数据开发中的痛点和难点 一大数据技术栈 大数据整体流程涉及很多模块,每一个模块都比较复杂,下图列出这些模块和组件以及他们的功能特性,后续会有专题去详细介绍相关模块领域知识,例如数据采集、数据传输、实时计算、离线计算、大数据储存等相关模块。 二、lambda架构和kappa架构 目前基本上所有的大数据架构都是基于lambda和kappa架构,不同公司在这两个架构模式上设计出符合该公司的数据体系架构。lambda 架构使开发人员能够构建大规模分布式数据处理系统。 它具有很好的灵活性和可扩展性,也对硬件故障和人为失误有很好的容错性,关于lambda架构可以在网上搜到很多相关文章。而kappa架构解决了lambda架构存在的两套数据加工体系,从而带来的各种成本问题,这也是目前流批一体化研究方向,很多企业已经开始使用这种更为先进的架构。 Lambda架构

14.DStream的output操作以及foreachRDD详解

廉价感情. 提交于 2020-08-15 20:37:06
output操作概览 Output Meaning print 打印每个batch中的前10个元素,主要用于测试,或者是不需要执行什么output操作时,用于简单触发一下job。 saveAsTextFile(prefix, [suffix]) 将每个batch的数据保存到文件中。每个batch的文件的命名格式为:prefix-TIME_IN_MS[.suffix] saveAsObjectFile 同上,但是将每个batch的数据以序列化对象的方式,保存到SequenceFile中。 saveAsHadoopFile 同上,将数据保存到Hadoop文件中 foreachRDD 最常用的output操作,遍历DStream中的每个产生的RDD,进行处理。可以将每个RDD中的数据写入外部存储,比如文件、数据库、缓存等。通常在其中,是针对RDD执行action操作的,比如foreach。 output操作 DStream中的所有计算,都是由output操作触发的,比如print()。如果没有任何output操作,那么,压根儿就不会执行定义的计算逻辑。 此外,即使你使用了foreachRDDoutput操作,也必须在里面对RDD执行action操作,才能触发对每一个batch的计算逻辑。否则,光有foreachRDD output操作,在里面没有对RDD执行action操作

删了HDFS又能怎样?记一次删库不跑路事件

只谈情不闲聊 提交于 2020-08-15 17:28:32
一、事发背景 二、应急措施 直观的方案 三、分析过程 hdfs文件删除过程 BlockManager EditLog hdfs元数据的加载 方案确定 四、灾难重演 五、经验总结 一、事发背景 ​ 上个月的某一天,由于集群空间不足,公司有一位技术经理级别的大数据leader在通过跳板机在某个线上集群执行手动清理命令,疯狂地执行 hadoop fs -rmr -skipTrash /user/hive/warehouse/xxxxx ,突然,不知道是编辑器的问题还是换行问题,命令被截断,命令变成了 hadoop fs -rmr -skipTrash /user/hive/warehouse ,悲剧此刻开始发生!? ​ /user/hive/warehouse 目录下存储了所有hive表的数据,关联公司多个业务线,一旦丢失,意味着巨大的损失。由于加了 -skipTrash 参数,意味着删除的数据不会放入回收站而是直接删除,这个参数不加的话很容易挽回,回收站里直接找,可惜逃不了墨菲定律,最担心的事还是发生了。 ​ 领导解决不了的事,只有小弟上,看我接下来怎样四两拨千斤。 二、应急措施 运维跟这位大数据经理第一时间找到我,当时说误删了 /user/hive/warehouse 目录。当时我也是一震惊,完了完了!凭我仅有的直觉,立马停掉了HDFS集群!后面证明是很明智的选择。 直观的方案