分类 Hadoop 下的文章

hadoop职位要求

Hadoop的职位一般有:
1、hadoop运维工程师(负责维护hadoop平台,确保平台平稳运行,作业正常提交)
2、基于hadoop平台,在此基础上进行开发新功能。(多数是写些MapReduce程序)
3、Hadoop解决方案架构(Hadoop相关产品技术架构设计、实现、应用)
大家可以参考现有的hadoop职位要求,选择自己的技术路线。hadoop其实离我们并不远!
下面是几个典型的职位要求:
1、hadoop高级运维工程师(暴风影音)
岗位职责
负责Hadoop平台运维和优化工作;
保证Hadoop平台各核心服务运行的稳定、高效;
对Hadoop平台运维不断优化,提升数据产品的质量和响应速度;
开发各种Hadoop大数据自动化运维与监控工具。/
岗位要求
本科3年以上Linux系统管理工作经验;
1年以上Hadoop平台管理经验;
熟悉Apache Hadoop部署、性能调优,熟悉jetty,thrift;
精通Shell/Python/Java/Php语言的一种或多种;
熟悉nagios,cacti,ganglia,zabbix,zenoss优先;
对大数据和自动化运维开发有浓厚兴趣,熟悉hadoop、hbase、hive、scribe、flume、storm等分布式相关技术优先。
2、hadoop研发工程师(优酷土豆)
职责:
1.基于hadoop的海量数据分析系统研发
2.基于hadoop集群的MapReduce程序的开发、测试及优化
要求:
1.对Linux操作系统熟练掌握,熟悉shell等脚本编程
2.扎实的java基础,两年以上java实际开发经验
3.熟悉hadoop集群的搭建、管理及优化
4.熟悉hadoop及hive,有MapReduce分布式编程经验
5.熟练掌握MySQL数据库,熟练使用SQL
6.对海量数据的分析、挖掘有浓厚兴趣,有海量数据处理经验
7.对技术有激情,喜欢钻研,能快速接受和掌握新技术,有较强的独立、主动的学习能力
8.理解能力强,有较强的逻辑思维分析能力
9.有强烈的责任心及良好的团队合作精神
其他:
1.两年以上工作经验,本科以上学历
2.有过移动数据统计系统开发经验者优先
3、Hadoop解决方案架构师(北京云基地企业管理有限公司)
工作职责:
1.产品技术架构设计、实现、应用
2.Hadoop及大数据相关技术研究
3.客户需求分析及沟通
4.向客户提供Hadoop咨询和培训
职位要求:
1.计算机相关专业毕业,3年以上工作经验,至少1年MapReduce开发经验
2.熟悉Linux操作系统,熟悉Java语言和开发环境
3.熟悉Hadoop生态系统相关项目的功能、架构、实现
4.对计算机体系结构和分布式系统有深入了解
5.优秀的表达和沟通能力

童小军_HD录制的Hadoop视频下载

EasyHadoop创始人@童小军_HD 辛苦录制的Hadoop实战视频被无良卖家放到淘宝网上牟取私利,经和作者沟通,小军愿意无偿将全部视频资料分享给各位爱好者学习使用,因文件太大,需要服务器和带宽,求接受方慷慨相助,也算为行业贡献一己之力 @张栋_机器学习 @邓侃 @梁斌penny @vinWHadoop
视频已经上传到百度网盘,同时视频下载地址已经更新到 EasyHadoop技术大学 页面。希望大家怀着感恩、分享的心去学习,正如作者说的:去帮助别人就如同帮助过去的你
PS:好像原作者已经删除了部分视频,百度网盘已经无法分享这些视频了,我发现在“钱”面前,说的总比做的好听!如果需要可以在这个页面给我留下邮箱,我发给你们下载地址,仅供学习参考。
欢迎订阅博客:http://feed.feedsky.com/Hadoop_java  以后还会分享些有用的内容!
也可以加入Hadoop云计算群:300165122
PPS:大家不要把邮箱留在评论内容里,这样会被收集邮箱地址的发垃圾邮件软件抓取的,在填写内容的时候,会让你填邮件,我能看到的。我正在把这部分资源放到Dropbox上,没收到链接到同学请耐心等待。
下面是地址:http://university.easyhadoop.com/university.html

hadoop视频下载链接

hadoop视频下载链接


