Hadoop入门以及环境部署

Hadoop入门与环境配置

一、大数据概念

1、大数据概念

​ 大数据(Big Data):指无法在一定时间范围内用常规软件工具进行捕获、管理和处理的数据集合,是需要新处理模式才能具有更强决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

​ 主要解决海量数据的存储和海量数据的分析计算问题。

​ 大数据的特点为:大量(Volume)、高速(Velocity)、多样(Variety)、低密度价值(Value)。

二、从Hadoop框架讨论大数据生态

2.1Hadoop是什么?

  1. Hadoop是一个有Apache基金会所开发的分布式基础架构。

  2. 主要解决海量数据的存储和海量数据的分析计算问题。

  3. 广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈。

    Hadoop的优势(4高):

    高可靠:Hadoop底层维护多个数据副本,即使Hadoop某个计算元素或存储出现故障,也不会导致数据丢失。

    高扩展性:在集群间分配任务,可方便地扩展数以千计的节点。

    高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处理速度。

2.2 Hadoop三大发行版本

  • Apache版本最原始(最基础)的版本,对于入门学习最好。

​ 官网地址:http://hadoop.apache.org/releases.html

​ 下载地址:https://archive.apache.org/dist/hadoop/common/

  • Cloudera内部集成了很多大数据框架。对应产品CDH。(Cloudera Manager,Cloudera Support)

    官网地址:https://www.cloudera.com/downloads/cdh/5-10-0.html

    下载地址:http://archive-primary.cloudera.com/cdh5/cdh/5/

    CDH是Cloudera的Hadoop发行版,完全开源,比Apache Hadoop在兼容性,安全性,稳定性上有所增强。Cloudera的标价为每年每个节点10000美元

    Cloudera Manager是集群的软件分发及管理监控平台,可以在几个小时内部署好一个Hadoop集群,并对集群的节点及服务进行实时监控。

  • Hortonworks文档较好。对应产品HDP。

​ 官网地址:https://hortonworks.com/products/data-center/hdp/

​ 下载地址:https://hortonworks.com/downloads/#data-platform

​ Hortonworks的主打产品是Hortonworks Data Platform(HDP),也同样是100%开源的产 品,HDP除常见的项目外还包括了Ambari,一款开源的安装和管理系统。Hortonworks目前 已 经被Cloudera公司收购。

2.3Hadoop组成

2.3.1Hadoop1.x与Hadoop2.x的区别

在这里插入图片描述

在Hadoop1.x的时代,Hadoop中的Map Reduce同时处理业务逻辑运算和资源的调度,耦合性高。在Hadoop2.x时代,增加了Yarn。两者分工合作,Yarn只负责资源的调度,Map Reduce只负责业务逻辑运算。

2.3.2HDFS架构概述

​ Hadoop分布式文件系统(HDFS)是指被设计成适合运行在通用硬件(commodity hardware)上的分布式文件系统(Distributed File System)。HDFS是一个高度容错性的系统,适合部署在廉价的机器上。HDFS能提供高吞吐量的数据访问,非常适合大规模数据集上的应用。HDFS放宽了(relax)POSIX的要求(requirements)这样可以实现流的形式访问(streaming access)文件系统中的数据。

​ 整个HDFS集群由NameNode和DataNode构成master-worker(主从)模式。NameNode负责构建命名空间,管理文件的元数据等,而DataNode负责实际存储数据,负责读写工作。

NameNode

NameNode存放文件系统树及所有文件、目录的元数据。元数据持久化为2种形式:

  • namespace image
  • edit log

但是持久化数据中不包括Block所在的节点列表,及文件的Block分布在集群中的哪些节点上,这些信息是在系统重启的时候重新构建(通过DataNode汇报的Block信息)。
在HDFS中,NameNode可能成为集群的单点故障,NameNode不可用时,整个文件系统是不可用的。HDFS针对单点故障提供了2种解决机制:

1)备份持久化元数据
将文件系统的元数据同时写到多个文件系统, 例如同时将元数据写到本地文件系统及NFS。这些备份操作都是同步的、原子的。

2)Secondary NameNode
Secondary节点定期合并主NameNode的namespace image和edit log, 避免edit log过大,通过创建检查点checkpoint来合并。它会维护一个合并后的namespace image副本, 可用于在NameNode完全崩溃时恢复数据。

