hadoop
1.1 hadoop 介绍
官网介绍:
The Apache Hadoop software library is a framework that allows for the distributed processing of large data sets across clusters of computers using simple programming models. It is designed to scale up from single servers to thousands of machines, each offering local computation and storage. Rather than rely on hardware to deliver high-availability, the library itself is designed to detect and handle failures at the application layer, so delivering a highly-available service on top of a cluster of computers, each of which may be prone to failures.
百科介绍
Apache Hadoop软件库是一个框架,该框架允许使用简单的编程模型跨计算机集群对大型数据集进行分布式处理。它旨在从单个服务器扩展到数千台机器,每台机器都提供本地计算和存储。库本身不用于依靠硬件来提供高可用性,而是设计用于检测和处理应用程序层的故障,因此可以在计算机集群的顶部提供高可用性服务,每台计算机都容易出现故障。
作用
Hadoop主要用来存储以及处理 大量并且复杂的数据
1.2 hadoop 组件介绍
Hadoop的核心生态架构
- 底层:存储层,文件系统HDFS,NoSQL Hbase
- 中间层:资源及数据管理层,YARN以及Sentry等
- 上层:MapReduce、Impala、Spark等计算引擎
- 顶层:基于MapReduce、Spark等计算引擎的高级封装及工具,如Hive、Pig、Mahout
核心组件
-
mapreduce:分布式批计算引擎,就是把一部分数据,拆分到多个节点,进行计算。说通俗了,就是把一个java里的数组拆分若干份,扔给多个机器上的mr进程,让它们处理,至于怎么处理逻辑都是自己写。
-
hdfs:一个分布式文件系统,这个不多说了,不了解dfs的话查查就明白。
-
yarn:资源管理调度框架,如果你写了一堆定时执行的批处理程序,想让它在一堆服务器中的任意一台运行,但是这些服务器的资源(内存、cpu)是有限的,你希望这些程序能够自动的选择一台资源相对不错的机器运行,且当服务器资源不够时,剩下尚未运行的程序需要进行等待,说白了就是能把这些服务器资源管理起来,你每次启动程序不用手动去每台机器上找,同时能监控服务器的资源使用,让它们别超标影响其他程序,还能跟着每个程序执行状况,那么yarn就是做件事情的。
2.1 hadoop 搭建
2.1.1 hadoop 下载
下载地址:https://hadoop.apache.org/releases.html
2.1.2 准备环境
jdk安装(因为 hadoop是 java 开发)
2.1.3 安装 方式
Hadoop 部署模式有:本地模式、伪分布模式、完全分布式模式、HA完全分布式模式。
区分的依据是 NameNode、DataNode、ResourceManager、NodeManager等模块运行在几个JVM进程、几个机器。
模式名称 | 各个模块占用的JVM进程数 | 各个模块运行在几个机器数上 |
---|---|---|
本地模式 | 1个 | 1个 |
伪分布式模式 | N个 | 1个 |
完全分布式模式 | N个 | N个 |
HA完全分布式 | N个 | N个 |
2.1.4 配置
2.1.5 测试
运行MapReduce程序,验证
我们这里用hadoop自带的wordcount例子来在本地模式下测试跑mapreduce。
-
准备mapreduce输入文件wc.input
-
运行 hadoop 自带的 mapreduce Demo
-
查看输出文件
输出目录中有 _SUCCESS 文件说明 JOB 运行成功
具体详细的 各组件 详解 和 详细安装教程 后续会陆续 更新
个人能力有限
欢迎大家留言,如有问题,会及时更正(接受一切正确的 建议)
官网地址:http://hadoop.apache.org/
参考:
https://www.zhihu.com/question/333417513
https://www.jianshu.com/p/0d4a365ef350