当前位置: 首页 > news >正文

13:大数据与Hadoop|分布式文件系统|分布式Hadoop集群

大数据与Hadoop|分布式文件系统|分布式Hadoop集群

  • Hadoop
    • 部署Hadoop
  • HDFS分布式文件系统
    • HDFS部署
      • 步骤一:环境准备
      • HDFS配置文件 查官方手册
      • 配置Hadoop集群
    • 日志与排错
  • mapreduce 分布式离线计算框架
  • YARN集群资源管理系统
    • 步骤一:安装与部署hadoop

Hadoop

Hadoop是一种分析和处理海量数据的软件平台,基于java语言开发,可以提供一个分布式基础架构。
特点:高可靠性、高扩展性、高效性、高容错性、低成本
在这里插入图片描述
在这里插入图片描述

部署Hadoop

本案例要求安装单机模式Hadoop:
热词分析:
最低配置:2cpu,2G内存,10G硬盘
虚拟机IP:192.168.1.50 hadoop1
安装部署 hadoop
数据分析,查找出现次数最多的单词

1)配置主机名为hadoop1,ip为192.168.1.50,配置yum源(系统源)
2)安装java环境

[root@hadoop1 ~]# yum -y install java-1.8.0-openjdk-devel java-1.8.0-openjdk-devel
[root@hadoop1 ~]# java -version
openjdk version "1.8.0_131"
OpenJDK Runtime Environment (build 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)
[root@hadoop1 ~]# jps
1235 Jps

3)安装hadoop

[root@hadoop1 ~]# cd hadoop/
[root@hadoop1 hadoop]# ls
hadoop-2.7.7.tar.gz  kafka_2.12-2.1.0.tgz  zookeeper-3.4.13.tar.gz
[root@hadoop1 hadoop]# tar -xf hadoop-2.7.7.tar.gz 
[root@hadoop1 hadoop]# mv hadoop-2.7.7 /usr/local/hadoop
[root@hadoop1 hadoop]# chown -R 0.0 /usr/local/hadoop # 为了安全 修改所有者和所属组
[root@hadoop1 hadoop]# vim /etc/hosts
192.168.1.50 hadoop1
[root@hadoop1 hadoop]# vim /usr/local/hadoop/etc/hadoop-env.sh
25: export JAVA_HOME="/usr" # java安装路径
33: export HADOOP_CONF_DIR="/usr/local/hadoop/etc/hadoop" # hadoop配置文件命令
[root@hadoop1 hadoop]# /usr/local/hadoop/bin/hadoop version
[root@hadoop1 ~]# cd /usr/local/hadoop/
[root@hadoop1 hadoop]# ./bin/hadoop # 运行

5)词频统计

[root@hadoop1 hadoop]# mkdir /usr/local/hadoop/input
[root@hadoop1 hadoop]# ls
bin  etc  include  lib  libexec  LICENSE.txt  NOTICE.txt  input  README.txt  sbin  share
[root@hadoop1 hadoop]# cp *.txt /usr/local/hadoop/input
[root@hadoop1 hadoop]# ./bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar  wordcount input output        //wordcount为参数 统计input这个文件夹,存到output这个文件里面(这个文件不能存在,要是存在会报错,是为了防止数据覆盖)
[root@hadoop1 hadoop]#  cat   output/part-r-00000    //查看

在这里插入图片描述

HDFS分布式文件系统

在这里插入图片描述
HDFS是Hadoop体系中数据存储管理的基础,是一个高度容错的系统,用于在低成本的通用硬件上运行。
HDFS角色和概念:

  • Client :客户端 负责 切分文件 访问HDFS 与NameNode交互,获取文件位置信息 与DataNode交互,读取和写入数据
    Block 每块缺省128MB大小,没块可以多个副本
  • Namenode:Master节点 管理HDFS的名称空间和数据块映射信息(fsimage) 配置副本策略,处理所有客户端请求
  • Secondarynode:定期合并fsimage和fsedits,推送给NameNode fsimage:名称空间和数据库的映射信息中 fsedits:数据变更日志 紧急情况下 可辅助恢复NameNode 但Secondary NameNode并非NameNode热备
  • Datanode:数据存储节点,存储实际的数据 汇报存储信息给NameNode

