【学习笔记】大数据技术之Hadoop(入门) 您所在的位置:网站首页 大数据软件hadoop 【学习笔记】大数据技术之Hadoop(入门)

【学习笔记】大数据技术之Hadoop(入门)

2024-07-10 21:12| 来源: 网络整理| 查看: 265

大数据技术之Hadoop 1. 概念 1.1 Hadoop是什么? 1.2 Hadoop发展历史 1.3 Hadoop的三大发行版本 1.4 Hadoop优势(4高) 1.5 Hadoop组成,1.x 2.x 3.x区别(重点) 1.5.1 HDFS架构概述 1.5.2 YARN架构概述 1.5.3 MapReduce架构概述 1.5.4 HDFS、YARN、MapReduce三者关系 1.6 大数据技术生态体系 1.7 推荐系统框架图 2. 环境准备 3. Hadoop运行模式 3.1 本地运行模式(官方WordCount) 3.2 完全分布式运行模式(开发重点) 3.2.2 编写集群分发脚本 1)scp(secure copy)安全拷贝 2)rsync 远程同步工具 3)xsync集群分发脚本 3.2.3 SSH无密登录配置 **1)配置ssh** **2)无密钥配置** 3.2.4 集群配置 **1)集群部署规划** **2)配置文件说明** **3)配置集群** (1)核心配置文件 (2)HDFS配置文件 (3)YARN配置文件 (4)MapReduce配置文件 4)在集群上分发配置好的Hadoop配置文件 5)去103和104上查看文件分发情况 3.2.5 群起集群 1)配置workers 2)启动集群 (1)第一次启动 (2)启动HDFS (3)在配置了ResourceManager的节点(hadoop103)启动YARN (4)Web端查看HDFS的NameNode (5)Web端查看YARN的ResourceManager 3)集群基本测试 (1)上传文件到集群 (2)上传文件后查看文件存放在什么位置 (3)拼接 (4)下载 (5)执行wordcount程序 3.2.6 配置历史服务器 1)配置mapred-site.xml 2)分发配置 3)在hadoop102启动历史服务器 4)查看历史服务器是否启动 5)查看JobHistory 3.2.7 配置日志的聚集 1)配置yarn-site.xml 2)分发配置 3)关闭NodeManager 、ResourceManager和HistoryServer 4)启动NodeManager 、ResourceManage和HistoryServer 5)删除HDFS上已经存在的输出文件 6)执行WordCount程序 7)查看日志 (1)历史服务器地址 (2)历史任务列表 (3)查看任务运行日志 (4)运行日志详情 3.2.8 集群启动/停止方式总结 1)各个模块分开启动/停止(配置ssh是前提)常用 (1)整体启动/停止HDFS (2)整体启动/停止YARN 2)各个服务组件逐一启动/停止 (1)分别启动/停止HDFS组件 (2)启动/停止YARN 3.2.9 编写Hadoop集群常用脚本 1)Hadoop集群启停脚本(包含HDFS,Yarn,Historyserver):myhadoop.sh 2)查看三台服务器Java进程脚本:jpsall 3)分发/home/atguigu/bin目录,保证自定义脚本在三台机器上都可以使用 3.2.10 常用端口号说明 3.2.11 集群时间同步 1)需求 2)时间服务器配置(必须root用户) 3)其他机器配置(必须root用户) 4.常见错误及解决方案

说明:看的这条视频,然后针对该条视频的原笔记进行了少量的补充,方便在线查阅

1. 概念 1.1 Hadoop是什么? Hadoop是一个由Apache基金会所开发的分布式系统基础架构。 主要解决,海量数据的存储和海量数据的分析计算问题。 广义上来说,Hadoop通常是指一个更广泛的概念——Hadoop生态圈。

在这里插入图片描述

1.2 Hadoop发展历史

历史

在这里插入图片描述 在这里插入图片描述

1.3 Hadoop的三大发行版本

Hadoop 三大发行版本:Apache、Cloudera、Hortonworks。 Apache版本最原始(最基础)的版本,对于入门学习最好。2006 Cloudera内部集成了很多大数据框架,对应产品CDH。2008 Hortonworks文档较好,对应产品HDP。2011 Hortonworks现在已经被Cloudera公司收购,推出新的品牌CDP。

1) ApacheHadoop 官网地址:http://hadoop.apache.orge 下载 地址: https://hadoop.apache.org/releases.html

