【数仓】Hadoop软件安装及使用(集群配置)

一、环境准备

1、准备3台虚拟机

  • Hadoop131:192.168.56.131
  • Hadoop132:192.168.56.132
  • Hadoop133:192.168.56.133

本例系统版本 CentOS-7.8,已安装jdk1.8

2、hosts配置,关闭防火墙

vi /etc/hosts添加如下内容,然后保存

192.168.56.131 hadoop131
192.168.56.132 hadoop132
192.168.56.133 hadoop133

关闭防火墙

systemctl stop firewalld

3、配置证书登录(免秘钥)

三台服务器都要操作一遍

ssh-keygen -t rsa -N '' -f /root/.ssh/id_rsa -q
ssh-copy-id -i /root/.ssh/id_rsa.pub root@hadoop131
ssh-copy-id -i /root/.ssh/id_rsa.pub root@hadoop132
ssh-copy-id -i /root/.ssh/id_rsa.pub root@hadoop133

4、创建 Xsync 分发指令

rsync是Linux系统下的一个非常实用的数据备份和同步工具,它可以在本地或远程系统之间进行文件或目录的同步和备份。这个指令的基本原理是通过对比源文件和目标文件的差异,只复制差异部分,从而提高数据传输的效率。

由于 xsync 是对 rsync 的再封装,因此需要先安装 rsync

yum install -y rsync

三台服务器都要安装 rsync

本节内容参考:xsync 集群同步工具

在 /usr/bin 下新建 xsync.sh

vi /usr/bin/xsync.sh

将以下内容粘贴到 xsync.sh 脚本中

#!/bin/bash#1. 判断参数个数
if [ $# -lt 1 ]
thenecho Not Enough Arguement!exit;
fi#2. 遍历集群所有机器
for host in hadoop131 hadoop132 hadoop133
doecho ====================  $host  ====================#3. 遍历所有目录,挨个发送for file in $@do#4. 判断文件是否存在if [ -e $file ]then#5. 获取父目录pdir=$(cd -P $(dirname $file); pwd)#6. 获取当前文件的名称fname=$(basename $file)ssh $host "mkdir -p $pdir"rsync -av $pdir/$fname $host:$pdirelseecho $file does not exists!fidone
done

修改文件权限

chmod 777 /usr/bin/xsync.sh

5、创建批量执行脚本 xcall.sh

创建文件xcall.sh

vi /usr/bin/xcall.sh
# 修改文件权限
chmod 777 /usr/bin/xcall.sh

复制如下内容

#!/bin/bash#1. 判断参数个数
if [ $# -lt 1 ]
thenecho Not Enough Arguement!exit;
fi#2. 遍历集群所有机器
for host in hadoop131 hadoop132 hadoop133
doecho ------  $host  ------ssh $host "$*"
done

二、安装配置Hadoop

1、下载Hadoop并安装

# 下载Hadoop软件包
wget --no-check-certificate https://dlcdn.apache.org/hadoop/common/hadoop-3.3.6/hadoop-3.3.6.tar.gz# 解压安装
tar  -xzvf  hadoop-3.3.6.tar.gz
#创建Hdoop程序&数据目录;
mkdir -p /data/
#将Hadoop程序部署至/data/hadoop目录下;
mv hadoop-3.3.6/ /data/hadoop/
#查看Hadoop是否部署成功;
ls -l /data/hadoop/

2、配置Hadoop环境变量

配置环境变量,/etc/profile.d/hadoop_env.sh

export HADOOP_HOME=/data/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

使用source让新增环境生效

source /etc/profile

配置完成后分发到其他服务器

xsync.sh /etc/profile.d/hadoop_env.sh

3、Hadoop集群配置

1)配置 core-site.xml

vi /data/hadoop/etc/hadoop/core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><!-- 指定NameNode的地址 --><property><name>fs.defaultFS</name><value>hdfs://hadoop131:9000</value></property><!-- 指定Hadoop数据的存储目录 --><property><name>hadoop.tmp.dir</name><!-- /tmp/hadoop-${user.name} --><value>/data/hadoop/data</value><description>A base for other temporary directories.</description></property><!-- 配置HDFS网页登录使用的静态用户为hadoopuser --><property><name>hadoop.http.staticuser.user</name><value>hadoopuser</value></property><!-- 配置该hadoopuser(superuser)允许通过代理访问的主机节点 --><property><name>hadoop.proxyuser.hadoopuser.hosts</name><value>*</value></property><!--配置该hadoopuser(superuser)允许通过代理用户所属组--><property><name>hadoop.proxyuser.hadoopuser.groups</name><value>*</value></property><!--配置该hadoopuser(superuser)允许通过代理的用户 --><property><name>hadoop.proxyuser.hadoopuser.users</name><value>*</value></property>
</configuration>

2)配置 hdfs-site.xml