​ Secondary NameNode通常运行在另一台机器,因为合并操作需要耗费大量的CPU和内存。其数据落后于NameNode,因此当NameNode完全崩溃时,会出现数据丢失。 通常做法是拷贝NFS中的备份元数据到Second,将其作为新的主NameNode。
​ 在HA(High Availability高可用性)中可以运行一个Hot Standby,作为热备份,在Active NameNode故障之后,替代原有NameNode成为Active NameNode。

DataNode

数据节点负责存储和提取Block,读写请求可能来自NameNode,也可能直接来自客户端。数据节点周期性向NameNode汇报自己节点上所存储的Block相关信息

2.4 Yarn架构概述

在这里插入图片描述

2.5 MapReduce架构概述

MapReduce将计算过程分为两个阶段:MAP和Reduce

  1. Map阶段并行处理输入数据
  2. Reduce阶段对Map阶段的结果进行汇总

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iDUlf4Mn-1636618223163)(C:\Users\梧桐\AppData\Roaming\Typora\typora-user-images\image-20211109184911802.png)]

2.6大数据技术生态体系

在这里插入图片描述

图中涉及的技术名词解释如下:

1)Sqoop : Sqoop是一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(MySQL)间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

2)Flume : Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;

3)Kafka : Kafka是一种高吞吐量的分布式发布订阅消息系统;

4)Storm : Storm用于“连续计算”,对数据流做连续查询,在计算时就将结果以流的形式输出给用户。

5)Spark : Spark是当前最流行的开源大数据内存计算框架。可以基于Hadoop上存储的大数据进行计算。

6)Flink : Flink是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。

7)Oozie : Oozie是一个管理Hdoop作业(job)的工作流程调度管理系统。

8)Hbase : HBase是一个分布式的、面向列的开源数据库。HBase不同于一般的关系数据库,它是一个适合于非结构化数据存储的数据库。

9)Hive : Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

10)ZooKeeper :它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、名字服务、分布式同步、组服务等。

三、Hadoop运行环境搭建

准备3台虚拟机,内存4G,硬盘50G。

1、修改克隆虚拟机的静态IP

vi /etc/sysconfig/network-scripts/ifcfg-ens33
DEVICE=ens33
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
NAME="ens33"
IPADDR=192.168.1.101
PREFIX=24
GATEWAY=192.168.1.2
DNS1=114.114.114.114

2、保证Linux文件中IP地址、Linux虚拟网络编辑器地址和Windows系统VM8网络IP地址相同。

3、安装必要插件

yum install -y epel-release
yum install -y psmisc nc net-tools rsync vim lrzsz ntp libzstd openssl-static tree iotop git

4、修改主机名称和hosts配置

hostnamectl --static set-hostname hadoop101

​ 打开hosts配置文件根据自身情况设置主机名称映射

vim /etc/hosts

添加如下内容

192.168.1.100 hadoop100
192.168.1.101 hadoop101
192.168.1.102 hadoop102
192.168.1.103 hadoop103
192.168.1.104 hadoop104
192.168.1.105 hadoop105
192.168.1.106 hadoop106
192.168.1.107 hadoop107
192.168.1.108 hadoop108

并同步修改window系统中的内容。

5、关闭防火墙并禁用其自启

systemctl stop firewalld
systemctl disable firewalld

6、创建一个普通用户,并让其具有root权限

useradd [用户名]
passwd [用户名]

修改/etc/sudoers文件

visudo
## Allow root to run any commands anywhere
root  ALL=(ALL)   ALL
[用户名]  ALL=(ALL)  NOPASSWD:ALL

7、安装JDK环境和Hadoop到虚拟机中,并配置环境变量

​ 环境变量配置:创建并打开/etc/profile.d/my_env.sh(这样配置就是系统变量)

#my_env.sh 配置JAVA和Hadoop环境变量
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

​ 刷新并查看是否添加成功

source my_env.sh
echo $PATH

配置完一台后,再克隆两台出来,并对应修改 IP地址hostname

export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

​ 刷新并查看是否添加成功

source my_env.sh
echo $PATH

配置完一台后,再克隆两台出来,并对应修改 IP地址hostname

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值