preview_day220529 Apache Hadoop

知识点04:Apache Hadoop--集群架构与集群角色介绍

  • 通常是有hdfs集群和yarn集群组成。两个集群都是标准的主从架构集群。

  • 两个集群逻辑上分离 物理上在一起。

  • HDFS集群:解决了海量数据存储 分布式存储系统

    • 主角色:namenode(NN)

    • 从角色:datanode(DN)

    • 主角色辅助角色"秘书角色":secondarynamenode (SNN)

  • YARN集群:集群资源管理 任务调度

    • 主角色:resourcemanager(RM)

    • 从角色:nodemanager(NM)

知识点05:Apache Hadoop--集群部署--Hadoop安装部署模式

  • 单机模式 Standalone

    一台机器,所有的角色在一个java进程中运行。 适合体验。
  • 伪分布式

    一台机器 每个角色单独的java进程。 适合测试
  • 分布式 cluster

    多台机器  每个角色运行在不同的机器上  生产测试都可以
  • 高可用(持续可用)集群 HA

    在分布式的模式下 给主角色设置备份角色  实现了容错的功能 解决了单点故障
    保证集群持续可用性。

知识点06:Apache Hadoop--集群部署--了解源码编译

Index of /dist

Apache软件基金会的所有软件所有版本的下载地址.

  • 源码下载地址

    https://archive.apache.org/dist/hadoop/common/
    ​
    hadoop-3.3.0-src.tar.gz    source 源码包
    hadoop-3.3.0.tar.gz        官方编译后安装包
  • 对应java语言开发的项目软件来说,所谓的编译是什么?

    xxx.java(源码)---->xxx.class(字节码)---->jar包
  • 正常来说,官方网站提供了安装包,可以直接使用,为什么要自己编译呢?

    • 修改源码之后需要重新编译。

    • 官方提供的最大化编译 满足在各个平台运行,但是不一定彻底兼容本地环境。

    • 某些软件,官方只提供源码。

    native library 本地库。
    官方编译好的 Hadoop的安装包没有提供带 C程序访问的接口。主要是本地压缩支持、IO支持。
  • 怎么编译?

在源码的根目录下有编译相关的文件BUILDING.txt 指导如何编译。

可以使用课程提供编译好的安装包

hadoop-3.3.0-Centos7-64-with-snappy.tar.gz

知识点07:Apache Hadoop--集群部署--集群规划

  • Hadoop集群的规划

    • 根据软件和硬件的特性 合理的安排各个角色在不同的机器上。

      • 有冲突的尽量不部署在一起

      • 有工作依赖尽量部署在一起

      • nodemanager 和datanode是基友

      node1: namenode  datanode                    | resourcemanager  nodemanger
      node2:           datanode   secondarynamenode|                  nodemanger
      node3:           datanode                    |                  nodemanger
    • Q:如果后续需要扩容hadoop集群,应该增加哪些角色呢?

      node4:  datanode  nodemanger
      node5:  datanode  nodemanger
      node6:  datanode  nodemanger
      .....

知识点08:Apache Hadoop--集群部署--服务器基础环境准备

详细安装步骤参考课程资料:

《Python+大数据:hadoop离线阶段\02--Apache Hadoop\2、软件\hadoop-3.3.0\Hadoop3.3.0Linux编译安装.md》

8.1、服务器基础环境准备

ip、主机名 hosts映射 别忘了windows也配置 防火墙关闭 时间同步 免密登录 node1---->node1 node2 node3 JDK安装

8.2、安装包目录结构

#上传安装包到/export/server 解压

bin #hadoop核心脚本 最基础最底层脚本 etc #配置目录 include lib libexec LICENSE.txt NOTICE.txt README.txt sbin #服务启动 关闭 维护相关的脚本 share #官方自带实例 hadoop相关依赖jar

识点09:Apache Hadoop--集群部署--配置文件详解

官网文档:Hadoop – Apache Hadoop 3.3.0

  • 第一类 1个 hadoop-env.sh

  • 第二类 4个 core|hdfs|mapred|yarn-site.xml

    site表示的是用户定义的配置,会覆盖default中的默认配置。

    • core-site.xml 核心模块配置

    • hdfs-site.xml hdfs文件系统模块配置

    • mapred-site.xml MapReduce模块配置

    • yarn-site.xml yarn模块配置

  • 第三类 1个 workers

知识点10:Apache Hadoop--集群部署--scp同步、环境变量配置

  • scp安装包到其他机器

    cd /export/server
    ​
    scp -r hadoop-3.3.0 root@node2:$PWD
    scp -r hadoop-3.3.0 root@node3:$PWD
  • Hadoop环境变量配置

vim /etc/profile

export HADOOP_HOME=/export/server/hadoop-3.3.0 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

#别忘了 scp环境变量给其他两台机器哦

知识点11:Apache Hadoop--集群部署--namenode format操作

  • format准确来说翻译成为初始化比较好。对namenode工作目录、初始文件进行生成。

  • 通常在namenode所在的机器执行 执行一次。首次启动之前

    #在node1 部署namenode的这台机器上执行
    ​
    hadoop namenode -format
    ​
    #执行成功 日志会有如下显示
    21/05/23 15:38:19 INFO common.Storage: Storage directory /export/data/hadoopdata/dfs/name has been successfully formatted.
    ​
    [root@node1 server]# ll /export/data/hadoopdata/dfs/name/current/
    total 16
    -rw-r--r-- 1 root root 321 May 23 15:38 fsimage_0000000000000000000
    -rw-r--r-- 1 root root  62 May 23 15:38 fsimage_0000000000000000000.md5
    -rw-r--r-- 1 root root   2 May 23 15:38 seen_txid
    -rw-r--r-- 1 root root 207 May 23 15:38 VERSION
  • Q:如果不小心初始化了多次,如何?

    • 现象:主从之间互相不识别。

    • 解决

