为了账号安全,请及时绑定邮箱和手机立即绑定

Hadoop大数据平台架构与实践总结

标签:
大数据

一、初识Hadoop
1.Hadoop是什么?
开源的Apache+分布式存储+分布式计算平台
2.组成
包括两个核心组成:
HDFS:分布式文件系统,存储海量的数据
MapReduce:并行处理框架,实现任务分解和调度
3.Hadoop可以用来做什么?
搭建大型数据仓库,PB级数据的存储、处理、分析、统计等业务。
4.hadoop的优势:高性能,低成本,成熟的生态圈
已经成为业界大数据平台的首选
5.生态系统和版本
常用的软件:
HDFS,MapReduce,HIVE(小蜜蜂,降低了人们使用Hadoop的门槛)
HBASE(存储结构化数据的分布式数据库)与传统的关系型数据库相比:Hbase放弃事务特性,追求更高的扩展。
与HDFS相比:Hbase提供数据的随机读写和实时访问,实现对表数据的读写功能。
zookeeper:ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
版本:Version1.X:稳定
Version2.X:不稳定
二、Hadoop安装
1.安装步骤
step1准备Linux环境
step2安装JDK 参考:http://jingyan.baidu.com/article/91f5db1bdb7ee41c7e05e373.html
step3配置Hadoop
安装1.2版本的Hadoop
修改配置文件有四个:
path:hadoop-1.2.1/conf
1、hadoop-env.sh文件中的java_home要配置成jdk目录,不能是jre;
export JAVA_HOME=/mnt/software/jdk1.7.0_07
2、core-site.xml文件
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/hadoop</value>
</property>

            <property>
            <name>dfs.name.dir</name>
            <value>/hadoop/name</value>
            </property>

            <property>
            <name>fs.default.name</name>
            <value>hdfs://iZ234znod84Z:9000</value>
            </property>
            </configuration>
            3、hdfs-site.xml文件
            <configuration>

            <property>
            <name>dfs.data.dir</name>
            <value>/hadoop/data</value>
            </property>

            </configuration>
            4、mapred-site.xml文件
            <configuration>
            <property>
            <name>mapred.job.tracker</name>
            <value>iZ234znod84Z:9001</value>
            </property>

            </configuration>
        格式化文件系统:
        #hadoop namenode -format
        启动
        #start-all.sh
        查看Hadoop下有哪些进程,是否正常运行:
        #jps
        查看Hadoop下有哪些文件:
        #hadoop fs -ls /

三、基本概念
HDFS:Hadoop分布式文件系统(HDFS)被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统。它和现有的分布式文件系统有很多共同点。但同时,它和其他的分布式文件系统的区别也是很明显的。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了一部分POSIX约束,来实现流式读取文件系统数据的目的。HDFS在最开始是作为Apache Nutch搜索引擎项目的基础架构而开发的。HDFS是Apache Hadoop Core项目的一部分。
块:HDFS的文件被分成块进行存储
HDFS块的默认大小是64MB
块是文件存储处理的逻辑单元
NameNode是管理节点,存放文件元数据
①文件与数据块的映射表
②数据块与数据节点的映射表
DateNode是HDFS的工作节点,存放数据块的
每个数据块有3个副本,分布在两个机架内的两个节点
DateNode定期向NameNode发送心跳检测

HDFS读取文件的流程
    ①客户端向NameNode文件读取请求
    ②NameNode返回数据,告知客户端从那个Blocks(块)中获取数据
    ③读取Blocks

HDFS写入文件的流程
    ①文件拆分成块
    ②客户端向NameNode发起请求,返回DateNodes
    ③写入Blocks
    ④流水线复制
    ⑤更新数据
HDFS特点
    ①数据冗余,硬件容错(所谓容错是指在故障存在的情况下计算机系统不失效,仍然能够正常工作的特性)
    ②流式的数据访问
    ③存储大文件
    适用性和局限性:
        适合数据批量读写,吞吐量高;
        不适合交互式应用,低延迟很难满足
        适合一次写入多次读取,顺序读写
        不支持多用户并发写相同文件
    【注】对“流式的数据访问”的理解:就是处理的数据是过来一点就存储一点,而不是全部收到数据以后再处理,这样会导致延迟很大,消耗大量内存。

MapReduce:框架
MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。概念"Map(映射)"和"Reduce(归约)",是它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己的程序运行在分布式系统上。 当前的软件实现是指定一个Map(映射)函数,用来把一组键值对映射成一组新的键值对,指定并发的Reduce(归约)函数,用来保证所有映射的键值对中的每一个共享相同的键组。

定义:分而治之,一个大的任务分成多个小的子任务(map),并行执行后,合并结果(reduce)
点击查看更多内容
25人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消