大数据Hadoop教程-学习笔记02【Apache Hadoop、HDFS】

news2024/11/30 10:31:55
  • 视频教程:哔哩哔哩网站:黑马大数据Hadoop入门视频教程
  • 教程资源:https://pan.baidu.com/s/1WYgyI3KgbzKzFD639lA-_g 提取码: 6666
  1. 【P001-P017】大数据Hadoop教程-学习笔记01【大数据导论与Linux基础】
  2. 【P018-P037】大数据Hadoop教程-学习笔记02【Apache Hadoop、HDFS】
  3. 【P038-P050】大数据Hadoop教程-学习笔记03【Hadoop MapReduce与Hadoop YARN】
  4. 【P051-P068】大数据Hadoop教程-学习笔记04【数据仓库基础与Apache Hive入门】
  5. 【P069-P083】大数据Hadoop教程-学习笔记05【Apache Hive DML语句与函数使用】
  6. 【P084-P096】大数据Hadoop教程-学习笔记06【Hadoop生态综合案例:陌陌聊天数据分析】

目录

01【Apache Hadoop概述】

P018【01-课程内容大纲-学习目标】

P019【02-Apache Hadoop介绍、发展简史、现状】

P020【03-Apache Hadoop特性优点、国内外应用】

P021【04-Apache Hadoop发行版本、架构变迁】

02【Apache Hadoop集群搭建】

P022【05-Apache Hadoop安装部署--集群组成介绍】

P023【06-Apache Hadoop安装部署--服务器基础环境设置】jdk环境安装

P024【07-Apache Hadoop安装部署--安装包结构】

P025【08-Apache Hadoop安装部署--修改配置文件、同步安装包与环境变量】

P026【09-Apache Hadoop安装部署--format初始化操作】

P027【10-Apache Hadoop安装部署--集群启停命令、Web UI页面】

P028【11-Apache Hadoop安装部署--初体验】

03【DFS分布式文件系统基础】

P029【12-传统文件系统在大数据时代面临的挑战】

P030【13-场景互动:分布式存储系统的核心属性及功能作用】

P031【14-HDFS简介、设计目标与应用场景】

P032【15-HDFS重要特性解读】

04【HDFS shell操作】

P033【16-HDFS shell命令行解释说明】

P034【17-HDFS shell命令行常用操作】

05【HDFS工作流程与机制】

P035【18-HDFS工作流程与机制--各角色职责介绍与梳理】

P036【19-HDFS工作流程与机制--写数据流程--pipeline、ack、副本策略】

P037【20-HDFS工作流程与机制--写数据流程--梳理】


01【Apache Hadoop概述】

P018【01-课程内容大纲-学习目标】

目录

  1. Apache Hadoop概述
  2. Apache Hadoop集群搭建
  3. HDFS分布式文件系统基础
  4. HDFS Shell操作
  5. HDFS读写文件基本流程

学习目标

  1. 了解Hadoop发展历史、现状
  2. 掌握Hadoop集群架构、角色
  3. 掌握Hadoop集群分布式安装部署
  4. 理解分布式存储的概念与实现
  5. 掌握HDFS分块存储、副本机制等特性
  6. 学会shell操作HDFS
  7. 掌握HDFS读写文件基本流程

P019【02-Apache Hadoop介绍、发展简史、现状】

Hadoop官网:http://hadoop.apache.org/

P020【03-Apache Hadoop特性优点、国内外应用】

Hadoop成功的魅力——通用性、简单性

P021【04-Apache Hadoop发行版本、架构变迁】

Hadoop发行版本

  • Apache开源社区版本
    • http://hadoop.apache.org/
  • 商业发行版本
    • Cloudera:https://www.cloudera.com/products/open-source/apache-hadoop.html
    • Hortonworks:https://www.cloudera.com/products/hdp.html
  • 本课程中使用的是Apache版的Hadoop,版本号为:3.3.0 H

02【Apache Hadoop集群搭建】

P022【05-Apache Hadoop安装部署--集群组成介绍】

P023【06-Apache Hadoop安装部署--服务器基础环境设置】jdk环境安装

Hadoop由Java语言编写,其运行需要Java语言提供支撑。

安装配置jdk1.8

#解压安装包
tar zxvf jdk-8u65-linux-x64.tar.gz

#配置环境变量
vim /etc/profile

export JAVA_HOME=/export/server/jdk1.8.0_241
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

source /etc/profile

#验证是否安装成功
java -version

java version "1.8.0_241"
Java(TM) SE Runtime Environment (build 1.8.0_241-b07)
Java HotSpot(TM) 64-Bit Server VM (build 25.241-b07, mixed mode)

