目前人工智能和大数据火热,使用的场景也越来越广,日常开发中前端同学也逐渐接触了更多与大数据相关的开发需求。因此对大数据知识也有必要进行一些学习理解。
Hadoop大数据架构组成
通常来说,企业级的大数据平台,Hadoop运用的组件如下:
(1)Hdfs:分布式文件系统,它其实跟linux的EXT4文件系统类似,差异就是HDFS是分布式的,且能保存多个副本且提供容错机制。
(2)Yarn:资源管理调度系统,将各个资源部分(CPU、内存、带宽等)精心安排给需要的节点。
(3)Hbase:分布式的、面向列的开源分布式的非关系型数据库,关系数据库很难实现横向扩展,纵向扩展的空间也比较有限。相反,HBase和BigTable这些分布式数据库就是为了实现灵活的水平扩展而开发的,能够轻易地通过在集群中增加或者减少硬件数量来实现性能的伸缩。
(4)Zookeeper:是一个分布式、开源的式应用程序协调服务集,是集群的管理者,监视着集群中各个节点的状态根据节点提交的反馈进行下一步合理操作,比如同步、配置管理、集群管理、命名空间。
(5)SPARK:是专为大规模数据处理而设计的快速通用的计算引擎,可用于实时计算,,Spark具有运行速度快、易用性好、通用性强和随处运行等特点。
(6)Spark streaming/Flume/flink/:流式处理框架,处理实时数据,实时数据计算研判等。
(7)ES:ElasticSearch是一个分布式搜索引擎,提供全文搜索和实时分析的结构化和非结构化的数据。
一、数据的存储:分布式文件系统(分布式存储)
二、数据的计算:分部署计算
学习大数据需要具备Java知识基础及Linux知识基础
(1)Java基础和Linux基础
(2)Hadoop的学习:体系结构、原理、编程
第一阶段:HDFS、MapReduce、HBase(NoSQL数据库)
第二阶段:数据分析引擎 -> Hive、Pig
数据采集引擎 -> Sqoop、Flume
第三阶段:HUE:Web管理工具
ZooKeeper:实现Hadoop的HA Oozie:工作流引擎
(3)Spark的学习
第一阶段:Scala编程语言 第二阶段:Spark Core -> 基于内存、数据的计算 第三阶段:Spark SQL -> 类似于mysql 的sql语句 第四阶段:Spark Streaming ->进行流式计算:比如:自来水厂
(4)Apache Storm 类似:Spark Streaming ->进行流式计算
NoSQL:Redis基于内存的数据库
分布式文件系统 解决以下问题:
1、硬盘不够大:多几块硬盘,理论上可以无限大 2、数据不够安全:冗余度,hdfs默认冗余为3 ,用水平复制提高效率,传输按照数据库为单位:Hadoop1.x 64M,Hadoop2.x 128M
管理员:NameNode 硬盘:DataNode
![image.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/8ca9f78b244c7f991e73f71fd1e56421.png)
基础编程模型:把一个大任务拆分成小任务,再进行汇总 MR任务:Job = Map + Reduce Map的输出是Reduce的输入、MR的输入和输出都是在HDFS
MapReduce数据流程分析:
Map的输出是Reduce的输入,Reduce的输入是Map的集合
什么是BigTable?: 把所有的数据保存到一张表中,采用冗余 ---> 好处:提高效率
1、因为有了bigtable的思想:NoSQL:HBase数据库 2、HBase基于Hadoop的HDFS的 3、描述HBase的表结构 核心思想是:利用空间换效率
Linux环境、JDK、http://mirrors.shu.edu.cn/apache/hadoop/common/hadoop-3.0.0/hadoop-3.0.0-src.tar.gz
1、安装jdk、并配置环境变量
vim /etc/profile 末尾添加 ![image.png](http://ata2-img.cn-hangzhou.img-pub.aliyun-inc.com/a9bf2e19410f9b3d38c8b0ca64b2f264.png)
2、解压hadoop-3.0.0.tar.gz、并配置环境变量
tar -zxvf hadoop-3.0.0.tar.gz -C /usr/local/ mv hadoop-3.0.0/ hadoop
vim /etc/profile 末尾添加
Hadoop有三种安装模式:
本地模式: 1台主机 不具备HDFS,只能测试MapReduce程序 伪分布模式: 1台主机 具备Hadoop的所有功能,在单机上模拟一个分布式的环境 (1)HDFS:主:NameNode,数据节点:DataNode (2)Yarn:容器,运行MapReduce程序 主节点:ResourceManager 从节点:NodeManager 全分布模式: 至少3台
我们以伪分布模式为例配置:
dfs.replication 1 dfs.permissions false
fs.defaultFS hdfs://192.168.56.102:9000 hadoop.tmp.dir /usr/local/hadoop/tmp
mapreduce.framework.name yar yarn.app.mapreduce.am.env HADOOP_MAPRED_HOME=/usr/local/hadoop mapreduce.map.env HADOOP_MAPRED_HOME=/usr/local/hadoop mapreduce.reduce.env HADOOP_MAPRED_HOME=/usr/local/hadoop mapreduce.application.classpath /usr/local/hadoop/etc/hadoop, /usr/local/hadoop/share/hadoop/common/*, /usr/local/hadoop/share/hadoop/common/lib/*, /usr/local/hadoop/share/hadoop/hdfs/*, /usr/local/hadoop/share/hadoop/hdfs/lib/*, /usr/local/hadoop/share/hadoop/mapreduce/*, /usr/local/hadoop/share/hadoop/mapreduce/lib/*, /usr/local/hadoop/share/hadoop/yarn/*, /usr/local/hadoop/share/hadoop/yarn/lib/*,
yarn.resourcemanager.hostname 192.168.56.102 yarn.nodemanager.aux-service mapreduce_shuffle
hdfs namenode -format
看到
common.Storage: Storage directory /usr/local/hadoop/tmp/dfs/name has been successfully formatted
表示格式化成功
start-all.sh
(*)HDFS:存储数据
(*)YARN:
(*)命令行
(*)Java Api
(*)WEB Console
HDFS: http://192.168.56.102:50070
Yarn: http://192.168.56.102:8088
查看HDFS管理界面和yarn资源管理系统
本文系作者在时代Java发表,未经许可,不得转载。
如有侵权,请联系nowjava@qq.com删除。