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

相关文章

Java使用ANTLR4对Lua脚本语法校验详解

《Java使用ANTLR4对Lua脚本语法校验详解》ANTLR是一个强大的解析器生成器,用于读取、处理、执行或翻译结构化文本或二进制文件,下面就跟随小编一起看看Java如何使用ANTLR4对Lua脚本... 目录什么是ANTLR?第一个例子ANTLR4 的工作流程Lua脚本语法校验准备一个Lua Gramm

shell编程之函数与数组的使用详解

《shell编程之函数与数组的使用详解》:本文主要介绍shell编程之函数与数组的使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录shell函数函数的用法俩个数求和系统资源监控并报警函数函数变量的作用范围函数的参数递归函数shell数组获取数组的长度读取某下的

SpringShell命令行之交互式Shell应用开发方式

《SpringShell命令行之交互式Shell应用开发方式》本文将深入探讨SpringShell的核心特性、实现方式及应用场景,帮助开发者掌握这一强大工具,具有很好的参考价值,希望对大家有所帮助,如... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Redis分片集群的实现

《Redis分片集群的实现》Redis分片集群是一种将Redis数据库分散到多个节点上的方式,以提供更高的性能和可伸缩性,本文主要介绍了Redis分片集群的实现,具有一定的参考价值,感兴趣的可以了解一... 目录1. Redis Cluster的核心概念哈希槽(Hash Slots)主从复制与故障转移2.

微信公众号脚本-获取热搜自动新建草稿并发布文章

《微信公众号脚本-获取热搜自动新建草稿并发布文章》本来想写一个自动化发布微信公众号的小绿书的脚本,但是微信公众号官网没有小绿书的接口,那就写一个获取热搜微信普通文章的脚本吧,:本文主要介绍微信公众... 目录介绍思路前期准备环境要求获取接口token获取热搜获取热搜数据下载热搜图片给图片加上标题文字上传图片

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

MySQL双主搭建+keepalived高可用的实现

《MySQL双主搭建+keepalived高可用的实现》本文主要介绍了MySQL双主搭建+keepalived高可用的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,... 目录一、测试环境准备二、主从搭建1.创建复制用户2.创建复制关系3.开启复制,确认复制是否成功4.同

Mysql中深分页的五种常用方法整理

《Mysql中深分页的五种常用方法整理》在数据量非常大的情况下,深分页查询则变得很常见,这篇文章为大家整理了5个常用的方法,文中的示例代码讲解详细,大家可以根据自己的需求进行选择... 目录方案一:延迟关联 (Deferred Join)方案二:有序唯一键分页 (Cursor-based Paginatio