百度网盘下载地址:http://pan.baidu.com/share/link?shareid=492484&uk=1124363056#dir/path=%2FEasyHadoop%E6%8A%80%E6%9C%AF%E5%A4%A7%E5%AD%A6%20%E5%9F%B9%E8%AE%AD%E8%A7%86%E9%A2%91
童小军_HD微博:http://weibo.com/tongxiaojun
童小军_HD微博

童小军_HD微博

Hadoop在百度的应用

百度作为全球最大的中文搜索引擎公司,提供基于搜索引擎的各种产品,几乎覆盖了中文网络世界中所有的搜索需求,因此,百度对海量数据处理的要求是比较高的,要在线下对数据进行分析,还要在规定的时间内处理完并反馈到平台上。百度在互联网领域的平台需求要通过性能较好的云平台进行处理了,Hadoop就是很好的选择。在百度,Hadoop主要应用于以下几个方面:
日志的存储和统计;
网页数据的分析和挖掘;
商业分析,如用户的行为和广告关注度等;
在线数据的反馈,及时得到在线广告的点击情况;
用户网页的聚类,分析用户的推荐度及用户之间的关联度。
MapReduce主要是一种思想,不能解决所有领域内与计算有关的问题,百度的研究人员认为比较好的模型应该如图3-4所示,HDFS实现共享存储,一些计算使用MapReduce解决,一些计算使用MPI解决,而还有一些计算需要通过两者来共同处理。因为MapReduce适合处理数据很大且适合划分的数据,所以在处理这类数据时就可以用MapReduce做一些过滤,得到基本的向量矩阵,然后通过MPI进一步处理后返回结果,只有整合技术才能更好地解决问题。
百度现在拥有3个Hadoop集群,总规模在700台机器左右,其中有100多台新机器和600多台要淘汰的机器(它们的计算能力相当于200多台新机器),不过其规模还在不断的增加中。现在每天运行的MapReduce任务在3000个左右,处理数据约120TB/天。
百度为了更好地用Hadoop进行数据处理,在以下几个方面做了改进和调整:
(1)调整MapReduce策略
限制作业处于运行状态的任务数;
调整预测执行策略,控制预测执行量,一些任务不需要预测执行;
根据节点内存状况进行调度;
平衡中间结果输出,通过压缩处理减少I/O负担。
(2)改进HDFS的效率和功能
权限控制,在PB级数据量的集群上数据应该是共享的,这样分析起来比较容易,但是需要对权限进行限制;
让分区与节点独立,这样,一个分区坏掉后节点上的其他分区还可以正常使用;
修改DFSClient选取块副本位置的策略,增加功能使DFSClient选取块时跳过出错的DataNode;
解决VFS(Virtual File System)的POSIX(Portable Operating System Interface of Unix)兼容性问题。
(3)修改Speculative的执行策略
采用速率倒数替代速率,防止数据分布不均时经常不能启动预测执行情况的发生;
增加任务时必须达到某个百分比后才能启动预测执行的限制,解决reduce运行等待map数据的时间问题;
只有一个map或reduce时,可以直接启动预测执行。
(4)对资源使用进行控制
对应用物理内存进行控制。如果内存使用过多会导致操作系统跳过一些任务,百度通过修改Linux内核对进程使用的物理内存进行独立的限制,超过阈值可以终止进程。
分组调度计算资源,实现存储共享、计算独立,在Hadoop中运行的进程是不可抢占的。
在大块文件系统中,X86平台下一个页的大小是4KB。如果页较小,管理的数据就会很多,会增加数据操作的代价并影响计算效率,因此需要增加页的大小。
百度在使用Hadoop时也遇到了一些问题,主要有:
MapReduce的效率问题:比如,如何在shuffle效率方面减少I/O次数以提高并行效率;如何在排序效率方面设置排序为可配置的,因为排序过程会浪费很多的计算资源,而一些情况下是不需要排序的。
HDFS的效率和可靠性问题:如何提高随机访问效率,以及数据写入的实时性问题,如果Hadoop每写一条日志就在HDFS上存储一次,效率会很低。
内存使用的问题:reducer端的shuffle会频繁地使用内存,这里采用类似Linux的buddy system来解决,保证Hadoop用最小的开销达到最高的利用率;当Java 进程内容使用内存较多时,可以调整垃圾回收(GC)策略;有时存在大量的内存复制现象,这会消耗大量CPU资源,同时还会导致内存使用峰值极高,这时需要减少内存的复制。
作业调度的问题:如何限制任务的map和reduce计算单元的数量,以确保重要计算可以有足够的计算单元;如何对TaskTracker进行分组控制,以限制作业执行的机器,同时还可以在用户提交任务时确定执行的分组并对分组进行认证。
性能提升的问题:UserLogs cleanup在每次task结束的时候都要查看一下日志,以决定是否清除,这会占用一定的任务资源,可以通过将清理线程从子Java进程移到TaskTracker来解决;子Java进程会对文本行进行切割而map和reduce进程则会重新切割,这将造成重复处理,这时需要关掉Java进程的切割功能;在排序的时候也可以实现并行排序来提升性能;实现对数据的异步读写也可以提升性能。
健壮性的问题:需要对mapper和reducer程序的内存消耗进行限制,这就要修改Linux内核,增加其限制进程的物理内存的功能;也可以通过多个map程序共享一块内存,以一定的代价减少对物理内存的使用;还可以将DataNode和TaskTracker的UGI配置为普通用户并设置账号密码;或者让DataNode和TaskTracker分账号启动,确保HDFS数据的安全性,防止Tracker操作DataNode中的内容;在不能保证用户的每个程序都很健壮的情况下,有时需要将进程终止掉,但要保证父进程终止后子进程也被终止。
Streaming局限性的问题:比如,只能处理文本数据,mapper和reducer按照文本行的协议通信,无法对二进制的数据进行简单处理。为了解决这个问题,百度人员新写了一个类Bistreaming(Binary Streaming),这里的子Java进程mapper和reducer按照(KeyLen,Key,ValLen,Value)的方式通信,用户可以按照这个协议编写程序。
用户认证的问题:这个问题的解决办法是让用户名、密码、所属组都在NameNode和Job Tracker上集中维护,用户连接时需要提供用户名和密码,从而保证数据的安全性。
百度下一步的工作重点可能主要会涉及以下内容:
内存方面,降低NameNode的内存使用并研究JVM的内存管理;
调度方面,改进任务可以被抢占的情况,同时开发出自己的基于Capacity的作业调度器,让等待作业队列具有优先级且队列中的作业可以设置Capacity,并可以支持TaskTracker分组;
压缩算法,选择较好的方法提高压缩比、减少存储容量,同时选取高效率的算法以进行shuffle数据的压缩和解压;
对mapper程序和reducer程序使用的资源进行控制,防止过度消耗资源导致机器死机。以前是通过修改Linux内核来进行控制的,现在考虑通过在Linux中引入cgroup来对mapper和reducer使用的资源进行控制;
将DataNode的并发数据读写方式由多线程改为select方式,以支持大规模并发读写和Hypertable的应用。
百度同时也在使用Hypertable,它是以Google发布的BigTable为基础的开源分布式数据存储系统,百度将它作为分析用户行为的平台,同时在元数据集中化、内存占用优化、集群安全停机、故障自动恢复等方面做了一些改进。
下面这几篇文章也是介绍百度hadoop应用的情况:
http://blog.csdn.net/zbf8441372/article/details/8169969
http://www.csdn.net/article/2011-04-28/296869
http://www.cnblogs.com/chinacloud/archive/2010/11/08/1871592.html

