Hadoop, Hadoop涉及到的一些常见概念(分布式与集群、HDFS、MapReduce等),Hadoop怎么用?
一、Hadoop是什么,有什么用
1,Hadoop是什么?
■ Hadoop是做什么的?目前主流的大数据处理分布式架构之一,Hadoop用于处理大规模数据。【分布式系统架构,用于处理大数据】
■ 使用Hadoop构建的应用程序可在分布于商用计算机群集(低成本)的大型数据集上运行。【低成本】。
■ Hadoop实现了一个分布式文件系统,Hadoop的框架最核心的设计就是:HDFS 和 MapReduce。
HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。【利用集群进行高速运算和存储】
■ 用户可以在不了解分布式底层细节的情况下,开发分布式程序。
2,Hadoop 作用:体现在Hadoop对大数据处理的意义;【高效计算和存储】
● 大数据存储:分布式存储
● 日志处理:擅长日志分析
● ETL:数据抽取到oracle、mysql、DB2、mongdb及主流数据库
● 机器学习: 比如Apache Mahout项目
● 搜索引擎:Hadoop + lucene实现
● 数据挖掘:目前比较流行的广告推荐,个性化广告推荐
Hadoop是专为离线和大规模数据分析而设计的,并不适合那种对几个记录随机读写的在线事务处理模式。
ps: hadoop实际应用:
■ Hadoop+HBase建立NoSQL分布式数据库应用
■ Flume+Hadoop+Hive建立离线日志分析系统
■ Flume+Logstash+Kafka+Spark Streaming进行实时日志处理分析
3,Hadoop 优点:
■ 可扩展性强,Hadoop可以在一组计算机集群当中分配任务完成数据计算,这些集群可以更方便地扩展到数千节点当中。
■ 高效性,Hadoop的分布式文件系统,能够保证高效的数据交互,通过并行处理加快数据处理速度。
■ 可靠性,Hadoop的分布式文件系统将数据分块储存,每个数据块在集群节点上依据一定的策略进行冗余储存,
确保能够针对失败的节点重新分布处理,从而保证了数据的可靠性。
二、Hadoop涉及到的一些常见概念(分布式、集群、HDFS、MapReduce等)
✿ 核心架构
■ Hadoop 的底层是Hadoop Distributed File System(HDFS),HDFS存储了 Hadoop 集群中所有存储节点上的文件。
HDFS的上一层是MapReduce引擎,该引擎由 JobTrackers 和 TaskTrackers 组成。
■ 通过对Hadoop分布式计算平台最核心的分布式文件系统HDFS、MapReduce处理过程,
以及数据仓库工具Hive和分布式数据库Hbase的介绍,基本涵盖了Hadoop分布式平台的所有技术核心。
✿ Hadoop中涉及到的常见概念:
(1)分布式与集群:
■ 集群是个物理形态,分布式是个工作方式。
只要是一堆机器,就可以叫集群,一个程序或系统,将任务分配给不同的机器上,不同机器一起合作完成任务的关系,即分布式。
- 集群:同一个业务部署在多台机器上,提高系统可用性
- 分布式:不同的业务模块部署在不同的服务器上或者同一个业务模块分拆多个子业务,部署在不同的服务器上,解决高并发的问题
■ 集群(处理机的静态状态)强调的是个体与群体之间的关系,是集合在一起的集群关系,也就是处理机不是单一体,是一个相似的个体组成的群体。
分布式(处理机的动态状态)强调的是对业务在源头上的一种处理方式---分配处理。将任务分发给多个处理机,而非单一处理机进行处理。强调请求和处理直接的分发状况。
(2)HDFS(Distributed File System):
HDFS是一个分布式文件系统:引入存放文件元数据信息的服务器Namenode和实际存放数据的服务器Datanode,对数据进行分布式储存和读取。
■ HDFS采用了主从(Master/Slave)结构模型,一个HDFS集群是由一个NameNode和若干个DataNode组成的。
其中NameNode(NameNode 可以控制所有文件操作)作为主服务器,管理文件系统的命名空间和客户端对文件的访问操作;
集群中的DataNode管理存储的数据。(hadoop2.x版本,可以存在两个NameNode,解决了单节点故障问题)。
(3)MapReduce:
MapReduce是一个计算框架:MapReduce的核心思想是把计算任务分配给集群内的服务器里执行。
通过对计算任务的拆分(Map计算/Reduce计算)再根据任务调度器(JobTracker)对任务进行分布式计算。
■ HDFS 和 MapReduce:
Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,则MapReduce为海量的数据提供了计算。
把HDFS理解为一个分布式的,有冗余备份的,可以动态扩展的用来存储大规模数据的大硬盘。
把MapReduce理解成为一个计算引擎,按照MapReduce的规则编写Map计算/Reduce计算的程序,可以完成计算任务。
三、Hadoop怎么用?
3.1、Hadoop集群的搭建
无论是在windows上装几台虚拟机(集群)玩Hadoop,还是真实的服务器来玩,
简单讲就是把Hadoop的安装包放在每一台服务器上,改改配置,启动就完成了Hadoop集群的搭建。
3.2、上传文件到Hadoop集群
Hadoop集群搭建好以后,可以通过web页面查看集群的情况,还可以通过Hadoop命令来上传文件到hdfs集群,
通过Hadoop命令在hdfs集群上建立目录,通过Hadoop命令删除集群上的文件等等。
3.3、编写map/reduce程序
通过集成开发工具(例如eclipse)导入Hadoop相关的jar包,编写map/reduce程序,将程序打成jar包扔在集群上执行,运行后出计算结果。