社区问答第17期:Hadoop核心技术

柔软的胖纸 2015-05-06 10:13:16
加精
可以毫不夸张地说,近十年来,正是Hadoop的出现和不断完善,让海量数据挖掘成为可能,为科研和IT业界带来了一场革命性的风暴。身处风暴中心的互联网企业们,更是将这个工具发挥到极致,不但在该平台上运行无数的离线服务,还逐渐以更加开放的心态,反哺社区和学习者。作为目前使用最为广泛的大数据处理平台,把Hadoop用起来很容易,但是要“用好”很难。

本期的社区问答(5月6日——5月13日)我们请来了《Hadoop核心技术》一书的作者、资深Hadoop技术专家翟周伟(id: nuoline),为大家解答关于hadoop和大数据方面的问题。

嘉宾简介

翟周伟(id: nuoline),就职于百度,资深Hadoop技术专家,专注于Hadoop&大数据、数据挖掘、自然语言处理等领域。2009年便开始利用Hadoop构建商业级大数据系统,是国内该领域最早的一批人之一,负责设计过多个基于Hadoop的大数据平台和分析系统。2011年合著出版《Hadoop开源云计算平台》。在自然语言处理领域申请过一项发明专利。

问答结束后,翟周伟老师会从所有参与活动并提出问题的朋友中选出三位,送上新作《Hadoop核心技术》一书。



购买链接:京东

为了营造更好的问答氛围,我们不欢迎一切与主题无关的讨论、灌水和无脑喷子。

下面欢迎大家踊跃提问,在本帖回复即可。

--------------------------------------------------------------------------------------------------------

本期问答获奖用户:


SAN_MU_000
hadoop333
job920


请获奖用户将本人 邮寄地址+姓名+联系电话 发私信至楼主,我们会尽快为您邮寄礼品。
...全文
22313 96 打赏 收藏 转发到动态 举报
写回复
用AI写文章
96 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackytigerjacky 2018-11-16
  • 打赏
  • 举报
回复
好贴,多多学习,多多受益~
颜_少 2017-04-10
  • 打赏
  • 举报
回复
Q-WHai 2016-06-17
  • 打赏
  • 举报
回复
本贴真是让人受益良多啊。 关注中。。。
zsolini 2015-11-11
  • 打赏
  • 举报
回复
购买了老师的书 学习中
_明月 2015-07-11
  • 打赏
  • 举报
回复
我以为这个帖子是来讲“大数据”的,弄了半天就是来卖书打广告的!
沐妍 2015-06-11
  • 打赏
  • 举报
回复
http://ci.baidu.com/xa1WWlORGz ,验证码:9g6t
kingdongx11 2015-05-17
  • 打赏
  • 举报
回复
受教了~~~~
  • 打赏
  • 举报
回复
有时间想学习一下..........
hadoop333 2015-05-17
  • 打赏
  • 举报
回复
前辈你好 在Main函数里设置job.setsortcomparatorclass(类) 是对key进行默认比较排序的设置 一般默认不设置 不设置的话默认key会调用哪个类进行key的比较啊 job.setgroupingcomparatorclass() 是设置的分组函数类如果Main函数里不写 默认用哪个类啊 还有 一直没明白hadoop在Mapreduce的执行过程中哪几个阶段进行了排序 比如 在map函数执行过程中从环形缓冲区往磁盘Spill溢出数据到磁盘的时候每次溢出的文件都是按照reduce的个数排好序的 到底是在环形缓冲区排好序在往磁盘溢出 然后磁盘的那个文件是有序的 还是环形缓冲区的数据一开始没有排序 溢出到磁盘以后的文件 在把每个文件按照reduce的个数把溢出的文件分开排序呢 请指点下 谢谢
shijiebei2009 2015-05-16
  • 打赏
  • 举报
回复
虽说现在是Hadoop和spark平分秋色,都有各自的应用领域,前景也不错,就长远来说,是不是终有spark完全取代Hadoop的一天呢?
nightrainljh 2015-05-15
  • 打赏
  • 举报
回复
hadoop能在传统电力系统监控平台上应用吗?适合电力系统监控平台哪部分应用?数据挖掘分析这块吗!
nuoline 2015-05-15
  • 打赏
  • 举报
