1.学习Hadoop之前需要的基础,javaSE(基础),EE(SSM),Linux基础,因为90%的框架都是用java写的,Hadoop、hive、HBase、下面是Hadoop的有关介绍。
2.学习大数据里面最核心的就是Hadoop,我们知道什么是大数据。就是一个非常庞大的数据,计算机无法直接取读取以及分析处理,这个时候就要用到我们学到的大数据。
Hadoop的四大组件:
common、HDFS、MapReduce、YARN
common(工具类):
包括Hadoop常用的工具类,由原来的Hadoopcore部分更名而来。主要包括系统配置工具Configuration、远程过程调用RPC、序列化机制和Hadoop抽象文件系统FileSystem等。它们为在通用硬件上搭建云计算环境提供基本的服务,并为运行在该平台上的软件开发提供了所需的API。
Hadoop Distributed File System(HDFS):
Hadoop实现了一个分布式的文件系统,HDFS为海量的数据提供了存储。HDFS是基于节点的形式进行构建的,里面有一个父节点NameNode,他在机器内部提供了服务,NameNode本身不干活,NameNode将数据分成块,只是把数据分发给子节点,交由子节点来进行存储,由于只存在一个父节点,所以这是HDFS的一个缺点,单点失败。以及n个子节点dataNode,dataNode在机器内部提供了数据块,存储在HDFS的数据被分成块,然后将这些块分到多个计算机(dataNode)中,这与传统的RAID架构大有不同。块的大小(通常为64MB)和复制的块数量在创建文件时由客户机决定。NameNode可以控制所有文件操作。
NameNode:
NameNode 是一个通常在 HDFS实例中的单独机器上运行的软件。它负责管理文件系统名称空间和控制外部客户机的访问。NameNode 决定是否将文件映射到 DataNode 上的复制块上。对于最常见的 3 个复制块,第一个复制块存储在同一机架的不同节点上,最后一个复制块存储在不同机架的某个节点上。
DataNode:
DataNode 也是一个通常在HDFS实例中的单独机器上运行的软件。Hadoop 集群包含一个 NameNode 和大量 DataNode。DataNode 通常以机架的形式组织,机架通过一个交换机将所有系统连接起来。Hadoop 的一个假设是:机架内部节点之间的传输速度快于机架间节点的传输速度。
MapReduce:
基于YARN的大型数据集并行处理系统。是一种计算模型,用以进行大数据量的计算。Hadoop的MapReduce实现,和Common、HDFS一起,构成了Hadoop发展初期的三个组件。MapReduce将应用划分为Map和Reduce两个步骤,其中Map对数据集上的独立元素进行指定的操作,生成键-值对形式中间结果。Reduce则对中间结果中相同“键”的所有“值”进行规约,以得到最终结果。MapReduce这样的功能划分,非常适合在大量计算机组成的分布式并行环境里进行数据处理。
YARN:
分布式集群资源管理框架,管理者集群的资源(Memory,cpu core)
合理调度分配给各个程序(MapReduce)使用
主节点:resourceManager
掌管集群中的资源
从节点:nodeManager
管理每台集群资源
总结:Hadoop的安装部署
都属于java进程,就是启动了JVM进程,运行服务。
HDFS:存储数据,提供分析的数据
NameNode/DataNode
YARN:提供程序运行的资源
ResourceManager/NodeManager