vi /data/hadoop/etc/hadoop/hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><!-- nn web端访问地址--><property><name>dfs.namenode.http-address</name><value>hadoop131:9870</value></property><!-- 2nn web端访问地址--><property><name>dfs.namenode.secondary.http-address</name><value>hadoop133:9868</value></property><!--测试环境指定HDFS副本的数量1 --><property><name>dfs.replication</name><value>1</value></property>
</configuration>

3)配置 mapred-site.xml

vi /data/hadoop/etc/hadoop/mapred-site.xml

使用yarn,如下配置

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>

4)配置 yarn-site.xml

vi /data/hadoop/etc/hadoop/yarn-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><!-- 设置ResourceManager的主机名 --><property><name>yarn.resourcemanager.hostname</name>  <value>hadoop131</value>  </property>  <!-- 设置NodeManager的辅助服务,通常为mapreduce_shuffle以支持MapReduce作业 --><property>  <name>yarn.nodemanager.aux-services</name>  <value>mapreduce_shuffle</value>  </property><!-- 设置每个NodeManager可用的内存量(以MB为单位) --><property>  <name>yarn.nodemanager.resource.memory-mb</name>  <value>8192</value>  </property><!--分别设置容器请求的最小和最大内存限制--><property>  <name>yarn.scheduler.minimum-allocation-mb</name>  <value>1024</value>  </property>  <property>  <name>yarn.scheduler.maximum-allocation-mb</name>  <value>8192</value>  </property><!--分别设置容器请求的最小和最大虚拟CPU核心数--><property><name>yarn.scheduler.minimum-allocation-vcores</name><value>1</value>  </property>  <property>  <name>yarn.scheduler.maximum-allocation-vcores</name><value>4</value>  </property>
</configuration>

4)修改 workers
vi /data/hadoop/etc/hadoop/workers

hadoop131
hadoop132
hadoop133

5)修改Hadoop默认启动、关闭脚本,添加root执行权限

cd /data/hadoop/sbin/
for i in `ls start*.sh stop*.sh`;do sed -i "1a\HDFS_DATANODE_USER=root\nHDFS_DATANODE_SECURE_USER=root\nHDFS_NAMENODE_USER=root\nHDFS_SECONDARYNAMENODE_USER=root\nYARN_RESOURCEMANAGER_USER=root\n\YARN_NODEMANAGER_USER=root" $i ;done

6)将hadoop131部署完成的hadoop所有文件、目录同步至其他两个节点

xsync.sh /data/hadoop/

4、启动hadoop

在启动hadoop之前,我们需要做一步非常关键的步骤,需要在Namenode上执行初始化命令,初始化name目录和数据目录。

#初始化集群;
/data/hadoop/bin/hdfs namenode -format
#停止所有服务;
/data/hadoop/sbin/stop-all.sh
#kill方式停止服务;
ps -ef|grep hadoop|grep java |grep -v grep |awk '{print $2}'|xargs kill -9
sleep 2
#启动所有服务;
/data/hadoop/sbin/start-all.sh

5、Hadoop集群验证

使用上面的xcall.sh命令查看进程

xcall.sh jps

结果如下

------ hadoop131 jps ------
7640 ResourceManager
7864 NodeManager
7260 DataNode
8877 Jps
7086 NameNode
------ hadoop132 jps ------
4549 DataNode
5479 Jps
4654 NodeManager
------ hadoop133 jps ------
4896 NodeManager
5733 Jps
4715 DataNode
4813 SecondaryNameNode

也可以分别查看3个节点Hadoop服务进程和端口信息

