【大数据】hadoop安装部署(学习笔记)

一、集群组成概述

Hadoop集群包括两个集群:HDFS集群、YARN集群

两个集群逻辑上分离、通常物理上在一起

两个集群都是标准的主从架构集群

HDFS集群(分布式存储):

  • 主角色:NameNode
  • 从角色:DataNode
  • 主角色辅助角色:SecondaryNameNode

YARN集群(资源管理调度):

  • 主角色:ResourceManager
  • 从角色:NodeManager

MapReduce是计算框架、代码层面的组件 没有集群之说

二、集群模式安装

1、Hadoop源码编译

安装包、源码包下载地址:https://archive.apache.org/dist/hadoop/common/hadoop-3.3.0/

源码本地编译用途:匹配不同操作系统本地库环境,Hadoop某些操作比如压缩、IO需要调用系统本地库

2、集群角色规划

根据软件工作特性和服务器硬件资源情况合理分配

  • 资源上有抢夺冲突的,尽量不要部署在一起
  • 工作上需要互相配合的。尽量部署在一起

3、服务器环境配置

# 主机名 
cat /etc/hostname# hosts映射
vim /etc/hosts127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6192.168.88.151 node1.itcast.cn node1
192.168.88.152 node2.itcast.cn node2
192.168.88.153 node3.itcast.cn node3# JDK 1.8安装  上传 jdk-8u241-linux-x64.tar.gz到/export/server/目录下
cd /export/server/
tar zxvf jdk-8u241-linux-x64.tar.gz#配置环境变量vim /etc/profileexport JAVA_HOME=/export/server/jdk1.8.0_241export PATH=$PATH:$JAVA_HOME/binexport CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar#重新加载环境变量文件source /etc/profile# 集群时间同步
ntpdate ntp5.aliyun.com# 防火墙关闭
firewall-cmd --state	#查看防火墙状态
systemctl stop firewalld.service  #停止firewalld服务
systemctl disable firewalld.service  #开机禁用firewalld服务# ssh免密登录(只需要配置node1至node1、node2、node3即可)#node1生成公钥私钥 (一路回车)ssh-keygen  #node1配置免密登录到node1 node2 node3ssh-copy-id node1ssh-copy-id node2ssh-copy-id node3

4、Hadoop的安装

上传Hadoop安装包到node1 /export/server

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

修改配置文件(配置文件路径 hadoop-3.3.0/etc/hadoop)

1、hadoop-env.sh

#文件最后添加
export JAVA_HOME=/export/server/jdk1.8.0_241export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root 

2、core-site.xml

<!-- 设置默认使用的文件系统 Hadoop支持file、HDFS、GFS、ali|Amazon云等文件系统 -->
<property><name>fs.defaultFS</name><value>hdfs://node1:8020</value>
</property><!-- 设置Hadoop本地保存数据路径 -->
<property><name>hadoop.tmp.dir</name><value>/export/data/hadoop-3.3.0</value>
</property><!-- 设置HDFS web UI用户身份 -->
<property><name>hadoop.http.staticuser.user</name><value>root</value>
</property><!-- 整合hive 用户代理设置 -->
<property><name>hadoop.proxyuser.root.hosts</name><value>*</value>
</property><property><name>hadoop.proxyuser.root.groups</name><value>*</value>
</property><!-- 文件系统垃圾桶保存时间 -->
<property><name>fs.trash.interval</name><value>1440</value>
</property>

3、hdfs-site.xml

<!-- 设置SNN进程运行机器位置信息 -->
<property><name>dfs.namenode.secondary.http-address</name><value>node2:9868</value>
</property>

4、mapred-site.xml

<!-- 设置MR程序默认运行模式: yarn集群模式 local本地模式 -->
<property><name>mapreduce.framework.name</name><value>yarn</value>
</property><!-- MR程序历史服务地址 -->
<property><name>mapreduce.jobhistory.address</name><value>node1:10020</value>
</property><!-- MR程序历史服务器web端地址 -->
<property><name>mapreduce.jobhistory.webapp.address</name><value>node1:19888</value>
</property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

5、yarn-site.xml

<!-- 设置YARN集群主角色运行机器位置 -->
<property><name>yarn.resourcemanager.hostname</name><value>node1</value>
</property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property><!-- 是否将对容器实施物理内存限制 -->
<property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value>
</property><!-- 是否将对容器实施虚拟内存限制。 -->
<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value>
</property><!-- 开启日志聚集 -->
<property><name>yarn.log-aggregation-enable</name><value>true</value>
</property><!-- 设置yarn历史服务器地址 -->
<property><name>yarn.log.server.url</name><value>http://node1:19888/jobhistory/logs</value>
</property><!-- 历史日志保存的时间 7天 -->
<property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value>
</property>

6、workers

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

7、分发同步hadoop安装包

cd /export/serverscp -r hadoop-3.3.0 root@node2:$PWD
scp -r hadoop-3.3.0 root@node3:$PWD

8、将hadoop添加到环境变量(3台机器)

