大数据基础平台
大数据:通俗就是收集、分析、处理大量的数据,然后从中获得结果的技术总称
大数据应用领域
广告、金融、能源生物、安全、电商等等
大数据的技术
批处理框架
- 历史性数据,有源有结束点
 - 离线型数据
 - 能处理全部的历史性数据
 - Apache MapReduce
 
流处理框架
- 处理实时性数据
 - 源源不断的处理数据
 - Apache samza
 - Apache storm
 
混合处理框架
- 既有批处理也有流处理
 - Apache flink
 - Apache spark
 
项目定义
- 可靠的,可扩展的开源软件
 - 是一个大数据处理框架,允许使用简单的编程模型跨计算机集群分布式处理大型数据集。
 - 可以从单个服务器扩展到数千台计算机
 - 集群中的媚态计算机都提供本地计算和存储
 - 集群不是依靠硬件来提供高可用性,而是设计了用于检测和处理应用程序层的故障,从而在计算机集群上提供高可用性服务。
 
hadoop的核心项目
- hadoop分布式文件系统(HDFS):一种分布式文件系统,可提供对应用程序数据的高吞吐量访问。
 - hadoop YARN:作业调度和集群资源管理的框架。
 - hadoop MapReduce: 基于YARN的系统,用于并行处理大型数据集。
 
相关项目
Apache的其他Hadoop相关项目:
- Hadoop Common:支持其他Hadoop模块的常用实用程序
 - Ambari:
- 基于web的工具,用于配置,管理和监控Apache Hadoop集群。
 - 提供了一个查看集群运行状态的仪表板。
 
 - HBase:可扩展的分不是数据库,支持大型表的结构化数据存储
 - Hive:一种数据仓库基础架构,提供数据汇总和即时查询
 - Spark:用于Hadoop数据的快速通用计算引擎。
 - ZooKeeper:用于分布式应用程序的高性能协调服务。
 
hdfs定义与特点
- HDFS(Hadoop分布式文件系统)
 - 高度容错性的系统
 - 适合部署在廉价的机器上
 - 提供高吞吐量的数据访问
 - 适合超大数据集的应用程序
 
特点:
- 支持大数据文件
 - 支持文件分块存储
 - 支持一次写入,多次读取,顺序读取(流式数据访问)
 - 支持廉价硬件
 - 支持硬件故障数据保护
 
HDFS集群架构
主:NameNode
用于保存整个文件系统的目录信息、文件信息及分块信息。
作用:
- 接受用户的操作请求
 - 维护文件系统的目录结构
 - 管理文件和Block之间的映射管理
 - 管理block和DataNode之间的映射
 
从:DataNode
分布在廉价的计算机上,用于存储Block块文件
作用:
- 文件被分成存储到DataNode的磁盘上
 - 每个Block可以设置多副本
 
MapReduce介绍
mepreduce是Hadoop的核心项目,它是一个编程模型
核心步骤分为两部分:Map和Reduce
工作原理
向MapReduce框架提交一个任务的
- 把这个任务分成多个Map任务
 - 分配到不同的节点上执行
 - 每个Map任务处理一部分数据
 - 完成后,产生中间文件,然后交给Reduce整合并输出
 
yarn介绍
YARN:另一种资源协调者
功能:任务调度和集群资源管理
**好处:**维护成本低、数据共享。
YARN组件(主从)
主:ResourceManager (资源管理):管理和调度NodeManager上的资源
从:NodeManager (节点管理):用于接收资源管理中的应用管理的计算任务、启动/停止任务和资源管理中的Scheduler汇报并协商资源、监控并汇报本节点的情况
工作原理
- 首先数据上传到集群中
 - 然后将写好的程序打成jar包通过命令提交MR作业
 - 提交到集群后由集群管理者MR开始调度分配资源
 - 到HDFS读取数据执行MapReduce相关进程对数据进行计算
 
hadoop单机部署
介绍
- 是Hadoop的默认部署模式
 - 当配置文件为空,Hadoop完全运行在本地
 - 不需要与其他节点交互,不使用HDFS,不加载任何Hadoop守护进程
 - 主要用于开发调式MapReduce程序的应用逻辑
 
部署流程
- 下载软件包
 
官网:https://archive.apache.org/dist/hadoop/common/ (进去找相应版本,这里安装2.8.5)
- 安装JDK(将下载后的jdk程序包拷贝到服务器上)
 
解压到指定目录
[root@vm2 ~]# tar xf /root/jdk-8u191-linux-x64.tar.gz -C /usr/local
- 安装hadoop
 
[root@vm2 ~]# tar xf /root/hadoop-2.8.5.tar.gz -C /usr/local
[root@vm2 ~]# mv /usr/local/hadoop-2.8.5 /usr/local/hadoop
- 配置环境变量
 
[root@vm2 ~]# vim /etc/profile.d/hadoop.sh
export JAVA_HOME=/usr/local/jdk1.8.0_191
export HADOOP_HOME=/usr/local/hadoop
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
[root@vm2 ~]# source /etc/profile
测试hadoop可用性
准备一个目录, 目录里准备一个 (任意写多个字符,某些字符要有重复)
[root@vm2 ~]# mkdir /home/input
[root@vm2 ~]# vim /home/input/test1.txt
使用hadoop里自带的jar包里的wordcount函数进行统计
[root@vm2~]# hadoop jar  /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /home/input/test1.txt  /home/output/00
wordcount后接文件或目录都可以,接文件就统计文件,接目录则统计整个目录里的文件
[root@hadoopmaster ~]# ls /home/output/00
part-r-00000  _SUCCESS      //_SUCCESS文件说明JOB运行成功,part-r-00000是输出结果文件
[root@vm2 ~]# cat /home/output/00/part-r-00000
                                    来源:CSDN
作者:柒哥fu.
链接:https://blog.csdn.net/xyype/article/details/103690130