回复
引用 86 楼 hadoop333 的回复:
请问下reduce的个数和集群的个数和每个机器的cpu个数有啥关系 我看有的说说优化的时候增大每个节点的slot数量 那是指的啥意思啊
一般情况下一个核心CPU配置一个槽位,最大不超过2个槽位;节点配置的槽位数越大集群的计算能力就越强。 例如100个节点,每个节点16核心CPU,可以配置每个节点16个槽位(10个map,4个reduce,2个预留槽位),这样集群总的计算槽位就是140个槽位数,对于非计算密集型作业的集群可以每个节点配置32个槽位数(20个map, 10个reduce,2个预留),具体的map槽位数和reduce槽位数比例可以依据需求进行配置。
nuoline 2015-05-15
  • 打赏
  • 举报
回复
引用 84 楼 SAN_MU_000 的回复:
[quote=引用 81 楼 nuoline 的回复:] [quote=引用 71 楼 SAN_MU_000 的回复:] 老师您好,看了上面一些前辈们的帖子,我想问一个问题,这个问题也是一直困扰我,hadoop到底需要学多少东西,侧重学那些,比如我们老师说得看懂源码,会算法,懂分布式。一些培训老师说还要会运维(甚至机房布线),看看招聘启事,除了hadoop还得会N种技术,感觉要学的东西实在是太多了?我一直觉得门门通不如一门精,现在想找这方面工作应该主要掌握什么技能。
对于你的困惑很多同学都有反映,我建议一些,希望可以帮助你: 1. 首先要有定位,你是把hadoop作为一个工具,还是开发hadoop本身,还是运维hadoop,职责不一样,说需要的 知识侧重点就不同了,如果仅仅把hadoop作为一个工具学习hadoop的核心原理和基本使用,加上编程实战项目经验就足够了; 如果是开发hadoop本身则需要深入hadoop的源码,和hadoop相关的大数据理论和架构方面的知识,不必关注具体的应用算法实现; 如果是hadoop运维的话,就需要关注hadoop的稳定性,架构,安装部署和管理,甚至机房布线,容灾等稳定性和性能问题。 2. 任何都很难作一个通才,这个世界更需要专才,你只要掌握了某一项技术并作为自己的技术专长的话,在哪里都是需要的。[/quote]
引用 81 楼 nuoline 的回复:
[quote=引用 71 楼 SAN_MU_000 的回复:] 老师您好,看了上面一些前辈们的帖子,我想问一个问题,这个问题也是一直困扰我,hadoop到底需要学多少东西,侧重学那些,比如我们老师说得看懂源码,会算法,懂分布式。一些培训老师说还要会运维(甚至机房布线),看看招聘启事,除了hadoop还得会N种技术,感觉要学的东西实在是太多了?我一直觉得门门通不如一门精,现在想找这方面工作应该主要掌握什么技能。
对于你的困惑很多同学都有反映,我建议一些,希望可以帮助你: 1. 首先要有定位,你是把hadoop作为一个工具,还是开发hadoop本身,还是运维hadoop,职责不一样,说需要的 知识侧重点就不同了,如果仅仅把hadoop作为一个工具学习hadoop的核心原理和基本使用,加上编程实战项目经验就足够了; 如果是开发hadoop本身则需要深入hadoop的源码,和hadoop相关的大数据理论和架构方面的知识,不必关注具体的应用算法实现; 如果是hadoop运维的话,就需要关注hadoop的稳定性,架构,安装部署和管理,甚至机房布线,容灾等稳定性和性能问题。 2. 任何都很难作一个通才,这个世界更需要专才,你只要掌握了某一项技术并作为自己的技术专长的话,在哪里都是需要的。[/quote] 谢谢老师,老师如果想做Hadoop方面开发源码需要读到什么程度,前一段时间跟着一本书分析了RPC部分的源码主要是跟着走了一遍,感觉源码太多了,很多细节还都没看。[/quote] 最好能结合项目实际需求来学习,如果单独的学习的话建议先不要纠结到细节,从大体框架,核心原理上入手,把握核心原理的关键源码部分就可以了,没有必要一行一行读。可以依照我的书《Hadoop核心技术》上的高级部分上的源码分析阅读学习,也欢迎交流。
渡人既是渡己 2015-05-15
  • 打赏
  • 举报
回复
楼主,虽然没有看到源码,也没看到图片,就让我汗颜啊,对楼主瞬间佩服的五体投地,有如醍醐灌顶之效,暮然回首发现自己已经没有什么技术可言,真是关公面前耍大刀班门弄斧。楼主的无私奉献精神,值得生活在物欲横流的当今社会背景下的人深思,让我再次感受到世上还有好人在好人一生平安,至此请容许我再次对楼主产生敬佩之情,此敬佩非彼敬佩,是由心而发令人肃然起敬。于是经过深思熟虑之后,我终于做出了一个令我都不敢相信的决定,那就是超过百字的回复。至此,我又做出了决定,要顶起这个帖子,不然将会受到道德的谴责,让真理无法重见天日,我相信一滴水也能激起千层浪,好帖不应石沉大海,顶起----以上纯属copy
asking1233 2015-05-15
  • 打赏
  • 举报