vim /etc/profileexport HADOOP_HOME=/export/server/hadoop-3.3.0
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbinsource /etc/profile#别忘了scp给其他两台机器哦

5、Hadoop目录结构

目录说明
binHadoop最基本的管理脚本和使用脚本的目录,这些脚本是sbin目录下管理脚本的基础实现,用户可以直接使用这些脚本管理和使用Hadoop
etcHadoop配置文件所在的目录
include对外提供的编程库头文件(具体动态库和静态库在lib目录中),这些头文件均是用C++定义的,通常用于C++程序访问HDFS或者编写MapReduce程序
lib包含了Hadoop对外提供的编程动态库和静态库,与include目录中的头文件结合使用
libexec各个服务对用的shel1配置文件所在的目录,可用于配置日志输出、启动参数(比如JVM参数)等基本信息
sbinHadoop管理脚本所在的目录,主要包含HDFS和YARN中各类服务的启动/关闭脚本
shareHadoop各个模块编译后的 jar包所在的目录,官方自带示例

6、HDFS初始化

首次启动HDFS时,必须对其进行格式化操作。

format本质上是初始化工作,进行HDFS清理和准备工作

hdfs namenode -format

如果多次format,除了造成数据丢失外,还会导致hafs集群主从角色之间互不识别。通过删除所有机器hadoop.tmp.dir目录重新format解决

三、集群启停命令

1、手动逐个进程启停

每台机器上每次手动启动关闭一个角色进程,可以精准控制每个进程启停,避免群起群停

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

2、shell脚本一键启停

在node1上,使用软件自带的shell脚本一键启动

前提:配置好机器之间的SSH免密登录和workers文件

start-dfs.shstart-yarn.sh

3、进程状态、日志查看

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

Hadoop启动日志路径:/export/server/hadoop-3.3.0/logs/

四、Web UI

HDFS集群:http://node1:9870/

YARN集群:http://node1:8088/

五、Hadoop初体验

1、HDFS

HDFS本质就是一个文件系统

有目录树结构 和Linux类似,分文件、文件夹

2、MapReduce+YARN

执行Hadoop官方自带的MapReduce案例,评估圆周率r的值。

cd /export/server/hadoop-3.3.0/share/hadoop/mapreduce/
hadoop jar hadoop-mapreduce-examples-3.3.0.jar pi 2 4

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

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

相关文章

基于安卓android微信小程序的旅游系统

项目介绍 随着人民生活水平的提高,旅游业已经越来越大众化,而旅游业的核心是信息,不论是对旅游管理部门、对旅游企业,或是对旅游者而言,有效的获取旅游信息,都显得特别重要.自助定制游将使旅游相关信息管理工作规范化、信息化、程序化,提供旅游景点、旅游线路,旅游新闻等服务本…

闲聊servlet的常见注册方式

大家好&#xff0c;我是G探险者。 servlet大家都不陌生&#xff0c;当开发 Web 应用程序时&#xff0c;注册 Servlet 是一个常见的任务&#xff0c;因为 Servlet 是处理 HTTP 请求和生成 HTTP 响应的核心组件之一。在不同的开发环境和框架中&#xff0c;有多种方法可以注册 Ser…

Table.Group系列_第4参数为全局的情况下,利用第5参数进行分组汇总

原始数据: 部门与职位存在于同一列中 实现功能: 根据筛选条件,可对部门或职位进行统计汇总第一列列名根据筛选自动变更,显示当前统计的维度 实现方式: 1. 构建筛选器内容 在任意空白单元格内输入需要筛选的内容 2. 插入"组合框"控件,并进行相应设置 从开发工具…

麒麟系统加密/麒麟系统防泄密

​深信达网络科技有限公司自主研发的深信达主机加固系统软件V2.0、深信达沙盒防泄密系统软件V5.0&#xff0c;与麒麟软件完成兼容认证&#xff0c;并被纳入麒麟软件安全生态联盟成员之一。 麒麟软件主要面向通用和专用领域打造安全创新操作系统产品和相应解决方案&#xff0c;以…

GitHub详细教程

将代码推送到GitHub仓库涉及一系列的步骤。以下是详细的步骤说明&#xff1a; 创建一个新的仓库&#xff08;如果还没有的话&#xff09;&#xff1a; 访问 GitHub。登录您的帐户。点击页面右上角的图标&#xff0c;然后选择“New repository”。填写仓库名称、描述等信息&…

Matlab矩阵——矩阵行列互换

问题&#xff1a;如何将 1*n 的矩阵转换为指定 M*N 的矩阵&#xff0c;或者将 M*N 的矩阵转换为 1*n 的矩阵&#xff1f; 处理方法&#xff1a;使用 reshape 函数进行矩阵的行列互换 分两种情况如下&#xff1a; 一、将 1*n 的矩阵转换为指定 M*N 的矩阵 假如有4个坐标值&a…

大型语言模型:DistilBERT — 更小、更快、更便宜、更轻

