Hadoop学习,第一篇
来源:互联网 发布:电脑有声阅读软件 编辑:程序博客网 时间:2024/05/21 05:08
一个典型的实验环境
1, 服务器:ESXi,可以再上面部署10多台虚拟机,能同时启动四台
2, PC:要求linux环境或windows+Cygwin,linux可以是standolone或者使用虚拟机
3, SSH:windows下可以使用SecureCRT或putty等ssh client 程序,作用是用来远程连接linux服务器,linux下可以直接使用ssh命令
4, Vmware client: 用于管理ESXi
5, Hadoop:使用0.20.2
Google面对的数据和计算难题
大量的网页怎么存储? 将数据存在内存里,多个节点里,这个坏了另一个也可以用
搜索算法
Page-Rank计算问题
这是Google最核心的算法,用于给每个网页价值评分,是Google“在垃圾中找黄金”的关键算法,这个算法成就了今天的Google
根据什么来算页面的价值
根据链接数来判断页面的价值。(如果一个页面被其他页面指向的最多,就说明这个页面比较重要,很有价值)
Google带给我们的关键技术和思想
GFS
Map-Reduce
Bigtable
Hadoop的怨气---Lucene
1,Doug Cuttin开创的开源软件,用java书写代码,实现与Google类似的全文搜索功能,他提供了全文检索引擎的架构,包括完整的查询引擎和索引引擎
2,Nutch
3, Yahoo招安Doug Cutting及其项目
4,Hadoop于2005年秋天作为lucene的子项目Nutch的一部分正式引入Apache基金会。2006年3月,Map-reduce和Nutch Distributed File System(NDFS)分别被纳入Hadoop项目中
目前Hadoop达到的高度
1, 实现云计算的事实标准开源软件
2, 包含数十个具有强大生命力的子项目
3, 已经能在数千节点上运行,处理数据量和排序时间不短打破世界纪录
HBase 列式存储(提高响应速度,减少IO量)
Pig 轻量级语言 (是用户和MapReduce之间的转换作用)
Hive 自动将sql转变成分布式任务,在各节点里执行,然后返回结果给你。不支持全部的sql
Chukwa
MapReduce 程序
HDFS
Zoo Keeper 负责服务器节点和进程间的通讯
Core
Avro
Hadoop每个子项目的logo都用的是小动物
Hadoop的架构
以下几个重要进程
Namenode
是HDFS的守护程序
会记录文件时如何分割成数据块的,以及这些数据块被存储在哪些节点上
会对内存和IO进行集中管理
是个单点,发生故障将使集群崩溃
SecondaryNamenode
辅助名称节点
监控HDFS状态的辅助后台程序
每个集群都有一个
DataNode
每台从服务器都运行一个
负责吧HDFS数据块度写道本地文件系统
JobTrachker 作业跟踪器
用于处理作业(用户提交代码)的后台程序
决定哪些文件参与处理,然后切割成为tash并分配及节点
监控tash,重启失败的task(于不同的节点)
每个集群只有唯一一个JobTracker,位于Master节点
TaskTracher 任务跟踪器
位于slave节点上,与datanode结合(代码与数据一起的原则)
管理各子节点上的task
每个节点只有一个tasktracker,但一个tasktracker可以启动多个JVM,用于并行执行map或reduce任务
与jobtracker交互
Master与slave
Mater:Namenode/Secondary Namenode/Jobtracker.
Slave: tasktracker/Datanode
Master不是唯一的
Why Hadoop ?
数据分析者面临的问题
1, 数据日趋庞大,无论是入库和查询,都出现性能瓶颈
2, 用户的应用和分析结果呈整合趋势,对实时性和响应时间要求越来越高
3, 使用的模型越来越复杂,计算量指数级上升
数据分析者期待的解决方案
1, 完美解决性能瓶颈,在可见未来不容易出现新瓶颈
2, 过去所拥有的技能可以平稳过度,比如sql/R
3, 转移平台的成本有多高?平台软硬件成本,再开发成本,技能再培养成本,维护成本
Hadoop的思想
多个屌丝代替一个高富帅
Why not Hadoop?
Java? 难以驾驭? 数据集成困难? Hadoop vs Oracle
- Hadoop学习,第一篇
- Hadoop学习---第一篇搭建Hadoop集群
- 第一篇日志-----开始学习hadoop
- hadoop第一篇
- Hadoop课程--第一篇
- Hadoop的学习第一篇(环境准备)
- servlet学习(第一篇)
- 多线程学习第一篇
- 第一篇学习日记
- 第一篇PHP学习
- android 学习第一篇
- wordpress 学习第一篇
- 学习android第一篇
- Linux学习第一篇
- Linux学习第一篇
- android学习第一篇
- lucene学习第一篇
- latex学习第一篇
- 第8周—项目1 建立顺序串的算法库
- Beyond Compare integrate with WinSCP & CVS
- 设备管理成功经验总结
- alm应用程序生命周期管理
- OC-----------Block块的注意点
- Hadoop学习,第一篇
- 关于/dev/fd/
- 一、ios的通过Xib构建UICollectionView的简单运用
- jquery 实现 input 内容全选
- hudson 持续集成 编译代码出现 “找不到符号”
- iOS经典讲解之清除缓存文件
- 回退 服务器 上的 git 仓库 & 删除 服务器上的 git 分支
- 第六周项目 建立顺序栈算法库
- 程序员们为什么不能“面朝大海,春暖花开?”