阅读 167

hadoop菜鸟教程(hadoop零基础入门)

一、Hadoop概述

1.1Hadoop是什么

  • Hadoop是一个由Apache基金会所开发的分布式系统基础架构。
  • 主要解决,海量数据的存储和海量数据的分析计算问题。
  • 广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈。
  • Google是Hadoop的思想之源(Google在大数据方面的三篇论文,GFS —>HDFS, Map-Reduce —>MR, BigTable —>HBase)
  • Hadoop 三大发行版本:Apache、Cloudera、Hortonworks。

1.2 Hadoop的优势

  • 高可靠性:Hadoop底层维护多个数据副本,所以即使Hadoop某个计算元 素或存储出现故障,也不会导致数据的丢失。
  • 高扩展性:在集群间分配任务数据,可方便的扩展数以千计的节点。
  • 高效性:在MapReduce的思想下,Hadoop是并行工作的,以加快任务处 理速度。
  • 高容错性:能够自动将失败的任务重新分配。

1.3 Hadoop组成(面试重点)

  • 在 Hadoop1.x 时 代:Hadoop 由HDFS、MapReduce组成,MapReduce同 时处理业务逻辑运算和资 源的调度,耦合性较大
  • 在Hadoop2.x时 代,增 加 了Yarn,Yarn只负责 资 源 的 调 度 , MapReduce 只负责运算

Hadoop3.x在组成上没 有变化。

1.3.1 HDFS 架构概述

Hadoop Distributed File System,简称 HDFS,是一个分布式文件系统。

  • NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、 文件权限),以及每个文件的块列表和块所在的DataNode等。
  • DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。
  • Secondary NameNode(2nn):每隔一段时间对NameNode元数据备份。

1.3.2 YARN 架构概述

Yet Another Resource Negotiator 简称 YARN ,另一种资源协调者,是 Hadoop 的资源管理器。

YARN架构概述

  • ResourceManager(RM):整个集群资源(内存、CPU等)的老大
  • NodeManager(N M):单个节点服务器资源老大
  • ApplicationMaster(AM):单个任务运行的老大
  • Container:容器,相当一台独立的服务器,里面封装了 任务运行所需要的资源,如内存、CPU、磁盘、网络等。

说明:客户端可以有多个,集群上可以运行多个ApplicationMaster,每个NodeManager上可以有多个Container

1.3.3 MapReduce 架构概述

MapReduce 将计算过程分为两个阶段:Map 和 Reduce ,Map 阶段并行处理输入数据,Reduce 阶段对 Map 结果进行汇总

MapReduce架构概述

待分析数据10T => map阶段 => (集群) => reduce阶段 ==> 汇总处理数据

HDFS、YARN、MapReduce 三者关系

1.4 大数据技术生态体系

  • Sqoop:Sqoop 是一款开源的工具,主要用于在 Hadoop、Hive 与传统的数据库(MySQL) 间进行数据的传递,可以将一个关系型数据库(例如 :MySQL,Oracle 等)中的数据导进 到 Hadoop 的 HDFS 中,也可以将 HDFS 的数据导进到关系型数据库中。
  • Flume:Flume 是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统, Flume 支持在日志系统中定制各类数据发送方,用于收集数据;
  • Kafka:Kafka 是一种高吞吐量的分布式发布订阅消息系统;
  • Spark:Spark 是当前最流行的开源大数据内存计算框架。可以基于 Hadoop 上存储的大数 据进行计算。
  • Flink:Flink 是当前最流行的开源大数据内存计算框架。用于实时计算的场景较多。
  • Oozie:Oozie 是一个管理 Hadoop 作业(job)的工作流程调度管理系统。
  • Hbase:HBase 是一个分布式的、面向列的开源数据库。HBase 不同于一般的关系数据库, 它是一个适合于非结构化数据存储的数据库。
  • Hive:Hive 是基于 Hadoop 的一个数据仓库工具,可以将结构化的数据文件映射为一张 数据库表,并提供简单的 SQL 查询功能,可以将 SQL 语句转换为 MapReduce 任务进行运 行。其优点是学习成本低,可以通过类 SQL 语句快速实现简单的 MapReduce 统计,不必开 发专门的 MapReduce 应用,十分适合数据仓库的统计分析。
  • ZooKeeper:它是一个针对大型分布式系统的可靠协调系统,提供的功能包括:配置维护、 名字服务、分布式同步、组服务等

1.5 推荐系统框架图

二、Hadoop安装

2.1 准备

克隆三台虚拟机:hadoop102 hadoop103 hadoop104,

  • 修改克隆虚拟机的静态 IP:vim /etc/sysconfig/network-scripts/ifcfgens33
  • 修改主机名称 vim /etc/hostname
  • 配置 Linux 克隆机主机名称映射 hosts 文件:vim /etc/hosts
  • reboot
  • 安装 JDK 前,一定确保提前删除了虚拟机自带的 JDK
  • 解压、配置 JDK 环境变量,测试:java -version
  • Hadoop 下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/
  • 解压、将 Hadoop 添加到环境变量

2.2 Hadoop 重要目录

  • bin 目录:存放对 Hadoop 相关服务(hdfs,yarn,mapred)进行操作的脚本
  • etc 目录:Hadoop 的配置文件目录,存放 Hadoop 的配置文件
  • lib 目录:存放 Hadoop 的本地库(对数据进行压缩解压缩功能)
  • sbin 目录:存放启动或停止 Hadoop 相关服务的脚本
  • share 目录:存放 Hadoop 的依赖 jar 包、文档、和官方案例

2.3 Hadoop运行模式

Hadoop 运行模式包括:本地模式、伪分布式模式以及完全分布式模式

  • 本地模式:单机运行,只是用来演示一下官方案例。生产环境不用。
  • 伪分布式模式:也是单机运行,但是具备 Hadoop 集群的所有功能,一台服务器模 拟一个分布式的环境。个别缺钱的公司用来测试,生产环境不用。
  • 完全分布式模式:多台服务器组成分布式环境。生产环境使用。

完全分布式运行模式(开发重点) 分析:1)准备 3 台客户机(关闭防火墙、静态 IP、主机名称) 2)安装 JDK 3)配置环境变量 4)安装 Hadoop 5)配置环境变量 6)配置集群 7)单点启动 8)配置 ssh 9)群起并测试集群

编写集群分发脚本 xsync

scp安全拷贝语法:

scp -r $pdir/$fname $user@$host:$pdir/$fname

命令 递归 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称

rsync 远程同步工具语法:

rsync -av $pdir/$fname $user@$host:$pdir/$fname

命令 选项参数 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称

rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更 新。scp 是把所有文件都复制过去。

rsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。

SSH 无密登录配置

命令:ssh-keygen -t rsa

然后敲(三个回车),就会生成两个文件 id_rsa(私钥)、id_rsa.pub(公钥)

将公钥拷贝到要免密登录的目标机器上:ssh-copy-id hadoop102

2.4 集群安装

注意

  • NameNode 和 SecondaryNameNode 不要安装在同一台服务器
  • ResourceManager 也很消耗内存,不要和 NameNode、SecondaryNameNode 配置在 同一台机器上。

Hadoop 配置文件分两类:默认配置文件和自定义配置文件,只有用户想修改某一默认 配置值时,才需要修改自定义配置文件,更改相应属性值

自定义配置文件:core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml 四个配置文件存放在 $HADOOP_HOME/etc/hadoop 这个路径上,用户可以根据项目需求重新进行修改配置

命令详见:
https://blog.csdn.net/qq_44779847/article/details/116500272

常用端口号说明

文章分类
百科问答
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