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

news2024/11/19 1:38:59

一、环境准备

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 ]
then
    echo Not Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
for host in hadoop131 hadoop132 hadoop133
do
    echo ====================  $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:$pdir
            else
                echo $file does not exists!
        fi
    done
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 ]
then
    echo Not Enough Arguement!
    exit;
fi

#2. 遍历集群所有机器
for host in hadoop131 hadoop132 hadoop133
do
	echo ------  $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.coloradmin.cn/o/1488191.html

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

相关文章

双运算放大器,具有较宽的工作电压范围,转换速率高。采用DIP8、SOP8两种封装形式——D4510

D4510是一块双运算放大器&#xff0c;具有较宽的工作电压范围&#xff0c;转换速率高&#xff0c;相位补偿等特性。电路能在低电源电压下:工作,电源电压范围:双电源为1V-3.5V和单电源电压为2V~7V。 主要特点&#xff1a; ● 低电压工作 ● 转换速率高 ● 动态输出范围宽 ● 封…

2093409-57-3,DBCO PEG3 NH2,可以在无铜条件下与多种含有叠氮基的分子进行反应

2093409-57-3&#xff0c;二苯并环辛炔-三聚乙二醇-胺&#xff0c;DBCO-PEG3-amine&#xff0c;DBCO PEG3 NH2&#xff0c;可以在无铜条件下与多种含有叠氮基的分子进行反应&#xff0c;能够与其他分子进行偶联 您好&#xff0c;欢迎来到新研之家 文章关键词&#xff1a;2093…

数据库安全的重要性

数据库作为信息系统的核心&#xff0c;不仅承载着海量的关键数据&#xff0c;还负责向各类用户提供高效、可靠的信息服务。在网络技术高度发展的今天&#xff0c;数据库的安全性显得尤为关键。为了防范不法分子的攻击&#xff0c;维护数据完整性和可靠性&#xff0c;数据库安全…

老年人居家安全问题,全视通社区居家养老解决方案来赋能

近年来&#xff0c;老年人居家环境问题逐渐受到社会的关注。从新闻报道得知&#xff0c;传统居家环境对老年人存在诸多挑战&#xff0c;比如在入户空间、起居&#xff08;室&#xff09;厅、卧室、卫生间、厨房等区域。这些挑战不仅影响老年人的生活质量&#xff0c;还可能导致…

“找不到msvcr90.dll无法启动软件如何解决

msvcr90.dll 是一个属于 Microsoft Visual C 2008 Redistributable Package 的动态链接库&#xff08;DLL&#xff09;文件。在Windows操作系统中&#xff0c;许多应用程序特别是那些使用Visual Studio 2008编译器开发的程序&#xff0c;在运行时可能需要调用这个库中的函数和资…

基于小红书评论的文本词语频数挖掘和词云图

import pandas as pd df pd.read_csv(小红书评论.csv) # 读取小红书评论数据 text .join(df[内容].astype(str)).strip() # 将内容列所有数据合成字符串 print(text) 使用jieba库&#xff0c;对文本数据进行分词&#xff0c;并统计出现频数 import jieba from collectio…

Maven实战之聚合

聚合&#xff1a;一条命令构建多个模块。 父子关系&#xff0c;account-aggregator与account-email、account-persist为父子关系 <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance" xsi:schem…

6、JavaWeb-Mybatis

P116 Mybatis-入门 Mybatis是一款优秀的持久层框架&#xff0c;用于简化JDBC的开发。 持久层就是三层控制中的Dao层&#xff0c;数据访问层/持久层&#xff0c; P117 Mybatis-入门-快速入门程序 步骤&#xff1a; 创建springboot工程&#xff0c;数据表和实体类 引入mybat…

盘点Unity几款编辑器扩展工具

unity编辑器一个不容忽视的强大之处就是非常易于自定义扩展工具&#xff0c;来满足各种各样的美术、策划及程序上的需求。今天为大家介绍Asset Store资源商店中几款实用的编辑器扩展工具&#xff0c;帮助大家直接在Unity编辑器中完成3D建模与调整工作&#xff0c;免去与其它软件…

【网站项目】139选课排课系统

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