一、介绍 近年来&#xff0c;大型语言模型的演进速度飞速发展。BERT成为最流行和最有效的模型之一&#xff0c;可以高精度地解决各种NLP任务。在BERT之后&#xff0c;一组其他模型随后出现在现场&#xff0c;也展示了出色的结果。 很容易观察到的明显趋势是&#xff0c;随着时间…

推荐开源工具带带弟弟ocr_ddddocr_各种验证码都可以识别_滑动_点击_等等---验证码识别工作笔记001

这个很强大了,常见的各种验证码都可以识别,如果你项目上也有需要,比如需要实现系统的自动登录,这个时候就很有用了,这里仅仅给出方案,具体如何用,用的时候在做研究吧,好东西要记录,分享给需要的人.使用的时候 自己去查一下如何使用非常简单. 支持点击的验证码,支持数字验证码就…

Three.js

定义&#xff1a; three,js,一WebGL引擎&#xff08;也叫库&#xff09;&#xff0c;基于javaScript,可直接运行GPU驱动游戏与图形驱动应用于浏览器。其库提供大量特性与API以绘制3D场景于浏览器。 WebGL:Web图形库&#xff0c;一组浏览器的API,可以无需其他插件&#xff0c;独…

【C++】哈希

&#x1f680;write in front&#x1f680; &#x1f4dc;所属专栏&#xff1a; C学习 &#x1f6f0;️博客主页&#xff1a;睿睿的博客主页 &#x1f6f0;️代码仓库&#xff1a;&#x1f389;VS2022_C语言仓库 &#x1f3a1;您的点赞、关注、收藏、评论&#xff0c;是对我最大…

rust cfg的使用

前提是一个crate倒入另一个crate。 先看结构 test_lib目录结构 这与另一个crate处于同一个目录,所以另一crate倒入的时候在Cargo.toml中使用如下语句。 test_lib = {path = "../test_lib" }先在test_lib/src/abc/abc.rs中添加没有cfg的两个函数做测试。 pub fn…

GitHub访问慢解决办法

找到C盘目录 C:/Windows/system32/drivers/etc/hosts修改hosts文件内容&#xff0c;尾部复制粘贴 199.232.69.194 github.global.ssl.fastly.net 140.82.112.4 www.github.com 185.199.108.153 assets-cdn.github.com 185.199.109.153 assets-cdn.github.com 185.199.110.153…

ViewModifier/视图修饰符, ButtonStyle/按钮样式 的使用

1. ViewModifier 视图修饰符 1.1 创建默认按钮视图修饰符 ViewModifierBootcamp.swift import SwiftUI/// 默认按钮修饰符 struct DefaultButtonViewModifier: ViewModifier{let bcakgroundColor: Colorfunc body(content: Content) -> some View {content.foregroundColor…

流式数据湖平台Hudi核心概念三:索引

1.索引 Hudi通过索引机制将给定的hoodie key(record key+分区路径)映射到文件id,实现了高效的upstart。一旦将记录的第一个版本写入文件,record key和文件组/文件id之间的映射就永远不会改变。简而言之,映射的文件组包含一组记录的所有版本。 对于Copy-On-Write表,可以实…

C/C++之自定义类型(结构体,位段,联合体,枚举)详解

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂。 目录 个人主页&#xff1a;点我进入主页 …

css 滚动贴合

大部分人基本上都会使用JS实现页面的滚动贴合效果&#xff0c;在学习的过程中&#xff0c;偶然发现原生CSS实现滚动贴合效果的方法&#xff1b; html 代码 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><tit…

Linux系统导入导出docker容器的sql数据

Linux系统导入导出docker容器的sql数据 一 要从Docker容器中将数据库导出到本地 确保您已经安装了Docker&#xff0c;并且已经运行了包含数据库的Docker容器。 检查容器中运行的数据库服务的名称或容器ID。您可以使用命令 docker ps 来列出正在运行的容器和相关信息。 使用…

MySQL 安装+启动+报错的解决方案

目录 一、安装准备 1.1 下载 1.2 版本说明 二、安装步骤 2.1 解压缩 2.2 配置环境变量 2.3 配置文件 2.4 安装 2.5 启动/停止服务 三、使用说明 3.1 用户名密码登录 3.1 设置用户名密码 四、卸载步骤 4.1 卸载服务 五、安装问题 六、启动问题 6.1 提示【服务无…

web基础和http协议

1.DNS解析的三种方式 DNS解析&#xff1a; 网站都是域名&#xff1a;dns解析的作用是把域名解析成ip地址 迭代&#xff1a;从跟域名到二级域 返回用户的过程&#xff1a;递归---运营商--本地hosts---用户 三种方式&#xff1a; /etc/hosts 本地解析&#xff0c;速度最快&…

JAVA 泛型的定义以及使用

泛型类 /*** <T> 为该类定义泛型&#xff0c;可以是一个或多个<T,...>* 定义的泛型可以在类中作为&#xff1a;* 类变量类型&#xff1a; T data* 类方法的入参以及返回类型 public void setData(T data)&#xff0c;public T getData();次数以set&a…