HDFS部署

准备集群环境
最低配置:2CPU,2G内存,10G硬盘
虚拟机IP:
192.168.1.50 hadoop1
192.168.1.51 node-0001
192.168.1.52 node-0002
192.168.1.53 node-0003
要求:禁用selinux、禁用firewalld (所有主机)
安装java-1.8.0-openjdk-devel,并配置 /etc/hosts(所有主机)
设置hadoop1 免密登录其他主机、并不用输入 yes
使所有节点能够ping通,配置SSH信任关系
节点验证

步骤一:环境准备

1)编辑/etc/hosts(四台主机同样操作,以hadoop1为例)
[root@hadoop1 ~]# vim /etc/hosts
192.168.1.50  hadoop1
192.168.1.51  node-0001
192.168.1.52  node-0002
192.168.1.53  node-0003
2)安装java环境,在node-0001,node-0002,node-0003上面操作(以node-0001为例)
[root@node-0001 ~]# yum -y install java-1.8.0-openjdk-devel
3)布置SSH信任关系
[root@hadoop1 ~]# vim /etc/ssh/ssh_config    //第一次登陆不需要输入yes
Host *GSSAPIAuthentication yesStrictHostKeyChecking no
[root@hadoop1 .ssh]# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:Ucl8OCezw92aArY5+zPtOrJ9ol1ojRE3EAZ1mgndYQM root@hadoop1
The key's randomart image is:
+---[RSA 2048]----+
|        o*E*=.   |
|         +XB+.   |
|        ..=Oo.   |
|        o.+o...  |
|       .S+.. o   |
|        + .=o    |
|         o+oo    |
|        o+=.o    |
|        o==O.    |
+----[SHA256]-----+
[root@hadoop1 .ssh]# for i in hadoop1 node-{0001...0003};do ssh-copy-id -i /root/.ssh/id_ras.pub ${i} done 
//部署公钥给hadoop1,node-0001,node-0002,node-0003

4)测试信任关系

[root@hadoop1 .ssh]# ssh node-0001
Last login: Fri Sep  7 16:52:00 2018 from 192.168.1.60
[root@node-0001 ~]# exit
logout
Connection to node-0001 closed.
[root@hadoop1 .ssh]# ssh node-0002
Last login: Fri Sep  7 16:52:05 2018 from 192.168.1.60
[root@node-0002 ~]# exit
logout
Connection to node-0002 closed.
[root@hadoop1 .ssh]# ssh node-0003

HDFS配置文件 查官方手册

  • 环境配置文件:hadoop-env.sh
  • 核心配置文件:core-site.xml
  • HDFS配置文件:hdfs-site.xml
  • 节点配置文件:slaves
    1)修改slaves文件
[root@hadoop1 ~]# cd  /usr/local/hadoop/etc/hadoop
[root@hadoop1 hadoop]# vim slaves
node-0001
node-0002
node-0003

2)hadoop的核心配置文件core-site

[root@hadoop1 hadoop]# vim core-site.xml
<configuration>
<property><name>fs.defaultFS</name><value>hdfs://hadoop1:9000</value></property><property><name>hadoop.tmp.dir</name><value>/var/hadoop</value></property>
</configuration>
[root@hadoop1 hadoop]# mkdir /var/hadoop        //hadoop的数据根目录

3)配置hdfs-site文件

[root@hadoop1 hadoop]# vim hdfs-site.xml
<configuration><property><name>dfs.namenode.http-address</name><value>hadoop1:50070</value> # 主机名:端口号 查手册</property><property><name>dfs.namenode.secondary.http-address</name><value>hadoop1:50090</value></property><property><name>dfs.replication</name><value>2</value> # 副本数量</property>
</configuration>