栈与队列力扣经典例题20. 有效的括号1047. 删除字符串中的所有相邻重复项150. 逆波兰表达式求值

对于栈与队列&#xff0c;我们首先要搞清楚&#xff0c;栈是先入后出&#xff0c;而队列是先入先出&#xff0c;利用这个特性&#xff0c;我们来判断题目用什么STL容器&#xff0c;便于我们去解决问题 20. 有效的括号 这道题&#xff0c;首先我们要知道哪些情况&#xff0c;是会…

Kubernetes的Sevice管理

服务原理: 所有服务都是根据这个服务衍生或者变化出来,根服务---- 服务感知后端靠标签 slelector 标签选择器 kubectl label pods web1 appweb kubectl cluter-info dump | grep -i service-cluster-ip-range 服务ip取值范围 Service 管理: 创建服务: --- kind: Serv…

C++ //练习 10.2 重做上一题,但读取string序列存入list中。

C Primer&#xff08;第5版&#xff09; 练习 10.2 练习 10.2 重做上一题&#xff0c;但读取string序列存入list中。 环境&#xff1a;Linux Ubuntu&#xff08;云服务器&#xff09; 工具&#xff1a;vim 代码块 /******************************************************…

Vue3:用vite创建Vue3项目

一、简介 vite是新一代前端构建工具&#xff0c;官网地址&#xff1a;https://vitejs.cn vite的优势如下&#xff1a; 轻量快速的热重载&#xff08;HMR&#xff09;&#xff0c;能实现极速的服务启动。对 TypeScript、JSX、CSS 等支持开箱即用。真正的按需编译&#xff0c;不…

Linux配置网卡功能

提示:工具下载链接在文章最后 目录 一.network功能介绍二.配置network功能2.1 network_ip配置检查 2.2 network_br配置2.2.1 配置的网桥原先不存在检查2.2.2 配置的网桥已存在-修改网桥IP检查2.2.3 配置的网桥已存在-只添加网卡到网桥里检查 2.3 network_bond配置检查 2.4 netw…

王者荣耀整蛊搭建直播新玩法/obs贴纸配置教程

最近很火的王者荣耀整蛊直播&#xff0c;相信很多玩王者的玩家也想开一个直播&#xff0c;但是看到这种直播娱乐效果很有意思也想搭建一个&#xff0c;这里梦哥给大家出了一期搭建的教程&#xff01; 进阶版视频教程&#xff1a; 这期的教程是进阶版新玩法升级&#xff0c;具体…

动态gif怎么在线制作?轻松实现gif在线制作的小窍门

日常我们在使用聊天软件聊天时会使用一些好玩有趣的gif表情包&#xff0c;其实很多gif表情包都是从视频中的提取出来的画面。那么&#xff0c;如何将视频转换成gif动画&#xff1f;通过使用在线动画制作&#xff08;https://www.gif.cn/&#xff09;工具就能轻松实现这一操作&a…

大模型(LLM)的训练语料信息汇总

大规模语料是模型训练的基础 大模型的训练&#xff0c;大规模的语料是很重要的 大型语言模型在许多自然语言处理任务上取得了显著进展&#xff0c;研究人员正在转向越来越大的文本语料库进行训练 大多数基于Transformer的大型语言模型 (LLM) 都依赖于英文维基百科和Common C…

深入探讨 AutoGPT:彻底改变游戏的自主 AI

原文地址&#xff1a;Deep Dive into AutoGPT: The Autonomous AI Revolutionizing the Game 2023 年 4 月 24 日 AutoGPT 是一个功能强大的工具&#xff0c;它通过 API 使用 GPT-4 和 GPT-3.5&#xff0c;通过将项目分解为子任务并在自动循环中使用互联网和其他工具来创建完…

AutoGPT实现原理

AutoGPT是一种利用GPT-4模型的自动化任务处理系统&#xff0c;其主要特点包括任务分配、多模型协作、互联网访问和文件读写能力以及上下文联动记忆性。其核心思想是通过零样本学习&#xff08;Zero Shot Learning&#xff09;让GPT-4理解人类设定的角色和目标&#xff0c;并通过…