大数据基础平台
大数据:通俗就是收集、分析、处理大量的数据,然后从中获得结果的技术总称
大数据应用领域
广告、金融、能源生物、安全、电商等等
大数据的技术
批处理框架
- 历史性数据,有源有结束点
- 离线型数据
- 能处理全部的历史性数据
- 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