在这里插入图片描述

配置Hadoop集群

启动集群(以下操作仅在hadoop1上执行)

[root@hadoop1 ~]# for i in node-{0001..0001};do rsync -aXSH --delete /usr/local/hadoop ${i}:/usr/local/ done
[root@hadoop1 ~]# mkdir /var/hadoop
[root@hadoop1 ~]# /usr/local/hadoop/bin/hdfs namenode -format
[root@hadoop1 ~]# /usr/local/hadoop/sbin/start-dfs.sh

验证集群配置

[root@hadoop1 ~]# for i in hadoop1 node-{0001..0003};do echo ${i}; ssh ${i} jps; echo -e "\n"; done
[root@hadoop1 ~]# /usr/local/hadoop/bin/hdfs dfsadmin -report

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

日志与排错

日志文件夹在系统启动时会被自动创建

/usr/local/hadoop/logs

日志名称

  • 服务名 - 用户名 - 角色名 - 主机名.out 标准输出
  • 服务名 - 用户名 - 角色名 - 主机名.log 日志输出

mapreduce 分布式离线计算框架

在这里插入图片描述
在这里插入图片描述
1)配置mapred-site(hadoop1上面操作)

[root@hadoop1 ~]# cd /usr/local/hadoop/etc/hadoop/
[root@hadoop1 ~]# mv mapred-site.xml.template mapred-site.xml
[root@hadoop1 ~]# vim mapred-site.xml
<configuration>
<property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>

YARN集群资源管理系统

在之前创建的 4 台虚拟机上部署 Yarn
在虚拟机上安装部署 Yarn
hadoop1 部署 resourcemanager
node(1,2,3) 部署 nodemanager
在之前创建的 4 台虚拟机上部署 Yarn
在这里插入图片描述
在这里插入图片描述

步骤一:安装与部署hadoop

1)配置yarn-site(hadoop1上面操作)

[root@hadoop1 hadoop]# vim yarn-site.xml
<configuration>
<!-- Site specific YARN configuration properties -->
<property><name>yarn.resourcemanager.hostname</name><value>hadoop1</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>

2)同步配置(hadoop1上面操作)

[root@hadoop1 ~]# for i in node-{0001..0003}; dorsync -axXSH --delete /usr/local/hadoop/etc ${i}:/usr/local/hadoop/done
[root@hadoop1 ~]# /usr/local/hadoop/sbin/start-yarn.sh

3)验证配置(hadoop1上面操作)

[root@hadoop1 ~]# for i in hadoop1 node-{0001..0003}; do echo ${i};ssh ${i} jps;echo -e "\n";done
[root@hadoop1 ~]# /usr/local/hadoop/bin/yarn node -list

在这里插入图片描述

4)web访问hadoop

namenode: http://hadoop1:50070
firefox http://hadoop1:8088 (resourcemanager)
firefox http://node-0001:8042 (nodemanager)

相关文章:

13:大数据与Hadoop|分布式文件系统|分布式Hadoop集群

大数据与Hadoop&#xff5c;分布式文件系统&#xff5c;分布式Hadoop集群 Hadoop部署Hadoop HDFS分布式文件系统HDFS部署步骤一&#xff1a;环境准备HDFS配置文件 查官方手册配置Hadoop集群 日志与排错 mapreduce 分布式离线计算框架YARN集群资源管理系统步骤一&#xff1a;安装…...

前端知识点、技巧、webpack、性能优化(持续更新~)

1、 请求太多 页面加载慢 &#xff08;webpack性能优化&#xff09; 可以把 图片转换成 base64 放在src里面 减少服务器请求 但是图片会稍微大一点点 以上的方法不需要一个一个自己转化 可以在webpack 进行 性能优化 &#xff08;官网有详细描述&#xff09;...