Hadoop和Java的关系

Hadoop的创始人是Doug Cutting, 同时也是著名的基于Java的检索引擎库Apache Lucene的创始人。Hadoop本来是用于著名的开源搜索引擎Apache Nutch,而Nutch本身是基于Lucene的,而且也是Lucene的一个子项目。因此Hadoop基于Java就很理所当然了,所以,Hadoop是由Java编写的
Hadoop采用Java编写,因而Hadoop天生支持Java语言编写作业,但在实际应用中,有时候,因要用到非Java的第三方库或者其他原因,要采用C/C++或者其他语言编写MapReduce作业,这时候可能要用到Hadoop提供的一些工具。
如果你要用C/C++编写MpaReduce作业,可使用的工具有Hadoop Streaming或者Hadoop Pipes。
如果你要用Python编写MapReduce作业,可以使用Hadoop Streaming或者Pydoop。
如果你要使用其他语言,如shell,php,ruby等,可使用Hadoop Streaming。

Hadoop和云计算的关系

Hadoop主要是由HDFSMapReduce组成,HDFS是一个分布式文件系统(Hadoop Distributed File System),MapReduce则是用于并行处理大数据集的软件框架。因此,Hadoop是一个能够对大量数据进行分布式处理的软件框架,它是一种技术的实现
Hadoop是Apache基金会下的一款开源软件,它实现了包括分布式文件系统HDFSMapReduce框架在内的云计算软件平台的基础架构,并且在其上整合了包括数据库、云计算管理、数据仓储等一系列平台,其已成为工业界和学术界进行云计算应用和研究的标准平台。Hadoop现在已经广泛应用于包括国外的FaceBook,Twitter,Yahoo!等公司,国内的百度,阿里等,Hadoop运行在数以千计的服务器和数以万计的CPU的集群上。
基于Hadoop,用户可编写处理海量数据的分布式并行程序,并将其运行于由成百上千个结点组成的大规模计算机集群上。Hadoop已被全球几大IT公司用作其”云计算”环境中的重要基础软件,如:雅虎正在开发基于Hadoop的开源项目Pig, 这是一个专注于海量数据集分析的分布式计算程序。亚马逊公司则基于Hadoop推出了Amazon S3(Amazon Simple Storage Service ),提供可靠,快速,可扩展的网络存储服务。因此,Hadoop是云计算中一部分技术的实现,而不是全部
云计算是继1980年代大型计算机到客户端-服务器的大转变之后的又一种巨变,但云计算的概念其实早已提出很久,早在上世纪60年代,麦卡锡就提出了把计算能力作为一种像水和电一样的公用事业提供给用户的理念,这成为云计算思想的起源。在20世纪80年代网格计算、90年代公用计算,21世纪初虚拟化技术、SOASaaS应用的支撑下,云计算作为一种新兴的资源使用和交付模式逐渐为学界和产业界所认知。因此,云计算的存在只是一种新的商业计算模型和服务模式

