Hadoop3:集群搭建及常用命令与shell脚本整理(入门篇,从零开始搭建)

本文主要是介绍Hadoop3:集群搭建及常用命令与shell脚本整理(入门篇,从零开始搭建),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、集群环境说明

1、用VMware安装3Centos7.9虚拟机
2、虚拟机配置:2C,2G内存,50G存储
3、集群架构
从表格中,可以看出,Hadoop集群,主要有2部分,一个是HDFS服务,一个是YARN服务
在这里插入图片描述

二、搭建集群

1、安装3台Centos7.9虚拟机

安装教程:VMware安装Centos7详细教程及初始化配置

1.1、修改主机名

三台虚拟机固定IP192.168.31.102、192.168.31.103、192.168.31.104
三台主机的hostname分别修改为,hadoop102,hadoop103,hadoop104

vim /etc/hostname

在这里插入图片描述

1.2、配置主机hosts文件

vim /etc/hosts192.168.31.100	hadoop100
192.168.31.101	hadoop101
192.168.31.102	hadoop102
192.168.31.103	hadoop103
192.168.31.104	hadoop104
192.168.31.105	hadoop105
192.168.31.106	hadoop106
192.168.31.107	hadoop107
192.168.31.108	hadoop108

在这里插入图片描述

1.3、创建账号

创建atguigu账号,并设置密码为123456

useradd atguigu
echo 123456|passwd --stdin atguigu;

配置atguigu账号root权限

visudo末尾添加
atguigu    ALL=(ALL)       NOPASSWD:ALL

1.4、三台机器间配置atguigu账号免密登陆

102配置到103免密登陆为例

cd							进入当前账号家目录
ssh-keygen					连续三次回车		
ssh-copy-id 192.168.31.103	复制公钥到hadoop103服务器,这样,102的atguigu就可以免密登陆hadoop103服务器

参考:服务器间配置免密登陆

2、3台虚拟机都安装JDK,并配置环境变量

2.1、卸载自带的OpenJDK

2.1.1、查看openJDK

[root@CFDB2 ~]$ rpm -qa|grep java
tzdata-java-2018e-3.el7.noarch
java-1.8.0-openjdk-1.8.0.171-8.b10.el7_5.x86_64
java-1.7.0-openjdk-headless-1.7.0.181-2.6.14.8.el7_5.x86_64
java-1.7.0-openjdk-1.7.0.181-2.6.14.8.el7_5.x86_64
javapackages-tools-3.4.1-11.el7.noarch
python-javapackages-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.171-8.b10.el7_5.x86_64

2.1.2、卸载openJDK

rpm -qa | grep -i java | xargs n1 rpm -e --nodeps

2.1.3、安装JDK8

tar -zxvf jdk-7u79-linux-x64.tar.gz -C /usr/local/jdks/
cd /usr/local/jdks/vim /etc/profile.d/java.sh#!/bin/bash
#
export JAVA_HOME=/usr/local/jdks/jdk1.8.0_211
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
--------------------------
source /etc/profile  #执行该命令
java -version  #查看java是否安装成功

3、3台虚拟机都安装Hadoop3,并配置环境变量

1、准备Hadoop3安装包
在这里插入图片描述2、三台机器上准备两个目录
在这里插入图片描述
3、将hadoop3安装包上传到software目录下
在这里插入图片描述
4、解压并配置环境变量
解压安装

tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

配置环境变量

进入目录cd /etc/profile.d/创建文件,并添加如下内容
vim hadoop.sh
#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin重新加载环境变量,这样新配置的hadoop环境变量才会生效
source /etc/profile

检查hadoop安装是否成

hadoop version

在这里插入图片描述

4、hadoop的4个自定义配置文件及workers配置

1、准备一个同步文件的脚本

参考:服务器同步文件脚本
这样,在102上配置好后,用该脚本同步到另外两台机器上即可。

2、core-site.xml

vim /opt/module/hadoop-3.1.3/etc/hadoop/core-site.xml

完整配置内容如下

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration>
<property><name>fs.defaultFS</name><value>hdfs://hadoop102:8020</value><description>指定 NameNode 的地址</description>
</property><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-3.1.3/data</value><description>指定 Hadoop 数据的存储目录</description>
</property>
</configuration>

3、hdfs-site.xml

vim /opt/module/hadoop-3.1.3/etc/hadoop/hdfs-site.xml

完整配置内容如下

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property><name>dfs.namenode.http-address</name><value>hadoop102:9870</value><description>nn web 端访问地址</description>
</property><property><name>dfs.namenode.secondary.http-address</name><value>hadoop104:9868</value><description>2 nn web 端访问地址</description>
</property>
</configuration>

4、mapred-site.xml

vim /opt/module/hadoop-3.1.3/etc/hadoop/mapred-site.xml