红队专题-开源漏扫-巡风xunfeng源码剖析与应用

开源漏扫-巡风xunfeng 介绍主体两部分:网络资产识别引擎,漏洞检测引擎。代码赏析插件编写JSON标示符Python脚本此外系统内嵌了辅助验证功能文件结构功能 模块添加IP三. 进行扫描在这里插入图片描述 ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/de587a6f6f694…...

统计接口调用耗时情况设计思路(大厂面试题)

gateway统计接口调用耗时情况设计思路&#xff08;大厂面试题&#xff09; 详情视频可以去看尚硅谷2024周阳老师的springCloud P86 知识出处自定义全局过滤器官网https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#gateway-combined-global-filter-…...

Elasticsearch:什么是 DevOps?

DevOps 定义 DevOps 是一种现代软件开发方法&#xff0c;它将公司软件开发 (Dev) 和 IT 运营 (Ops) 团队的工作结合起来并实现自动化。 DevOps 提倡这样一种理念&#xff1a;这些传统上独立的团队在协作方面比在孤岛中更有效。 理想情况下&#xff0c;DevOps 团队共同努力改进…...

C语言基础练习——Day03

目录 选择题 编程题 记负均正 旋转数组的最小数字 选择题 1、已知函数的原型是&#xff1a;int fun(char b[10], int *a);&#xff0c;设定义&#xff1a;char c[10];int d;&#xff0c;正确的调用语句是 A fun(c,&d);B fun(c,d);C fun(&c,&d);D fun(&c,d); 答…...

膜厚测量仪在半导体应用中及其重要

随着科技的不断发展&#xff0c;半导体行业已成为当今世界的核心产业之一。在这个领域中&#xff0c;半导体膜厚测量仪作为关键设备&#xff0c;其精度和可靠性对于产品质量和生产效率具有至关重要的作用。本文将详细介绍半导体膜厚测量仪的工作原理、应用领域以及其在半导体制…...

【前端】-初始前端以及html的学习

&#x1f496;作者&#xff1a;小树苗渴望变成参天大树&#x1f388; &#x1f389;作者宣言&#xff1a;认真写好每一篇博客&#x1f4a4; &#x1f38a;作者gitee:gitee✨ &#x1f49e;作者专栏&#xff1a;C语言,数据结构初阶,Linux,C 动态规划算法&#x1f384; 如 果 你 …...

uni-app navigateTo路由传参传递对象

传递参数 先通过JSON.stringify将对象转成字符串 toNextPage(obj) {uni.navigateTo({url:/pages/nextpage/index?obj${JSON.stringify(obj)}}); },接收参数 再通过JSON.parse将传递过来的字符串转成对象 onLoad(options) {this.obj JSON.parse(options.obj) }...

99 centos 7 服务器上面 增加了 2181 的防火墙配置, 但是客户端连接不上

呵呵 最近部署 zookeeper 的时候出现这样的一个问题 centos 7 服务器上面 增加了 2181 的防火墙配置, 但是客户端连接不上 # 但是再 另外的一个虚拟机环境, ubuntu 16 的环境, docker 启动 2181 的服务, 然后 安装 firewalld, 配置 开放 2181 的 tcp 服务, 客户端能够正常连接…...

云计算科学与工程实践指南--章节引言收集

云计算科学与工程实践指南–章节引言收集 //本文收集 【云计算科学与工程实践指南】 书中每一章节的引言。 我已厌倦了在一本书中阅读云的定义。难道你不失望吗&#xff1f;你正在阅读一个很好的故事&#xff0c;突然间作者必须停下来介绍云。谁在乎云是什么&#xff1f; 通…...

探索Web中的颜色选择:不同取色方法的实现

