Hadoop大数据架构简介及安装应用入门。

前言

目前人工智能和大数据火热,使用的场景也越来越广,日常开发中前端同学也逐渐接触了更多与大数据相关的开发需求。因此对大数据知识也有必要进行一些学习理解。

nowjava.com

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基于内存的数据库

HDFS

分布式文件系统 解决以下问题:

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)

MapReduce

基础编程模型:把一个大任务拆分成小任务,再进行汇总
MR任务:Job = Map + Reduce 
Map的输出是Reduce的输入、MR的输入和输出都是在HDFS

MapReduce数据流程分析:

Map的输出是Reduce的输入,Reduce的输入是Map的集合



HBase

什么是BigTable?: 把所有的数据保存到一张表中,采用冗余 ---> 好处:提高效率

1、因为有了bigtable的思想:NoSQL:HBase数据库
2、HBase基于Hadoop的HDFS的
3、描述HBase的表结构
核心思想是:利用空间换效率

Hadoop环境搭建

环境准备

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台

我们以伪分布模式为例配置:

修改hdfs-site.xml:冗余度1、权限检查false

    dfs.replication    1    dfs.permissions    false

修改core-site.xml

    fs.defaultFS    hdfs://192.168.56.102:9000    hadoop.tmp.dir    /usr/local/hadoop/tmp

修改mapred-site.xml

    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-site.xml

    yarn.resourcemanager.hostname    192.168.56.102    yarn.nodemanager.aux-service    mapreduce_shuffle

格式化NameNode

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资源管理系统


基本操作:

HDFS相关命令

展开阅读全文

本文系作者在时代Java发表,未经许可,不得转载。

如有侵权,请联系nowjava@qq.com删除。

编辑于

关注时代Java

关注时代Java