#查看服务进程;
ps -ef|grep -aiE hadoop
#查看服务监听端口;
netstat -ntpl
#执行JPS命令查看JAVA进程;
jps
#查看Hadoop日志内容;
tail -fn 100 /data/hadoop/logs/*.log

6、Hadoop WEB测试

根据如上Hadoop配置,Hadoop大数据平台部署成功,访问hadoop131 9870端口 http://192.168.56.131:9870/,可以看见如下页面:

在这里插入图片描述

访问Hadoop集群WEB地址:http://192.168.56.131:8088/,可以看见如下页面:

在这里插入图片描述

至此,Hadoop集群环境部署完成!

参考

  • https://hadoop.apache.org/
  • https://blog.csdn.net/xiaolong1155/article/details/131127712

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

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

相关文章

调试工具vue,react,redux

React Developer Tools Redux DevTools Vue devtools 使用浏览器官方组件扩展搜索安装

RTMP播放器和推送端支持enhanced RTMP H265(enhanced RTMP HEVC)

Enhancing RTMP, FLV 2023年7月31号正式发布&#xff0c;主要支持了HEVC(H.265)、VP9、AV1视频编码&#xff0c;很多开源项目已支持&#xff0c;我的播放器和推送端也改改&#xff0c;支持下enhanced rtmp H.265(HEVC). 播放端和推送端connect RTMP server时&#xff0c;要在co…

数据结构与算法之美学习笔记:56 | 算法实战(五):如何用学过的数据结构和算法实现一个短网址系统?

目录 前言短网址服务整体介绍如何通过哈希算法生成短网址&#xff1f;如何通过 ID 生成器生成短网址&#xff1f;总结引申 前言 本节课程思维导图&#xff1a; 短网址服务你用过吗&#xff1f;如果我们在微博里发布一条带网址的信息&#xff0c;微博会把里面的网址转化成一个更…

TensorBoard的使用,add_image()的使用。

在TensorBoard中&#xff0c;add_image()函数用于将图像数据添加到可视化中。它可以用于显示模型输入、输出、中间特征图等图像数据&#xff0c;以帮助开发者理解模型的运行情况。 add_image()的用法&#xff1a; 使用ctrl点击add_image() 注意&#xff1a;图片类型要求为 t…

怎么挑选立体式学习灯?五款大路灯分享,选对台灯很重要!

相较于传统台灯&#xff0c;大路灯能够提供更加宽广舒适的照明&#xff0c;更有效地解决光线不足以及光线刺眼带来的问题&#xff0c;以至于成为目前照明电器的新宠。但我们在选购产品时&#xff0c;仍不能掉以轻心&#xff0c;毕竟市面上劣质产品众多&#xff0c;特别是某些网…

2024pytest自动化测试框架学习(三)

在自动化测试中我们经常会针对某些测试方法编写前置测试数据&#xff0c;当测试方法执行完毕后再清理这些测试数据。之前我们接触的unittest框架中&#xff0c;使用setUp、tearDown方法来解决前置数据、后置数据销毁的问题。pytest为我们提供了更加强大灵活的fixtrue来完成该实…

连接未来:光路科技FR-TSN系列交换机驱动5G工业互联网进化

从最早的无线电话&#xff0c;到现在的5G&#xff0c;移动通信已经经历了巨大的变化。这些变化不仅仅是速度的提升&#xff0c;更是对我们生活方式的彻底改变。从最开始的语音通话&#xff0c;到现在的视频、游戏、社交媒体&#xff0c;移动通信让一切变得触手可及。 5G不仅仅…

【算法设计与分析】和相等的子数组

&#x1f4dd;个人主页&#xff1a;五敷有你 &#x1f525;系列专栏&#xff1a;算法分析与设计 ⛺️稳中求进&#xff0c;晒太阳 题目 给你一个下标从 0 开始的整数数组 nums &#xff0c;判断是否存在 两个 长度为 2 的子数组且它们的 和 相等。注意&#xff0c;这两个…

InfiniBand 200Gbps QSFP56 高速线缆/光缆和光模块解决方案

随着数据中心和人工智能迅速发展&#xff0c;对高速、低延迟和低功耗的数据传输需求变得至关重要。飞速&#xff08;FS&#xff09;提供针对各种高性能计算场景量身定制的各种InfiniBand线缆和光模块产品。本文旨在概述飞速&#xff08;FS&#xff09;200G InfiniBand HDR 光缆…

开源项目oshi-core介绍

oshi-core 是一个用 Java 编写的开源库&#xff0c;它允许开发人员轻松地获取有关操作系统的详细信息&#xff0c;包括硬件和系统资源。它是一个跨平台的库&#xff0c;可以在 Windows、Linux 和 macOS 上运行。oshi-core 提供了广泛的 API&#xff0c;用于检索有关 CPU、内存、…

【Unity】在Unity中导出WebGL并读取Excel数据的实现方法

在游戏开发中&#xff0c;数据的处理和导出是至关重要的环节之一。Unity作为一款强大的游戏开发引擎&#xff0c;提供了丰富的工具和功能来处理和导出数据&#xff0c;包括将游戏导出为WebGL应用&#xff0c;并读取外部数据文件&#xff0c;比如Excel表格。本文将介绍如何在Uni…

rocketmq+rocket-dashboard win10安装部署+注册为Windows服务

1.1 首先去官网下载zip包 选择自己需要的版本 下载 | RocketMQ 1.2 、下载后&#xff0c;解压到指定目录 1.3、配置RocketMQ环境变量 注意&#xff0c;看对应的版本需要jdk版本 1.4、启动mqnameserver 进入bin目录下&#xff0c;双击启动mqnamesrv.cmd 启动后&#xff0c;…