在Web开发中&#xff0c;提供用户选择颜色的功能是很常见的需求。无论是为了个性化UI主题&#xff0c;还是为了图像编辑工具&#xff0c;一个直观且易用的取色器都是必不可少的。本文将介绍几种在Web应用中实现取色功能的方法&#xff0c;从简单的HTML输入到利用现代API的高级技…...

突破编程_C++_设计模式(策略模式)

1 策略模式的概念 策略模式&#xff08;Strategy Pattern&#xff09;是 C 中常用的一种行为设计模式&#xff0c;它能在运行时改变对象的行为。在策略模式中&#xff0c;一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为模式。 在策略模式中&#xff0c;需…...

【uniapp】uniapp小程序中实现拍照同时打开闪光灯的功能,拍照闪光灯实现

一、需求前提 特殊场景中&#xff0c;需要拍照的同时打开闪光灯&#xff0c;&#xff08;例如黑暗场景下的设备维护巡检功能&#xff09;。 起初我是用的uviewui中的u-upload组件自带的拍照功能&#xff0c;但是这个不支持拍照时打开闪光灯&#xff0c;也不支持从通知栏中打开…...

在python model train里如何驯服野生log?

关键词&#xff1a;python 、epoch、loss、log &#x1f916;: 记录模型的训练过程的步骤如下&#xff1a; 导入logging模块。配置日志记录器&#xff0c;设置日志文件名、日志级别、日志格式等。在每个epoch结束时&#xff0c;使用logging模块记录性能指标、损失值、准确率等信…...

产品推荐 - Xilinx FPGA下载器 XQ-HS/STM2

1 FPGA下载器简介 1.性能优良 FPGA下载器XQ-HS/STM2采用Xilinx下载模块设计而成&#xff08;JTAG-SMT2NC模块&#xff0c;该模块与Xilinx官方开发板KC705&#xff0c;KCU105&#xff0c;ZC702&#xff0c;ZC706&#xff0c;Zedboard等板载下载器一样&#xff0c;下载速度快…...

STM32 SDRAM知识点

1.SDRAM和SRAM的区别 SRAM不需要刷新电路即能保存它内部存储的数据。而SDRAM&#xff08;Dynamic Random Access Memory&#xff09;每隔一段时间&#xff0c;要刷新充电一次&#xff0c;否则内部的数据即会消失&#xff0c;因此SRAM具有较高的性能&#xff0c;但是SRAM也有它…...

手写分布式配置中心(六)整合springboot(自动刷新)

对于springboot配置自动刷新&#xff0c;原理也很简单&#xff0c;就是在启动过程中用一个BeanPostProcessor去收集需要自动刷新的字段&#xff0c;然后在springboot启动后开启轮询任务即可。 不过需要对之前的代码再次做修改&#xff0c;因为springboot的配置注入value("…...

记录一次排查负载均衡不能创建的排查过程

故障现象&#xff0c;某云上&#xff0c;运维同事在创建负载均衡的时候&#xff0c;发现可以创建资源&#xff0c;但是创建完之后&#xff0c;不显示对应的负载均衡。 创建负载均衡时候&#xff0c;按f12发现console有如下报错 后来请后端网络同事排查日志发现&#xff0c;是后…...

数据推送解决方案调研

需求 文档编辑类型的需求&#xff0c;左侧是菜单栏&#xff0c;右侧是内容块&#xff0c;现在的需求时&#xff0c;如果多人同时编辑这个方案&#xff0c;当添加章节/调整章节顺序/删除章节时&#xff0c;其他用户能够及时感知到。 解决方案调研 前端轮询 最简单的方案&…...

别再只盯着论文了!手把手教你用PyTorch复现3个经典医学图像融合模型(附完整代码)

从理论到实践&#xff1a;PyTorch复现医学图像融合模型的实战指南 医学图像融合技术正逐渐成为临床诊断和科研分析的重要工具。不同于单纯的理论探讨或论文整理&#xff0c;本文将带您深入三个经典模型的代码实现细节&#xff0c;让抽象的网络结构变得触手可及。无论您是刚入门…...