#别忘了scp给其他两台机器哦
scp -r /export/server/jdk1.8.0_241/ root@node2:/export/server/
scp -r /export/server/jdk1.8.0_241/ root@node3:/export/server/

#环境变量也需要拷贝一份
scp /etc/profile root@node2:/etc/
scp /etc/profile root@node3:/etc/

#让三台机器加载环境变量
source /etc/profile

P024【07-Apache Hadoop安装部署--安装包结构】

P025【08-Apache Hadoop安装部署--修改配置文件、同步安装包与环境变量】

配置文件概述

  • 官网文档:https://hadoop.apache.org/docs/r3.3.0/
  • 第一类1个:hadoop-env.sh
  • 第二类4个:xxxx-site.xml,site表示的是用户定义的配置,会覆盖default中的默认配置。
    • core-site.xml:核心模块配置
    • hdfs-site.xml:hdfs文件系统模块配置
    • mapred-site.xml:MapReduce模块配置
    • yarn-site.xml:yarn模块配置
  • 第三类1个:workers
  • 所有的配置文件目录:/export/server/hadoop-3.3.0/etc/hadoop

scp /etc/profile node2:/etc/

P026【09-Apache Hadoop安装部署--format初始化操作】

P027【10-Apache Hadoop安装部署--集群启停命令、Web UI页面】

直接使用快照,恢复到第二个快照状态。

 

启动完毕之后可以使用jps命令查看进程是否启动成功。

HDFS集群

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

浏览文件系统:Browse the file system。

YARN集群

http://node1:8088/cluster

P028【11-Apache Hadoop安装部署--初体验】

上传文件

计算圆周率pi

cd /export/server/hadoop-3.3.0/

cd share/hadoop/

cd mapreduce/

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

 

单词统计

hello hadoop hadoop
hadoop hello

vim hello.txt

cat hello.txt

hadoop fs -mkdir -p /wordcount/input

hadoop fs -put hello.txt /wordcount/input

cd /export/server/hadoop-3.3.0/share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-3.3.0.jar wordcount /wordcount/input /wordcount/output

03【DFS分布式文件系统基础】

P029【12-传统文件系统在大数据时代面临的挑战】

大数据要考虑的问题:吞吐量、性能、安全性、效率。

P030【13-场景互动:分布式存储系统的核心属性及功能作用】

分布式存储系统核心属性

  1. 分布式存储
  2. 元数据记录
  3. 分块存储
  4. 副本机制

P031【14-HDFS简介、设计目标与应用场景】

HDFS简介

  1. HDFS(Hadoop Distributed File System ),意为:Hadoop分布式文件系统。
  2. HDFS是Apache Hadoop核心组件之一,作为大数据生态圈最底层的分布式存储服务而存在。也可以说大数据首先要解决的问题就是海量数据的存储问题。
  3. HDFS使用多台计算机存储文件,并且提供统一的访问接口,像是访问一个普通文件系统一样使用分布式文件系统。

P032【15-HDFS重要特性解读】

HDFS特性整体概括

  1. 主从架构
  2. 分块存储
  3. 副本机制
  4. 元数据记录
  5. 抽象统一的目录树结构(namespace)

04【HDFS shell操作】

P033【16-HDFS shell命令行解释说明】

hadoop fs -ls file:///   查看本地文件系统。

start-all.sh

hadoop fs -ls hdfs://node1:8020/

 cat /export/server/hadoop-3.3.0/etc/hadoop/core-site.xml 查看core-site.xml文件内容。

P034【17-HDFS shell命令行常用操作】

hadoop fs -put anaconda-ks.cfg

hadoop fs -put 2.txt /

hadoop fs -put file:///root/2.txt hdfs://node1:8020/itheima