#企业真实环境中 枪毙

#学习环境 删除每台机器上hadoop.tmp.dir配置指定的文件夹/export/data/hadoop-3.3.0。 重新format。

HDFS集群

#hadoop2.x版本命令 hadoop-daemon.sh start|stop namenode|datanode|secondarynamenode

#hadoop3.x版本命令 hdfs --daemon start|stop namenode|datanode|secondarynamenode

YARN集群

#hadoop2.x版本命令 yarn-daemon.sh start|stop resourcemanager|nodemanager

#hadoop3.x版本命令 yarn --daemon start|stop resourcemanager|nodemanager

优点:精准的控制每个角色每个进程的启停。避免了群起群停(时间成本)。

12.2、脚本一键启动

  • 前提:配置好免密登录。ssh

ssh-copy-id node1.itcast.cn ssh-copy-id node2.itcast.cn ssh-copy-id node3.itcast.cn

HDFS集群

start-dfs.sh stop-dfs.sh

YARN集群

start-yarn.sh stop-yarn.sh

更狠的

start-all.sh stop-all.sh

[root@node1 ~]# start-all.sh This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh

12.3、集群进程确认和错误排查

  • 确认是否成功

[root@node1 ~]# jps 8000 DataNode 8371 NodeManager 8692 Jps 8264 ResourceManager 7865 NameNode

如果进程不在 看启动运行日志!!!!!!!!!!!!!

#默认情况下 日志目录 cd /export/server/hadoop-3.3.0/logs/

#注意找到对应进程名字 以log结尾的文件

知识点13:Apache Hadoop--Web UI页面

http://node1:9870/dfshealth.html#tab-overview

知识点14:Apache Hadoop--初体验

14.1、初体验之HDFS

  • 本质就是存储文件的 和标准文件系统一样吗?

    • 也是有目录树结构,也是从根目录开始的。

    • 文件是文件、文件夹是文件夹(对于zk来说)

    • 和linux很相似

    • 上传小文件好慢。为什么慢?和分布式有没有关系?

14.2、体验之MapReduce+yarn

  • MapReduce是分布式程序 yarn是资源管理 给程序提供运算资源。 Connecting to ResourceManager

[root@node1 mapreduce]# pwd /export/server/hadoop-3.3.0/share/hadoop/mapreduce

hadoop jar hadoop-mapreduce-examples-3.3.0.jar pi 2 2

  • MR程序运行首先连接YRAN ResourceManager,连接它干什么的?要资源。

  • MR程序好像是两个阶段 ,先Map 再Reduce。

  • 数据量这么小的情况下,为什么MR这么慢? MR适合处理大数据场景还是小数据场景?

知识点15:Apache Hadoop--jobhistory服务配置与功能

  • 背景

    默认情况下,yarn上关于MapReduce程序执行历史信息、执行记录不会永久存储;
    一旦yarn集群重启 之前的信息就会消失。
  • 功能

保存yarn上已经完成的MapReduce的执行信息。

配置

  • 因为需求修改配置。重启hadoop集群才能生效。

scp同步给其他机器

  • 重启hadoop集群

  • 自己手动启停jobhistory服务。

#hadoop2.x版本命令 mr-jobhistory-daemon.sh start|stop historyserver

#hadoop3.x版本命令 mapred --daemon start|stop historyserver

[root@node1 ~]# jps 13794 JobHistoryServer 13060 DataNode 12922 NameNode 13436 NodeManager 13836 Jps 13327 ResourceManager

知识点16:Apache Hadoop--HDFS垃圾桶机制

  • 背景:垃圾桶在windows叫做回收站

在默认情况下 hdfs没有垃圾桶 意味着删除操作直接物理删除文件。

[root@node1 ~]# hadoop fs -rm /itcast/1.txt Deleted /itcast/1.txt

  • 功能:和回收站一种 在删除数据的时候 先去垃圾桶 如果后悔可以复原。

  • 配置

集群同步配置 重启hadoop服务。

垃圾桶使用

  • 配置好之后 再删除文件 直接进入垃圾桶

垃圾桶的本质就是hdfs上的一个隐藏目录。

后悔了 需要恢复怎么做?

hadoop fs -cp /user/root/.Trash/Current/itcast.txt /

就想直接删除文件怎么做?

hadoop fs -rm -skipTrash /itcast.txt

[root@node1 ~]# hadoop fs -rm -skipTrash /itcast.txt Deleted /itcast.txt

  • 复习讲义,课堂笔记

  • 搭建Hadoop集群

  • 预先Hadoop HDFS

    • 本质就是文件系统 和linux很类似 学习成本使用成本很低

    • 其次是分布式的文件系统 分布式使得它的底层原理特性很多。

Hadoop配置文件参考

  • hadoop-env.sh

#java home export JAVA_HOME=/export/server/jdk1.8.0_241

#Hadoop各个组件启动运行身份 export HDFS_NAMENODE_USER=root export HDFS_DATANODE_USER=root export HDFS_SECONDARYNAMENODE_USER=root export YARN_RESOURCEMANAGER_USER=root

export YARN_NODEMANAGER_USER=root

core-site.xml

<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->

hdfs-site.xml

<!-- 设置SNN进程运行机器位置信息 -->

<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->

yarn-site.xml

<!-- 设置YARN集群主角色运行机器位置 -->

workers

node1.itcast.cn node2.itcast.cn node3.itcast.cn

已看完::::::::::::

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值