思源宋体TTF字体:5分钟快速上手的完整免费使用指南

思源宋体TTF字体&#xff1a;5分钟快速上手的完整免费使用指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 还在为中文排版寻找专业又免费的字体解决方案吗&#xff1f;思源宋体TTF…...

智能体的商业化困境

随着AI技术从“大模型狂欢”迈入“智能体争艳”的新阶段&#xff0c;智能体被寄予厚望&#xff0c;成为连接大模型能力与产业需求、实现技术商业化变现的核心载体。然而现实中&#xff0c;多数智能体项目停留在POC&#xff08;概念验证&#xff09;阶段&#xff0c;难以实现规模…...

如何快速实现MyBatis分页查询:PageHelper终极指南

如何快速实现MyBatis分页查询&#xff1a;PageHelper终极指南 【免费下载链接】Mybatis-PageHelper Mybatis通用分页插件 项目地址: https://gitcode.com/gh_mirrors/my/Mybatis-PageHelper 前言&#xff1a;在MyBatis项目中实现分页功能是每个开发者都会遇到的挑战&…...

Nano Banana MCP 集成指南

MCP (Model Context Protocol) 是由 Anthropic 推出的模型上下文协议&#xff0c;它允许 AI 模型&#xff08;如 Claude、GPT 等&#xff09;通过标准化接口调用外部工具。借助 AceData Cloud 提供的 Nano Banana MCP 服务器&#xff0c;您可以直接在 Claude Desktop、VS Code、…...

Unity URP 实战:基于Kajiya-Kay与Marschner的头发着色器深度解析

1. 头发渲染为什么这么难&#xff1f; 第一次尝试做头发渲染的时候&#xff0c;我对着屏幕发呆了整整一天。为什么游戏里的头发看起来总是那么假&#xff1f;这个问题困扰了我很久。后来才发现&#xff0c;头发的光学特性比我们想象中复杂得多 - 每根头发实际上是个微型圆柱体&…...

降AI率工具哪个好?背后的判断逻辑你可能没想过

降AI率工具哪个好&#xff1f;背后的判断逻辑你可能没想过 一、一个被问烂了的问题,却很少有人答对 “降AI率工具哪个好?”——这是2026年毕业季被问得最多的问题之一。打开知乎、小红书、百度贴吧,铺天盖地的测评、排行榜、推荐帖,但真正能帮你做决策的内容寥寥无几。 为什…...

台积电法说会:AI需求强劲异常,供不应求态势将延续至至少2027年

2026年Q1绩后&#xff0c;台积电召开法说会。台积电首席执行官魏哲家宣称“AI需求极为强劲”&#xff0c;并指出全球正置身于“AI大趋势”之中。财报显示&#xff0c;台积电今年第一季度营收&#xff08;以美元计&#xff09;环比增长6.4%&#xff0c;达359亿美元&#xff0c;略…...

从STC8G1K08A到SG90舵机:一个宿舍断电关灯器的硬件选型与避坑全记录

STC8G1K08A与SG90舵机的实战融合&#xff1a;智能断电关灯器的硬件设计精要 深夜被突如其来的灯光惊醒&#xff0c;这种体验对于宿舍生活的学生来说再熟悉不过。传统机械开关在断电后无法自动复位的问题&#xff0c;催生了一个有趣的硬件项目——基于STC8G1K08A单片机和SG90舵机…...

从PCB Layout到信号测试:搞定晶振电路稳定性的5个关键细节

晶振电路设计与测试的五大核心实战技巧 在高速数字电路设计中&#xff0c;晶振电路的稳定性往往成为整个系统可靠性的关键瓶颈。一个看似简单的晶振电路&#xff0c;在实际工程中却可能引发各种难以排查的故障——从时钟信号抖动到系统间歇性死机&#xff0c;甚至批量产品的返修…...