Hadoop云计算的关系

Hadoop云计算的关系


因此可以得出一个结论:Hadoop是一个能够对大量数据进行分布式处理的软件框架,它是一种技术的实现,是云计算技术中重要的组成部分,云计算的概念更广泛且偏向业务而不是必须拘泥于某项具体技术,云计算的存在只是一种新的商业计算模型和服务模式。因此,云计算才会出现“横看成岭侧成峰,远近高低各不同”,各种各样层出不穷的理解

HDFS开发MapReduce开发-Hadoop入门三

HDFS开发
Java API详解
FuseHDFS
WebHDFS Restful API
MapReduce实战
第一个MapReduce项目
如何用其它语言开发MapReduce应用
MapReduce常用算法(Sort、Index、Join、IF-IDF等)

认识hdfs和MapReduce-Hadoop入门二

Hadoop分布式文件系统(HDFS)
什么是HDFS
HDFS设计目标
HDFS系统特点
HDFS工作原理
HDFS服务进程
HDFS实战
Hadoop安装
HDFS命令行工具
启动、停止HDFS服务
如何查看HDFS日志
查看HDFS Web控制台
HDFS配置参数
MapReduce分布式计算框架
什么是MapReduce
MapReduce服务
MapReduce工作机制
MapReduce调度管理
MapReduce实战
运行MapReduce任务
MapReduce参数设置
启动、停止MapReduce服务
如何查看MapReduce日志
查看MapReduce Web控制台
集群规划
系统及硬件推荐配置
集群性能评估
集群维护与管理
查看集群状态
模拟集群失效
添加删除节点
数据平衡
元数据备份
文件数据跨集群拷贝
集群升级
Ganglia(运维工具)
Ganglia简介
Ganglia与Hadoop的集成
Hadoop中可监控的项目介绍

Hadoop的作用