回复
老师,我是开发移动端的。目前想学习数据挖掘和大数据分析。老师,你能给点建议吗?
nuoline 2015-05-14
  • 打赏
  • 举报
回复
引用 71 楼 SAN_MU_000 的回复:
老师您好,看了上面一些前辈们的帖子,我想问一个问题,这个问题也是一直困扰我,hadoop到底需要学多少东西,侧重学那些,比如我们老师说得看懂源码,会算法,懂分布式。一些培训老师说还要会运维(甚至机房布线),看看招聘启事,除了hadoop还得会N种技术,感觉要学的东西实在是太多了?我一直觉得门门通不如一门精,现在想找这方面工作应该主要掌握什么技能。
对于你的困惑很多同学都有反映,我建议一些,希望可以帮助你: 1. 首先要有定位,你是把hadoop作为一个工具,还是开发hadoop本身,还是运维hadoop,职责不一样,说需要的 知识侧重点就不同了,如果仅仅把hadoop作为一个工具学习hadoop的核心原理和基本使用,加上编程实战项目经验就足够了; 如果是开发hadoop本身则需要深入hadoop的源码,和hadoop相关的大数据理论和架构方面的知识,不必关注具体的应用算法实现; 如果是hadoop运维的话,就需要关注hadoop的稳定性,架构,安装部署和管理,甚至机房布线,容灾等稳定性和性能问题。 2. 任何都很难作一个通才,这个世界更需要专才,你只要掌握了某一项技术并作为自己的技术专长的话,在哪里都是需要的。
hadoop333 2015-05-14
  • 打赏
  • 举报
回复
请问下reduce的个数和集群的个数和每个机器的cpu个数有啥关系 我看有的说说优化的时候增大每个节点的slot数量 那是指的啥意思啊
nuoline 2015-05-14
  • 打赏
  • 举报
回复
引用 70 楼 SAN_MU_000 的回复:
老师,您好,咨询个问题,我们学校老师布置我们做一个实时推荐系统,我们现在方案是打算将数据保存在Hbase上然后调用Mahout算法(比如聚类)完后在将结果保存到Hbase中,之后通过storm接受实时数据在调用算法和hbase数据进行推荐,之后再将数据存入Hbase,您觉得这靠谱吗?
如果要做实时推荐系统的话,不建议直接使用mahout,mahout算法都是基于MapReduce模型的,如果在线调用估计时效性很难保证。 建议: 1. 基础数据和模型:可以做一个推荐模型,基础数据,特征抽取和模型训练可以在线下生成,这个是可以考虑使用hadoop的,或者mahout都可以。 2. 在线推荐预测,直接使用模型的预测接口就行,无所谓分布式。 3. 可以把线下挖掘的基础数据存储在hbase上面,在线特征抽取时直接从hbase里面读取,效率是很高的。 4. storm是可以使用的,可以作为流处理系统来处理在线获取的实时数据用于更新基础特征数据或者更新模型。
nuoline 2015-05-14
  • 打赏
  • 举报
回复
引用 69 楼 u010993034 的回复:
hadoop核心技术 是一本不错的书,您会出spark方面的著作吗?期待中。。。。
近期还没有规划,后续看自己的时间安排可以规划一下,感谢关注!
nuoline 2015-05-14
  • 打赏
  • 举报
回复
引用 68 楼 u010993034 的回复:
请问现在百度对hadoop程序员的 需求大吗?
百度研发的大部分都是在hadoop平台环境上工作,特别是做算法策略的,相当于Linux系统下的编程一样是一个基本技能,因此对hadoop的开发需求也是很大的,如果你是纯粹的做hadoop本身的话,那么百度也是很适合的,因此百度有世界上集群规模最大的hadoop集群之一。
加载更多回复(75)

20,808

社区成员

发帖
与我相关
我的任务
社区描述
Hadoop生态大数据交流社区,致力于有Hadoop,hive,Spark,Hbase,Flink,ClickHouse,Kafka,数据仓库,大数据集群运维技术分享和交流等。致力于收集优质的博客
社区管理员
  • 分布式计算/Hadoop社区
  • 涤生大数据
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