首页 > 其他分享 >【博学谷学习记录】超强总结,用心分享 | Hadoop

【博学谷学习记录】超强总结,用心分享 | Hadoop

时间:2023-06-01 10:24:53浏览次数:47  
标签:HDFS -- 博学 hadoop yarn Hadoop 集群 超强 节点

【博学谷IT技术支持】

一、介绍

概念

Apache™ Hadoop® 项目为可靠、可扩展的分布式计算开发开源软件。允许简单的编程模型在大量计算机集群上对大型数据集群进行分布式处理。

项目包含以下模块:

  • Common: 支持其他hadoop模块的通用实用程序
  • HDFS(分布式文件系统): 可提供对应用程序数据的高吞吐量访问
  • YAN(作业调度和集群资源管理框架): 解决资源任务调度问题
  • MapReduce (分布式运算编程框架): 基于YARN的系统,用于并行处理大型数据集

生态圈

Hadoop的核心是HDFS、YARN、MapReduce。随着处理任务不同,各种组件相继出现,丰富了Hadoop的生态圈。
请添加图片描述

  • ZooKeeper: 分布式协调服务基础组件
  • HDFS: 分布式文件系统
  • MapReduce: 分布运算程序开发框架
  • HBase: 分布式列存储数据库
  • YARN: 作业调度和集群资源管理框架
  • MESOS: 分布式资源管理器
  • HIVE: 基于HADOOP的分布式数据仓库,提供基于SQL的查询数据操作
  • FLUME: 日志数据采集框架
  • OOZIE: 工作流程调度框架
  • SQOOP:数据导入导出工具(比如用于mysql和HDFS之间)
  • IMPALA: 基于HIVE的实时SQL查询分析
  • MAHOUT: 基于mapreduce/spark/flink等分布式运算框架的机器学习算法库

特点

  • 高效性:通过并发数据,hadoop可以在节点之间动态并行的移动数据,使得速度非常快
  • 可靠性: 自动维护数据的多份复制。并且在任务失败后能自动的重新部署计算任务。
  • 扩容能力:hadoop是在可用的计算机集群间分配数据并完成计算任务的,这些集群可方便的扩展到数以千计的节点中
  • 成本低:hadoop可通过廉价的机器组成服务器集群来分发以及处理数据,降低了成本。

二、hadoop集群搭建

部署方式

Hadoop的部署模式有三种:独立模式、伪分布式模式、集群模式。

standalone mode

独立模式又称单机模式,仅一个机器运行java进程。本地模式下调试Hadoop集群的MapReduce程序非常方便,所以一般情况下,该模式适合在快速安装体验Hadoop、开发阶段进行本地调试使用。

Pseudo-Distributed mode

伪分布模式也是在一个机器上运行HFDSNameNodeDataNodeYARNResourceManagerNodeManager,但分别启动单独的java进程,主要用于调试。

Cluster mode

集群模式主要用于生产环境部署。会使用n台主机组成一个Hadoop集群。这种部署模式下,主节点和从节点会分开部署在不同的机器上。

集群架构模型

  • NameNodeResourceManager单节点架构模型
  • NameNode高可用与ResourceManager单节点构架模型
  • NameNode单节点和ResourceManager高可用架构模型
  • NamenodeResourceManager高可用架构模型

相同点:

  • NameNode是集群中的主节点,主要用于管理集群中的各种数据。
  • DataNode:集群中的从节点,主要用于存储集群当中的各种数据
  • ResourceManager:接受用户的计算请求任务,并负责集群的资源分配,以及计算任务的划分
  • NodeManager: 负责执行主节点分配的任务

不同点:

  • NameNode可以有两个,形成高可用状态。
  • ResourceManager通过两个,构建高可用
  • NameNode单节点中,会有secondaryNameNode作为hadoop当中元数据信息的辅助管理,在高可用则有JournalNode作为文件系统元数据信息管理,一般都是奇数个。

搭建

  • 下载并解压安装
下载地址:https://hadoop.apache.org/releases.html

下载并解压到指定目录
mkdir -p /export/server/hadoop-3.1.4/data
  • 配置NameNode