[root@node1 ~]# hadoop fs -put anaconda-ks.cfg 
您在 /var/spool/mail/root 中有新邮件
[root@node1 ~]# hadoop fs -put anaconda-ks.cfg /
[root@node1 ~]# hadoop fs -ls /
Found 7 items
-rw-r--r--   3 root supergroup          2 2023-02-21 21:15 /1.txt
-rw-r--r--   3 root supergroup       1340 2023-02-22 10:49 /anaconda-ks.cfg
drwxr-xr-x   - root supergroup          0 2021-10-26 15:04 /itcast
drwxr-xr-x   - root supergroup          0 2023-02-21 21:17 /itheima
drwx------   - root supergroup          0 2021-10-26 15:04 /tmp
drwxr-xr-x   - root supergroup          0 2021-10-26 15:04 /user
drwxr-xr-x   - root supergroup          0 2023-02-21 21:46 /wordcount
您在 /var/spool/mail/root 中有新邮件
[root@node1 ~]# hadoop fs -ls -h /
Found 7 items
-rw-r--r--   3 root supergroup          2 2023-02-21 21:15 /1.txt
-rw-r--r--   3 root supergroup      1.3 K 2023-02-22 10:49 /anaconda-ks.cfg
drwxr-xr-x   - root supergroup          0 2021-10-26 15:04 /itcast
drwxr-xr-x   - root supergroup          0 2023-02-21 21:17 /itheima
drwx------   - root supergroup          0 2021-10-26 15:04 /tmp
drwxr-xr-x   - root supergroup          0 2021-10-26 15:04 /user
drwxr-xr-x   - root supergroup          0 2023-02-21 21:46 /wordcount
[root@node1 ~]# ll
总用量 12
-rw-r--r--  1 root root    2 2月  21 21:14 1.txt
-rw-------. 1 root root 1340 9月  11 2020 anaconda-ks.cfg
-rw-r--r--  1 root root   34 2月  21 21:36 hello.txt
您在 /var/spool/mail/root 中有新邮件
[root@node1 ~]# hadoop fs -get hdfs://node1:8020/itheima/2.txt file://root/
您在 /var/spool/mail/root 中有新邮件
[root@node1 ~]# hadoop fs -get /itheima/2.txt ./666.txt
[root@node1 ~]# ll
总用量 16
-rw-r--r--  1 root root    2 2月  21 21:14 1.txt
-rw-r--r--  1 root root    4 2月  22 11:03 666.txt
-rw-------. 1 root root 1340 9月  11 2020 anaconda-ks.cfg
-rw-r--r--  1 root root   34 2月  21 21:36 hello.txt
[root@node1 ~]# 
连接成功
Last login: Tue Feb 21 20:24:03 2023 from 192.168.88.1
[root@node2 ~]# hadoop fs -ls /
Found 7 items
-rw-r--r--   3 root supergroup          2 2023-02-21 21:15 /1.txt
-rw-r--r--   3 root supergroup       1340 2023-02-22 10:49 /anaconda-ks.cfg
drwxr-xr-x   - root supergroup          0 2021-10-26 15:04 /itcast
drwxr-xr-x   - root supergroup          0 2023-02-21 21:17 /itheima
drwx------   - root supergroup          0 2021-10-26 15:04 /tmp
drwxr-xr-x   - root supergroup          0 2021-10-26 15:04 /user
drwxr-xr-x   - root supergroup          0 2023-02-21 21:46 /wordcount
您在 /var/spool/mail/root 中有新邮件
[root@node2 ~]# ll
总用量 4
-rw-------. 1 root root 1340 9月  11 2020 anaconda-ks.cfg
您在 /var/spool/mail/root 中有新邮件
[root@node2 ~]# echo 222 > 2.txt
[root@node2 ~]# hadoop fs -put 2.txt /
[root@node2 ~]# hadoop fs -put file:///root/2.txt hdfs://node1:8020/itheima
您在 /var/spool/mail/root 中有新邮件
[root@node2 ~]# ^C
[root@node2 ~]# hadoop fs -cat /itheima/2.txt
222
您在 /var/spool/mail/root 中有新邮件
[root@node2 ~]# hadoop fs -tail /itheima/2.txt
222
[root@node2 ~]# ll
总用量 8
-rw-r--r--  1 root root    4 2月  22 10:53 2.txt
-rw-------. 1 root root 1340 9月  11 2020 anaconda-ks.cfg
您在 /var/spool/mail/root 中有新邮件
[root@node2 ~]# echo 1 > 1.txt
[root@node2 ~]# echo 2 > 2.txt
[root@node2 ~]# echo 3 > 3.txt
[root@node2 ~]# cat 1.txt
1
[root@node2 ~]# hadoop fs -put 1.txt /
put: `/1.txt': File exists
您在 /var/spool/mail/root 中有新邮件
[root@node2 ~]# echo 111 > 111.txt
[root@node2 ~]# hadoop fs -put 111.txt /
[root@node2 ~]# hadoop fs -cat /111.txt
111
您在 /var/spool/mail/root 中有新邮件
[root@node2 ~]# hadoop fs -cat /111.txt
[root@node2 ~]hadoop fs -cat /1.txt
1
[root@node2 ~]# hadoop fs -appendToFile 2.txt 11.txt /1.txt
appendToFile: /root/11.txt
[root@node2 ~]# hadoop fs -cat /1.txt
1
2
[root@node2 ~]# 

hadoop fs -appendToFile 2.txt 11.txt /1.txt

追加命令:用于小文件合并。

HDFS shell其他命令,命令官方指导文档:

https://hadoop.apache.org/docs/r3.3.0/hadoop-project-dist/hadoop-common/FileSystemShell.html

05【HDFS工作流程与机制】

P035【18-HDFS工作流程与机制--各角色职责介绍与梳理】

  • 主角色:namenode,需要大内存。
    • NameNode是Hadoop分布式文件系统的核心,架构中的主角色。
    • NameNode维护和管理文件系统元数据,包括名称空间目录树结构、文件和块的位置信息、访问权限等信息。
  • 从角色:datanode,需要大磁盘。
    • DataNode是Hadoop HDFS中的从角色,负责具体的数据块存储。
    • DataNode的数量决定了HDFS集群的整体数据存储能力。通过和NameNode配合维护着数据块。
  • 主角色辅助角色: secondarynamenode
    • SecondaryNameNode充当NameNode的辅助节点,但不能替代NameNode。
    • 主要是帮助主角色进行元数据文件的合并动作,可以通俗的理解为主角色的“秘书”。记住了:SNN是用来辅助合并数据的。

P036【19-HDFS工作流程与机制--写数据流程--pipeline、ack、副本策略】

核心概念--Pipeline管道

  • Pipeline,中文翻译为管道。这是HDFS在上传文件写数据过程中采用的一种数据传输方式。
  • 客户端将数据块写入第一个数据节点,第一个数据节点保存数据之后再将块复制到第二个数据节点,后者保存后将其复制到第三个数据节点。

核心概念--ACK应答响应

  • ACK (Acknowledge character)即是确认字符,在数据通信中,接收方发给发送方的一种传输类控制字符。表示发来的数据已确认接收无误。
  • 在HDFS pipeline管道传输数据的过程中,传输的反方向会进行ACK校验,确保数据传输安全。

核心概念--默认3副本存储策略

  • 默认副本存储策略是由BlockPlacementPolicyDefault指定。

P037【20-HDFS工作流程与机制--写数据流程--梳理】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/363568.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

0301微分中值定理-微分中值定理与导数的应用

文章目录1 罗尔定理2 拉格朗日定理3 柯西中值定理5后记1 罗尔定理 费马引理 设函数f(x)在点x0f(x)在点x_0f(x)在点x0​的某邻域U(x0)U(x_0)U(x0​)内有定义,并且在点x0x_0x0​处可导,如果对任意的x∈U(x0),x\in U(x_0),x∈U(x0​),有 f(x)≤f(x0)(或f(x)…

给你的Vim加上自动编程功能

Vim 是高度可定制、可扩展的编辑器。这对热爱折腾的程序员来说,绝对是一种乐趣,同时也是进一步提升开发效率的源泉。近期CodeGeeX举办的黑客松活动中,参赛选手Lance 提交了一款名叫Vim with CodeGeeX的作品,这款作品是基于CodeGee…

Java开源工具库使用之httpclient

文章目录前言一、简单使用1.1 get 请求1.2 post 简单表单请求1.3 表单上传文件1.4 上传 json 数据二、高级用法2.1 超时和重试2.2 Cookie2.3 拦截器2.4 fluent API三、3.1旧版本使用3.1 Get 请求3.2 Post 请求四、异步版本使用4.1 基本请求4.2 请求流水线执行参考前言 HttpCli…

SSM SpringBoot vue 健康医疗预约系统

SSM SpringBoot vue 健康医疗预约系统 SSM 健康医疗预约系统 功能介绍 首页 图片轮播展示 出诊信息推荐 医院公告 科室信息 科室详情 出诊信息 医生详情 挂号预约 登录注册 留言反馈 个人中心 我的收藏 后台管理 登录 注册医生 个人中心 用户管理 科室信息管理 医生管理 出诊…

二、Java虚拟机的基本结构

Java虚拟机的架构1.内存结果概述2.类加载器子系统的作用3. 类加载器ClassLoader角色4.类的加载过程5.类加载器的分类1.引导类加载器(虚拟机自带的加载器)Bootstrap ClassLoader2.扩展类加载器(虚拟机自带的加载器) Extenssion ClassLoader3.应用程序类加载器(虚拟机自带的加载器…

CAN TP层函数介绍

如果想使用CAN TP层函数,首先需要在网络节点或测试节点配置页面的Componets组件一栏添加osek_tp.dll文件。路径为:C:\Program Files\Vector CANoe 15\Exec32 至于节点的CAPL程序内需不需要引用这个dll文件,无所谓,可写可不写。但是如果是其他dll,必须在CAPL程序中引用。为…

多服务器节点访问解决一人一单问题+redis设置锁方案

项目地址及项目具体介绍-码云仓库:https://gitee.com/flowers-bloom-is-the-sea/distributeNodeSolvePessimisticLockByRedis 测试1: 这里使用jmeter同时启动2各线程: 原来的数据库表的数据: goods的数据是: id …

金蝶云星空物料批量禁用反禁用程序

【需求描述】:需要通过批量禁用反禁用操作物料。 【操作方法】: 下载附件批量禁用程序。 首先双击安装,一直下一步。 双击打开 会提示需要配置账套信息 点击菜单栏配置 输入相关配置信息 填写完毕后 然后点击下载模板导入要下载的数据 选…

Linux进程学习【三】

✨个人主页: Yohifo 🎉所属专栏: Linux学习之旅 🎊每篇一句: 图片来源 🎃操作环境: CentOS 7.6 阿里云远程服务器 Perseverance is not a long race; it is many short races one after another…

Word控件Spire.Doc 【Table】教程(18):如何在 C# 中的 Word 中创建嵌套表格

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下,轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具,专注于创建、编辑、转…

「JVM 编译优化」即时编译器

前端编译器(javac)将 Java 代码转为字节码(抽象语法树),优化手段主要用于提升程序的编码效率; 后端编译器(内置于 JVM 的 JIT/AOT Compiler,C1,C2)将字节码转…

2022年休闲游戏市场总结

在预测 2023 年之前,我们先回顾一下 2022 年。从上一年发生的事件中往往能看到未来趋势的影子,所以 2022 年的总结至关重要。一、2022年总结回顾1、流行游戏类型回顾 2022 年,三种超休闲游戏表现最为突出:跑酷游戏:跑酷…

spring之声明式事务开发

文章目录一、声明式事务之全注解式开发1、新建springConfig类2、测试程序3、测试结果二、声明式事务之XML实现方式1、配置步骤2、测试程序3、运行结果附一、声明式事务之全注解式开发 基于之前的银行转账系统,将spring.xml配置文件嘎掉,变成全注解式开发…

【极海APM32替代笔记】低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER)

【极海APM32替代笔记】低功耗模式下的RTC唤醒(非闹钟唤醒,而是采用RTC_WAKEUPTIMER) 【STM32笔记】低功耗模式配置及避坑汇总 前文: blog.csdn.net/weixin_53403301/article/details/128216064 【STM32笔记】HAL库低功耗模式配置…

Spring Boot整合RabbitMQ教程

1.首页我们了解一下消息中间件的应用场景异步处理场景说明:用户注册后,需要发注册邮件和注册短信,传统的做法有两种1.串行的方式;2.并行的方式 (1)串行方式:将注册信息写入数据库后,发送注册邮件,再发送注册短信,以上三个任务全部完成后才返回给客户端。…

js实现轮播图

实现的效果图 原理:一次性加载所有图片,使用定位将图片重合在一起,根据opacity,z-index 属性显示当前图片 一、基本的HTML布局 创建一个外部容器来存放图片,prev-next是添加的左右切换按钮,dot存放图片下方的小白点…

《爆肝整理》保姆级系列教程python接口自动化(二十一)--unittest简介(详解)

简介 前边的随笔主要介绍的requests模块的有关知识个内容,接下来看一下python的单元测试框架unittest。熟悉 或者了解java 的小伙伴应该都清楚常见的单元测试框架 Junit 和 TestNG,这个招聘的需求上也是经常见到的。python 里面也有单元 测试框架-unitt…

小熊电器:精品与创意,走上“顶流之路”的两把“宝剑”

回顾2022年,小家电市场降温趋势明显,业绩表现整体低迷,如主打高端路线的北鼎,去年8亿元的营收出现个位数下滑,归母净利润同比下降超56%;苏泊尔营收也出现微降,归母净利润预计同比增长不到10%。而…

教你如何搭建培训机构-招生管理系统,demo可分享

1、简介1.1、案例简介本文将介绍,如何搭建培训机构-招生管理。1.2、应用场景根据意向信息站的收录信息,可批量导入意向信息,在意向信息站转为意向学员,转为意向学员后可进行报名收费成为正式学员。2、设置方法2.1、表单搭建1&…

从零实现深度学习框架:Seq2Seq从理论到实战【实战篇】

来源:投稿 作者:175 编辑:学姐 往期内容: 从零实现深度学习框架1:RNN从理论到实战(理论篇) 从零实现深度学习框架2:RNN从理论到实战(实战篇) 从零实现深度…