当前位置: 首页 > 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;其他用户能够及时感知到。 解决方案调研 前端轮询 最简单的方案&…...

HTML 语义化

目录 HTML 语义化HTML5 新特性HTML 语义化的好处语义化标签的使用场景最佳实践 HTML 语义化 HTML5 新特性 标准答案&#xff1a; 语义化标签&#xff1a; <header>&#xff1a;页头<nav>&#xff1a;导航<main>&#xff1a;主要内容<article>&#x…...

突破不可导策略的训练难题:零阶优化与强化学习的深度嵌合

强化学习&#xff08;Reinforcement Learning, RL&#xff09;是工业领域智能控制的重要方法。它的基本原理是将最优控制问题建模为马尔可夫决策过程&#xff0c;然后使用强化学习的Actor-Critic机制&#xff08;中文译作“知行互动”机制&#xff09;&#xff0c;逐步迭代求解…...

微软PowerBI考试 PL300-选择 Power BI 模型框架【附练习数据】

微软PowerBI考试 PL300-选择 Power BI 模型框架 20 多年来&#xff0c;Microsoft 持续对企业商业智能 (BI) 进行大量投资。 Azure Analysis Services (AAS) 和 SQL Server Analysis Services (SSAS) 基于无数企业使用的成熟的 BI 数据建模技术。 同样的技术也是 Power BI 数据…...

Zustand 状态管理库:极简而强大的解决方案

Zustand 是一个轻量级、快速和可扩展的状态管理库&#xff0c;特别适合 React 应用。它以简洁的 API 和高效的性能解决了 Redux 等状态管理方案中的繁琐问题。 核心优势对比 基本使用指南 1. 创建 Store // store.js import create from zustandconst useStore create((set)…...

Linux简单的操作

ls ls 查看当前目录 ll 查看详细内容 ls -a 查看所有的内容 ls --help 查看方法文档 pwd pwd 查看当前路径 cd cd 转路径 cd .. 转上一级路径 cd 名 转换路径 …...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

大数据学习(132)-HIve数据分析

​​​​&#x1f34b;&#x1f34b;大数据学习&#x1f34b;&#x1f34b; &#x1f525;系列专栏&#xff1a; &#x1f451;哲学语录: 用力所能及&#xff0c;改变世界。 &#x1f496;如果觉得博主的文章还不错的话&#xff0c;请点赞&#x1f44d;收藏⭐️留言&#x1f4…...

力扣-35.搜索插入位置

题目描述 给定一个排序数组和一个目标值&#xff0c;在数组中找到目标值&#xff0c;并返回其索引。如果目标值不存在于数组中&#xff0c;返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...