cd /hadoop-3.1.4/etc/hadoop
vim core-site.xml

<!-- 设置默认使用的文件系统 Hadoop 支持 file、HDFS、GFS、Ali Cloud、Amazon Cloud 等文件系统 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://node1:8020</value>
</property>

<!-- hadoop本地数据存储目录 format时自动生成 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>/export/server/hadoop-3.1.4/data</value>
</property>

<!-- 在Web UI访问HDFS使用的用户名。-->
<property>
    <name>hadoop.http.staticuser.user</name>
    <value>root</value>
</property>
  • 配置HDFS路径
vim hdfs-site.xml

<!-- 设定SNN运行主机和端口。-->
<property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>node2:9868</value>
</property>
  • 配置yarn
vim yarn-site.xml

<!-- yarn集群主角色RM运行机器。-->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>node1</value>
</property>

<!-- NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MR程序。-->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<!-- 每个容器请求的最小内存资源(以MB为单位)。-->
<property>
  <name>yarn.scheduler.minimum-allocation-mb</name>
  <value>512</value>
</property>

<!-- 每个容器请求的最大内存资源(以MB为单位)。-->
<property>
  <name>yarn.scheduler.maximum-allocation-mb</name>
  <value>2048</value>
</property>

<!-- 容器虚拟内存与物理内存之间的比率。-->
<property>
  <name>yarn.nodemanager.vmem-pmem-ratio</name>
  <value>4</value>
</property>
  • 配置MapReduce
vim mapred-site.xml

<!-- mr程序默认运行方式。yarn集群模式 local本地模式-->
<property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
</property>

<!-- MR App Master环境变量。-->
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<!-- MR MapTask环境变量。-->
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

<!-- MR ReduceTask环境变量。-->
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property> 
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
  • 配置nameNode的主机名
vim workers

删除第一行localhost,然后添加以下内容
node1
node2
node3
  • 配置环境变量
vim hadoop-env.sh

export JAVA_HOME=/export/server/jdk1.8.0_241

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

vim /etc/profile

export HADOOP_HOME=/export/server/hadoop-3.1.4
export PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
source /etc/profile
  • 配置windows域名映射
C:\Windows\System32\drivers\etc目录下的hosts

node1的ip node1
node2的ip node2
node3的ip node3
  • 分发安装文件和环境变量

分发hadoop-3.1.4/etc/profilenode2node3

刷新配置文件:source /etc/profile

  • 格式化HDFS
在node1执行
cd /export/server/hadoop-3.1.4
hdfs namenode -format

启动与关闭

  • 启动HDFS集群
-- 选择node1节点启动NameNode节点
hdfs --daemon start namenode

-- 在所有节点上启动DataNode
hdfs --daemon start datanode

-- 在node2启动Secondary NameNode
hdfs --daemon start secondarynamenode
  • 启动YARN集群
-- 选择node1节点启动ResourceManager节点
yarn --daemon start resourcemanager

-- 在所有节点上启动NodeManager
yarn --daemon start nodemanager

  • 关闭HDFS集群
#  关闭NameNode
hdfs --daemon stop namenode

# 每个节点关闭DataNode
hdfs --daemon stop datanode

# 关闭Secondary NameNode
hdfs --daemon stop secondarynamenode
  • 关闭YARN集群
# 每个节点关闭ResourceManager
yarn --daemon stop resourcemanager

# 每个节点关闭NodeManager
yarn --daemon stop nodemanager
  • 脚本式操作
// HDFS

start-dfs.sh
stop-dfs.sh

// YARN
start-yarn.sh
stop-yarn.sh

// 一键启动HDFS、YARN
start-all.sh

// 一键关闭HDFS、YARN
stop-all.sh

标签:HDFS,--,博学,hadoop,yarn,Hadoop,集群,超强,节点
From: https://www.cnblogs.com/neilniu/p/17448185.html