Hadoop作为大数据存储及计算领域的一颗明星,目前已经得到越来越广泛的应用。下面主要分析了Hadoop的一些典型应用场景,并对其进行了深入分析,主要包括下面几个方面:
日志处理: Hadoop擅长这个
并行计算
ETL: 每个人几乎都在做ETL(Extract-Transform-Load)工作 Netezza关于使用Hadoop做ETL任务的看法)
使用HBase做数据分析: 用扩展性应对大量的写操作—Facebook构建了基于HBase的实时数据分析系统
机器学习: 比如Apache Mahout项目
Hadoop是什么?
是google的核心算法MapReduce的一个开源实现。用于海量数据的并行处理。 hadoop的核心主要包含:HDFS和MapReduce, HDFS是分布式文件系统,用于分布式存储海量数据。 MapReduce是分布式数据处理模型,本质是并行处理。
多少数据算海量数据?
个人认为,TB(1024GB)级别往上就可以算海量数据。
谁在使用hadoop?
N多大型互联网公司,这里列的比较全:
http://wiki.apache.org/hadoop/PoweredBy
在国内,包括中国移动、百度、网易、淘宝、腾讯、金山和华为等众多公司都在研究和使用它
用它来做什么?
海量数据处理。。。似乎有点虚,用hadoop的地方:
1、最简单的,做个数据备份/文件归档的地方,这利用了hadoop海量数据的存储能力
2、数据仓库/数据挖掘:分析web日志,分析用户的行为(如:用户使用搜索时,在搜索结果中点击第2页的概率有多大)
3、搜索引擎:设计hadoop的初衷,就是为了快速建立索引。
4、云计算:据说,中国移动的大云,就是基于hadoop的
5、研究:hadoop的本质就是分布式计算,又是开源的。有很多思想值得借鉴。

Hadoop到底能做什么?怎么用Hadoop?

hadoop是什么?hadoop能做什么?怎么用hadoop?
hadoop是什么?
Hadoop是一个开源的框架,可编写和运行分不是应用处理大规模数据,是专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式。Hadoop=HDFS(文件系统,数据存储技术相关)+ Mapreduce(数据处理),Hadoop的数据来源可以是任何形式,在处理半结构化和非结构化数据上与关系型数据库相比有更好的性能,具有更灵活的处理能力,不管任何数据形式最终会转化为key/value,key/value是基本数据单元。用函数式变成Mapreduce代替SQL,SQL是查询语句,而Mapreduce则是使用脚本和代码,而对于适用于关系型数据库,习惯SQL的Hadoop有开源工具hive代替。
hadoop能做什么?
hadoop擅长日志分析,facebook就用Hive来进行日志分析,2009年时facebook就有非编程人员的30%的人使用HiveQL进行数据分析;淘宝搜索中的自定义筛选也使用的Hive;利用Pig还可以做高级的数据处理,包括Twitter、LinkedIn 上用于发现您可能认识的人,可以实现类似Amazon.com的协同过滤的推荐效果。淘宝的商品推荐也是!在Yahoo!的40%的Hadoop作业是用pig运行的,包括垃圾邮件的识别和过滤,还有用户特征建模。(2012年8月25新更新,天猫的推荐系统是hive,少量尝试mahout!)
hadoop能为我司做什么?
零数据基础,零数据平台,一切起点都是0。
日志处理
用户细分特征建模
个性化广告推荐
智能仪器推荐
一切以增加企业的商业价值为核心目的、最终目的
4.怎么用hadoop?
hadoop的应用的在我司还属于研发型项目,拟用日志的分析来走通一次流程,因为此阶段目前来说还不需要数据挖掘的专业人员,在数据分析阶段即可,而系统有数据库工程师,Mapreduce有java开发工程师,而分析由我本人介入,而可视化暂时可由前端JS实现,本来我的调研方案,针对大数据的解决方案是hadoop+R的,但是对于R我们是完全不懂,在公司还没有大量投入人员的情况下,只有日志分析目前看来是最容易出成果的,也是可以通过较少人员能出一定成果的,所以选取了这个方向作为试点。
首先要进行数据的存储,一是要协调上游的服务厂商,关于日志的抓取,二是hadoop系统的搭建,目前已经在紧张的筹备中了。
http://blog.sina.com.cn/s/blog_687194cd01017lgu.html

hadoop基础-Hadoop入门一

对于想自学Hadoop,提供学习的路线图:
Hadoop概述
什么是Hadoop
为什么需要Hadoop
Hadoop的诞生和成长
Hadoop的特点和生态系统
HDFS和MapReduce
什么是HDFS,以及HDFS的设计目标
HDFS基本组件和架构
什么是MapReduce,以及MapReduce的架构
MapReduce基本服务和流程
Hadoop集群规划概要,以及软硬件的选择