1.4 Hadoop优势(4高)

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

1.5 Hadoop组成,1.x 2.x 3.x区别(重点)

在这里插入图片描述

1.5.1 HDFS架构概述

Hadoop Distributed File System,简称HDFS,是一个分布式文件系统。 1)NameNode(nn):存储文件的元数据,如文件名,文件目录结构,文件属性(生成时间、副本数、文件权限),以及每个文件的块列表和块所在的DataNode等。 2)DataNode(dn):在本地文件系统存储文件块数据,以及块数据的校验和。 3)Secondarv NameNode(2nn):每隔一段时间对NameNode元数据备份。

在这里插入图片描述

1.5.2 YARN架构概述

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

在这里插入图片描述

1.5.3 MapReduce架构概述

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

在这里插入图片描述

1.5.4 HDFS、YARN、MapReduce三者关系

在这里插入图片描述

1.6 大数据技术生态体系

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

1.7 推荐系统框架图

在这里插入图片描述 先学maven去

2. 环境准备

直接上链接 安装VMware虚拟机 安装centOS系统hadoop100 安装Xshell 虚拟机环境准备 克隆虚拟机hadoop102,hadoop103,hadoop104 在hadoop102安装JDK 在hadoop102安装Hadoop

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

3. Hadoop运行模式

1)Hadoop官方网站:http://hadoop.apache.org/ 2)Hadoop运行模式包括:本地模式、伪分布式模式以及完全分布式模式。

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

在这里插入图片描述

3.1 本地运行模式(官方WordCount) 3.2 完全分布式运行模式(开发重点)

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

3.2.2 编写集群分发脚本 1)scp(secure copy)安全拷贝

前提:所有集群上的文件权限用户更改为当前用户,而非root。

定义:scp 可以实现服务器与服务器之间的数据拷贝。(from server1 to server2) 基本语法:

scp -r $pdir/$fname $user@$host:$pdir/$fname 命令 递归 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称 [atguigu@hadoop102 ~]$ sudo chown atguigu:atguigu -R /opt/module [atguigu@hadoop102 ~]$ scp -r /opt/module/jdk1.8.0_212 atguigu@hadoop103:/opt/module [atguigu@hadoop103 opt]$ scp -r atguigu@hadoop102:/opt/module/* atguigu@hadoop104:/opt/module 2)rsync 远程同步工具

rsync 主要用于备份和镜像。具有速度快、避免复制相同内容和支持符号链接的优点。 rsync 和 scp 区别:用 rsync 做文件的复制要比 scp 的速度快,rsync 只对差异文件做更 新。scp 是把所有文件都复制过去。 基本语法:

rsync -av $pdir/$fname $user@$host:$pdir/$fname 命令 选项参数 要拷贝的文件路径/名称 目的地用户@主机:目的地路径/名称

-a 归档拷贝 -v 显示复制过程

同步hadoop102中的/opt/module/hadoop-3.1.3到hadoop103 [atguigu@hadoop102 module]$ rsync -av hadoop-3.1.3/ atguigu@hadoop103:/opt/module/hadoop-3.1.3/ 3)xsync集群分发脚本

需求:循环复制文件到所有节点的相同目录下 sync命令原始拷贝:

rsync -av /opt/module atguigu@hadoop103:/opt/

(b)期望脚本:

xsync 要同步的文件名称

(c)期望脚本在任何路径都能使用(脚本放在声明了全局环境变量的路径)

[atguigu@hadoop102 ~]$ echo $PATH /usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/atguigu/.local/bin:/home/atguigu/bin:/opt/module/jdk1.8.0_212/bin

脚本实现 (a)在/home/atguigu/bin目录下创建xsync文件

[atguigu@hadoop102 opt]$ cd /home/atguigu [atguigu@hadoop102 ~]$ mkdir bin [atguigu@hadoop102 ~]$ cd bin [atguigu@hadoop102 bin]$ vim xsync

在该文件中编写如下代码

#!/bin/bash #1. 判断参数个数 if [ $# -lt 1 ] then echo Not Enough Arguement! exit; fi #2. 遍历集群所有机器 for host in hadoop102 hadoop103 hadoop104 do echo ==================== $host ==================== #3. 遍历所有目录,挨个发送 for file in $@ do #4. 判断文件是否存在 if [ -e $file ] then #5. 获取父目录 pdir=$(cd -P $(dirname $file)


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有