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交互

 

Masterslave

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

0 0
原创粉丝点击