相关文章

  • 【博学谷学习记录】超强总结,用心分享 | shell基础
    【博学谷IT技术支持】一、shell简介shell是一种编写脚本程序的语言,常用于linux,shell是解释型语言,相对于其他的语言更加好学,它的语法和结构也比较简单通过编写脚本,能显著的提高开发的效率二、shell的基础知识每个sh文件都有这个开头,是指此脚本使用/bin/bash来解释执行#!/......
  • 【博学谷学习记录】超强总结,用心分享 | Zookeeper
    【博学谷IT技术支持】一、Zookeeper基础知识Zookeeper地址:https://zookeeper.apache.org/介绍Zookeeper是一个开源的分布式协调服务,用来给分布式应用提供一致性服务。Zookeeper本质是一个分布式的小文件存储系统。是Chubby一个开源的实现,是Hadoop和Hbase的重要组件。特性......
  • 博学谷学习记录】超强总结,用心分享 | 发送邮件-yagmail
    【博学谷IT技术支持】一、介绍yagmail是一个GMAIL/SMTP客户端,旨在使发送电子邮件尽可能简单。在项目中或多或少都需要使用的它,比如监控,比如用户提示等。二、项目使用使用流程首先要安装yagmail其次链接邮箱服务器,这里要设置发件人的邮箱,发件人的邮箱授权码,发件服务器等参......
  • 【博学谷学习记录】超强总结,用心分享 | Django简易开发指南
    【博学谷IT技术支持】一、介绍Django是python语言写的开源web开发框架,遵循MVC设计。Django的主要目的是简便、快捷的开发数据库驱动的网站。但是Django有一个专有名词:MVTM:Model,负责数据处理,内嵌了ORM框架V:View,接收HttpRequest,业务处理,返回HttpResponseT:Template,负责......
  • 【博学谷学习记录】超强总结,用心分享 | hive分区与分桶的区别
    【博学谷IT技术支持】公众号:积雷山摩云洞,欢迎关注!!!概念分区表:将数据分散到多个子目录中,在执行查询是,可以根据条件加快查询效率分桶表:是相对分区更细的颗粒度划分,分桶表是将表查分到不同的文件中,根据数据表某列的hash值进行分区,对某列数据分区就是对该列属性值的hash值取模,......
  • 【博学谷学习记录】超强总结,用心分享 | yarn的执行流程
    【博学谷IT技术支持】yarn的组成部分hadoop是由Common、HDFS、YARN、MapReduce等核心模块组成,yarn负责解决资源调度问题,这里介绍下yarn的业务执行流程。yarn是Master/Slave结构,主要包含ResourceManage、NodeManager、ApplicationMaster和Conainer等组件。ResourceManager......
  • 【博学谷学习记录】超强总结,用心分享 | 系统资源监控-psutil
    【博学谷IT技术支持】一、介绍psutil(python系统和进程实用程序)是一个跨平台库,用于在Python中检索有关正在运行的进程和系统利用率(CPU、内存、磁盘、网络、传感器)的信息。它主要用于系统监控、分析、限制进程资源和管理正在运行的进程。二、相关api获取CPU信息cpu_count:......
  • 【博学谷学习记录】超强总结,用心分享 | jupyter常用功能
    jupyter安装文档地址https://jupyter.org/installpipinstallnotebook启动命令jupyternotebookjupyter-themes修改主题安装主题https://github.com/dunovank/jupyter-themesgithub地址pipinstall--upgradejupyterthemes查看所有主题jt-l修改主题jt-tg......
  • 【博学谷学习记录】超强总结,用心分享 | hbase基础操作
    【博学谷IT技术支持】HBase的介绍HBase是一个高可靠性、高性能、面向列、可伸缩的分布式操作系统。它是建立在HDFS之上的数据库系统,HBase是不支持SQL的,没有表关系,也无法join,不支持事务。HBase是基于google发布BigTable这篇论文而产生的,基于HDFS,数据最终存储时是在HDFS上,必......
  • 【博学谷学习记录】超强总结,用心分享 | MapReduec编程
    【博学谷IT技术支持】一、介绍MapReduce是将一个大的计算任务拆分成一个个小任务,让小任务在不同的计算机中进行处理,最后将任务的结果进行汇总的过程。MR的工作流程可以分为三个阶段,分别是map、shuffle、reduce二、编程Mapper阶段自定义一个类来集成Mapper类,重写map方法,将方......