完整配置内容如下

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><property><name>mapreduce.framework.name</name><value>yarn</value><description></description></property><property><name>mapreduce.jobhistory.address</name><value>hadoop102:10020</value><description>历史服务器端地址</description></property><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop102:19888</value><description>历史服务器 web 端地址</description></property>
</configuration>

5、yarn-site.xml

vim /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml

完整配置内容如下

<?xml version="1.0"?>
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value><description>指定 MR 走 shuffle</description></property><property><name>yarn.resourcemanager.hostname</name><value>hadoop103</value><description>指定 ResourceManager 的地址</description></property> <property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value><description>系统环境变量的继承</description></property><property><name>yarn.log-aggregation-enable</name><value>true</value><description>开启日志聚集功能</description></property><property><description>设置日志聚集服务器地址</description><name>yarn.log.server.url</name><value>http://hadoop102:19888/jobhistory/logs</value></property><property><description>设置日志保留时间为 7 天, -1 表示不保存日志</description><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property></configuration>

6、配置workers

vim /opt/module/hadoop-3.1.3/etc/hadoop/workers

完整配置内容如下

hadoop102
hadoop103
hadoop104

7、使用xsync同步脚本,将配置文件同步到103、104

xsync core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml workers

5、启动HDFS服务

1、第一次启动的准备工作

需要在hadoop102上格式化 NameNode(后面重启hadoop集群,无需这一步操作)

cd /opt/module/hadoop-3.1.3
hdfs namenode -format

在这里插入图片描述

2、启动HDFS服务

cd /opt/module/hadoop-3.1.3
sbin/start-dfs.sh

在这里插入图片描述

3、访问web页

http://hadoop102:9870

在这里插入图片描述

6、103上启动YARN

1、启动YARN服务

cd /opt/module/hadoop-3.1.3
sbin/start-yarn.sh

在这里插入图片描述

2、访问web页

http://hadoop103:8088

在这里插入图片描述

7、检查各个集群节点服务

从图中可以看出,和我们设计的集群架构完全匹配
在这里插入图片描述

8、在102上开启YARN的历史任务查询服务

cd /opt/module/hadoop-3.1.3
bin/mapred --daemon start historyserver

在这里插入图片描述

9、同步集群时间

10、测试集群相关功能

明天继续。。。

这篇关于Hadoop3:集群搭建及常用命令与shell脚本整理(入门篇,从零开始搭建)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/948360

相关文章

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

Java实现远程执行Shell指令

《Java实现远程执行Shell指令》文章介绍使用JSch在SpringBoot项目中实现远程Shell操作,涵盖环境配置、依赖引入及工具类编写,详解分号和双与号执行多指令的区别... 目录软硬件环境说明编写执行Shell指令的工具类总结jsch(Java Secure Channel)是SSH2的一个纯J

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Redis中哨兵机制和集群的区别及说明

《Redis中哨兵机制和集群的区别及说明》Redis哨兵通过主从复制实现高可用,适用于中小规模数据;集群采用分布式分片,支持动态扩展,适合大规模数据,哨兵管理简单但扩展性弱,集群性能更强但架构复杂,根... 目录一、架构设计与节点角色1. 哨兵机制(Sentinel)2. 集群(Cluster)二、数据分片

Java调用Python脚本实现HelloWorld的示例详解

《Java调用Python脚本实现HelloWorld的示例详解》作为程序员,我们经常会遇到需要在Java项目中调用Python脚本的场景,下面我们来看看如何从基础到进阶,一步步实现Java与Pyth... 目录一、环境准备二、基础调用:使用 Runtime.exec()2.1 实现步骤2.2 代码解析三、

Python脚本轻松实现检测麦克风功能

《Python脚本轻松实现检测麦克风功能》在进行音频处理或开发需要使用麦克风的应用程序时,确保麦克风功能正常是非常重要的,本文将介绍一个简单的Python脚本,能够帮助我们检测本地麦克风的功能,需要的... 目录轻松检测麦克风功能脚本介绍一、python环境准备二、代码解析三、使用方法四、知识扩展轻松检测麦

MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)

《MyBatis的xml中字符串类型判空与非字符串类型判空处理方式(最新整理)》本文给大家介绍MyBatis的xml中字符串类型判空与非字符串类型判空处理方式,本文给大家介绍的非常详细,对大家的学习或... 目录完整 Hutool 写法版本对比优化为什么status变成Long?为什么 price 没事?怎

Java 与 LibreOffice 集成开发指南(环境搭建及代码示例)

《Java与LibreOffice集成开发指南(环境搭建及代码示例)》本文介绍Java与LibreOffice的集成方法,涵盖环境配置、API调用、文档转换、UNO桥接及REST接口等技术,提供... 目录1. 引言2. 环境搭建2.1 安装 LibreOffice2.2 配置 Java 开发环境2.3 配

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指