hadoop集群安装并配置

news2024/12/25 0:31:43

文章目录

  • 1.安装JDK 环境
  • 2.系统配置
    • 2.1修改本地hosts文件
    • 2.2创建hadoop 用户
    • 2.2 设置ssh免密(使用hadoop 用户生成)
  • 3.安装 hadoop 3.2.4
    • 3.1 安装hadoop
      • 3.1.1 配置Hadoop 环境变量
    • 3.2配置 HDFS
      • 3.2.1 配置 workers 文件
      • 3.2.2 配置hadoop-env.sh
      • 3.2.3 配置core-site.xml
      • 3.2.3 配置 hdfs-site.xml
      • 3.2.4 启动hdfs
    • 3.3 配置MapReduce
      • 3.3.1 配置 mapred-env.sh
      • 3.3.2配置 mapred-site.xml
    • 3.4配置yarn
      • 3.4.1配置 yarn-env.sh
      • 3.4.2 配置 yarn-site.xml
      • 3.4.3启动yarn 集群
  • 3.5hadoop集群启动

1.安装JDK 环境

JDK1.8下载链接
使用wget 下载到liunx 主机

#创建文件夹
mkdir /usr/app
# 进入文件夹
cd /usr/app
#下载java 
wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
#解压
tar -zvxf jdk-8u181-linux-x64.tar.gz 
#修改名称
mv  jdk-8u181-linux-x64 jdk.18
//配置环境变量
vim /etc/profile
export JAVA_HOME=/usr/app/jdk1.8   # java解压的路径
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JRE_HOME=$JAVA_HOME/jre
//加载
source /etc/profile

每台节点都安装jdk

2.系统配置

2.1修改本地hosts文件

配置本地hosts文件,后面我们直接使用hostname 去连接主机 不再输入ip地址

每个节点都执行

#编辑host文件
 vi /etc/hosts
#文件末尾添加自己的主机和hostname
192.168.56.103 hadoop01
192.168.56.104 hadoop02
192.168.56.105 hadoop03

保存后ping hadoop02 网络正常
在这里插入图片描述

2.2创建hadoop 用户

每台机器都指向

#新增用户
useradd hadoop 
#设置hadoop 用户密码为 123456
passwd hadoop 123456
#切换到hadoop 用户
su - hadoop 

2.2 设置ssh免密(使用hadoop 用户生成)

由于hadoop 一般为集群,我们安装时 直接使用ssh 命令 复制安装 hadoop 效率会更高
我们一般使用ssh 命令时会遇到输入密码验证的问题 我们可以提前配置免密操作

全部节点 执行该命令生成密钥,执行后一直按Enter 即可

#生成密钥
ssh-keygen -t rsa -b 4096

将密钥拷贝到其他两个子节点,命令如下:

ssh-copy-id -i hadoop01
ssh-copy-id -i hadoop02
ssh-copy-id -i hadoop03

结果打印在这里插入图片描述

3.安装 hadoop 3.2.4

国内下载地址 华为镜像
官网下载地址 官网链接

3.1 安装hadoop

在hadoop01 服务器下载hadoop安装包,如果不能连接外网请下载后上传到服务器

cd /usr/app
#下载
wget https://archive.apache.org/dist/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz
#解压
tar -zvxf hadoop-3.2.4.tar.gz
mv hadoop-3.2.4 hadoop 

3.1.1 配置Hadoop 环境变量

在/etc/profile文件底部追加如下内容

export HADOOP_HOME=/usr/app/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

从hadoop01 将hadoop安装文件夹远程复制到hadoop02、hadoop03

3.2配置 HDFS

配置HDFS集群,我们主要涉及到如下文件的修改

修改文件作用
workers配置从节点(DataNode)有哪些
hadoop-env.sh配置Hadoop的相关环境变量
core-site.xmlHadoop核心配置文件
hdfs-site.xmlHDFS核心配置文件

这些文件均存在与$HADOOP_HOME/etc/hadoop文件夹中。
ps:$HADOOP_HOME是后续我们要设置的环境变量,其指代Hadoop安装文件夹即/app/hadoop

3.2.1 配置 workers 文件

# 进入配置文件目录
cd etc/hadoop
# 编辑workers文件
vim workers
# 填入如下内容
hadoop01
hadoop02
hadoop03

3.2.2 配置hadoop-env.sh

# 填入如下内容
#JAVA_HOME,指明JDK环境的位置在哪
export JAVA_HOME=/usr/jdk
#HADOOP_HOME,指明Hadoop安装位置
export HADOOP_HOME=/usr/hadoop
#HADOOP_CONF_DIR,指明Hadoop配置文件目录位置
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
#HADOOP_LOG_DIR,指明Hadoop运行日志目录位置
export HADOOP_LOG_DIR=$HADOOP_HOME/logs

3.2.3 配置core-site.xml

<configuration>
<!--含义:HDFS文件系统的网络通讯路径
协议为hdfs:// namenode为hadoop01 namenode通讯端口为8020 -->
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoop01:8020</value>
  </property>
<!--含义:io操作文件缓冲区大小值:131072 bit-->
  <property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
  </property>
</configuration>

3.2.3 配置 hdfs-site.xml

<configuration>
<!--hdfs文件系统,默认创建的文件权限设置 值:700,即:rwx-->
  <property>
    <name>dfs.datanode.data.dir.perm</name>
    <value>700</value>
  </property>
<!--NameNode元数据的存储位置 值:/data/nn,在hadoop01节点的/data/nn目录下 -->
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/nn</value>
  </property>
  <!--NameNode允许哪几个节点的DataNode连接(即允许加入集群)hadoop01,hadoop02,hadoop03,这三台服务器被授权-->
  <property>
    <name>dfs.namenode.hosts</name>
    <value>hadoop01,hadoop02,hadoop03</value>
  </property>
  <!--hdfs默认块大小 值:268435456(256MB) -->
<property>
    <name>dfs.blocksize</name>
    <value>268435456</value>
  </property>
  <!--namenode处理的并发线程数 以100个并行度处理文件系统的管理任务-->
  <property>
    <name>dfs.namenode.handler.count</name>
    <value>100</value>
  </property>
<!--NameNode元数据的存储位置 值:/data/nn,在所有节点的/data/nn目录下-->
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/data/dn</value>
  </property>
</configuration>

目前,已经基本完成Hadoop的配置操作,可以从hadoop01 将hadoop安装文件夹远程复制到hadoop02、hadoop03

3.2.4 启动hdfs

# 确保以hadoop用户执行
su - hadoop
# 格式化namenode
hadoop namenode -format
# 一键启动hdfs集群
start-dfs.sh
# 一键关闭hdfs集群
stop-dfs.sh
# 如果遇到命令未找到的错误,表明环境变量未配置好,可以以绝对路径执行
/export/server/hadoop/sbin/start-dfs.sh
/export/server/hadoop/sbin/stop-dfs.sh

3.3 配置MapReduce

3.3.1 配置 mapred-env.sh

# 设置JDK路径
export JAVA_HOME=/usr/app/jdk1.8
# 设置JobHistoryServer进程内存为1G
export HADOOP_JOB_HISTORYSERVER_HEAPSIZE=1000
#设置日志级别为INFO
export HADOOP_MAPRED_ROOT_LOGGER=INFORFA

3.3.2配置 mapred-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    <description>MapReduce 的运行框架设置为YARN</description>
  </property>

  <property>
    <name>mapreduce.jobhistory.address</name>
    <value>hadoop01:10020</value>
    <description> 历史服务器通讯地址设置为hadoop01:10020</description>
  </property>
  <property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hadoop01:19888</value>
    <description>历史服务器web端口为hadoop01:19888</description>
  </property>
  <property>
    <name>mapreduce.jobhistory.intermediate-done-dir</name>
    <value>/data/mr-history/tmp</value>
    <description>历史信息在hdfs的记录临时路径</description>
  </property>
  <property>
    <name>mapreduce.jobhistory.done-dir</name>
    <value>/data/mr-history/done</value>
    <description>历史信息在hdfs的记录路径</description>
  </property>`在这里插入代码片`
<property>
  <name>yarn.app.mapreduce.am.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
  <description>设置环境变量地址</description>
</property>
<property>
  <name>mapreduce.map.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
  <description>设置环境变量地址</description>
</property>
<property>
  <name>mapreduce.reduce.env</name>
  <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
  <description>设置环境变量地址</description>
</property>
</configuration>

3.4配置yarn

3.4.1配置 yarn-env.sh

#设 置 JDK路径的环境变量
export JAVA_HOME=/usr/jdk1.8
#设置 HADOOP HOME的环境变量
export HADOOP_HOME=/export/server/hadoop
#设置配置文件路径的环境变量
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
#设置日志文件路径的环境变量
export HADOOP_LOG_DIR=$HADOOP_HOME/logs

3.4.2 配置 yarn-site.xml

<configuration>
<property>
    <name>yarn.log.server.url</name>
    <value>http://hadoop01:19888/jobhistory/logs</value>
    <description>历史服务器URL </description>
</property>

  <property>
    <name>yarn.web-proxy.address</name>
    <value>hadoop01:8089</value>
    <description> 代理服务器主机和端口</description>
  </property>

  <property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
    <description> 开启聚合日志</description>
  </property>

  <property>
    <name>yarn.nodemanager.remote-app-log-dir</name>
    <value>/tmp/logs</value>
    <descriptionn>程序日志HDFs的存储路径</description>
  </property>
  
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>node1</value>
    <description>>ResourceManager设置在hadoop01节点</description>
  </property>

  <property>
    <name>yarn.resourcemanager.scheduler.class</name>
    <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
    <description>选择公平调度</description>
  </property>

  <property>
    <name>yarn.nodemanager.local-dirs</name>
    <value>/data/nm-local</value>
    <description>NodeManger中间数据本地存储路径</description>
  </property>

  <property>
    <name>yarn.nodemanager.log-dirs</name>
    <value>/data/nm-log</value>
    <description>NodeManagers数据日志本地存储路径</description>
  </property>

  <property>
    <name>yarn.nodemanager.log.retain-seconds</name>
    <value>10800</value>
    <description>在NodeManager上保留日志文件的时间</description>
  </property>
  
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    <description>为MapReduce 程序开启Shuffle服务</description>
  </property>
</configuration>

在这里插入图片描述

3.4.3启动yarn 集群

  1. 一键启动YARN集群
$HADOOP_HOME/sbin/start-yarn.sh

会基于yarn-site.xml中配置的yarn.resourcemanager.hostname来决定在哪台机器上启动resourcemanager
会基于workers文件配置的主机启动NodeManager

  1. 一键停止YARN集群
 $HADOOP_HOME/sbin/stop-yarn.sh
  1. 在当前机器,单独启动或停止进程
$HADOOP_HOME/bin/yarn --daemon start|stop resourcemanager|nodemanager|proxyserver

start和stop决定启动和停止 可控制resourcemanager、nodemanager、proxyserver三种进程

  1. 历史服务器启动和停止
$HADOOP_HOME/bin/mapred --daemon start|stop historyserver

3.5hadoop集群启动

一键启动hadoop 集群:

 $HADOOP_HOME/sbin/start-all.sh

一键停止hadoop 集群

 $HADOOP_HOME/sbin/stop-all.sh

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

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

相关文章

【数字化转型】10大数字化转型能力成熟度模型01(IOMM)

一、前言 数字化转型是数据化能力建设的目标和价值&#xff0c;作为一个新兴的课题&#xff0c;目前为止并未出现一个统一的数字化转型成熟度模型。不同的企业和机构&#xff0c;根据自身的发展和认知&#xff0c;推出了自己的企业级或者准行业级标准。这些标准具有很强的参考意…

一本没有任何数学公式的自然语言处理入门书

ChatGPT 时代来了&#xff0c;AI 从旧时王谢堂前燕&#xff0c;飞入寻常百姓家。越来越多非 AI 领域 的软件开发者涌进 NLP(自然语言处理)领域。在这个快速发展的时代&#xff0c;如果这些软件开发 者要像读书那样先读 4 年本科、2 年硕士、3 年博士才能搞 AI&#xff0c;风口早…

Python:温度转换(摄氏度与华氏度)

Python:温度转换&#xff08;摄氏度与华氏度&#xff09; TempStrinput("请输入带有符号的温度值&#xff1a;") if TempStr[-1] in [F,f]:C(eval(TempStr[0:-1])-32)/1.8print("转换后的温度是{:.2f}C".format(C)) elif TempStr[-1] in[C,c]:F1.8*eval(T…

在Android中实现动态应用图标

在Android中实现动态应用图标 你可能已经遇到过那些能够完成一个神奇的技巧的应用程序——在你的生日时改变他们的应用图标&#xff0c;然后无缝切换回常规图标。这是一种引发你好奇心的功能&#xff0c;让你想知道&#xff0c;“他们到底是如何做到的&#xff1f;”。嗯&…

【EI会议征稿】第三届智慧交通、能源与动力国际学术会议(STEP 2023)

第三届智慧交通、能源与动力国际学术会议&#xff08;STEP 2023&#xff09; 2023 3rd International Conference on Smart Transportation, Energy and Power 第三届智慧交通、能源与动力国际学术会议 (STEP 2023) 将于2023年12月15-17日在中国三亚市隆重举行&#xff0c;会议…

使用vite+npm封装组件库并发布到npm仓库

组件库背景&#xff1a;使用elementplusvue封装了一个通过表单组件。通过JSX对el-form下的el-input和el-button等表单进行统一封装&#xff0c;最后达到&#xff0c;通过数据即可一键生成页面表单的功能。 1.使用vite创建vue项目 npm create vitelatest elementplus-auto-form…

Linux基础工具

&#x1f493;博主个人主页:不是笨小孩&#x1f440; ⏩专栏分类:数据结构与算法&#x1f440; C&#x1f440; 刷题专栏&#x1f440; C语言&#x1f440; &#x1f69a;代码仓库:笨小孩的代码库&#x1f440; ⏩社区&#xff1a;不是笨小孩&#x1f440; &#x1f339;欢迎大…

【轻松玩转MacOS】基本操作篇

引言 本文是系列的开篇&#xff0c;我将为大家介绍MacOS的基本操作。对于初次接触MacOS的用户来说&#xff0c;掌握这些基本操作是必不可少的。无论是启动和关机&#xff0c;还是使用键盘和鼠标&#xff0c;或者是快捷键的使用&#xff0c;这些基本操作都是你开始使用MacOS的第…

三星发布 Galaxy SmartTag 2

三星近日发布了一款新品 —— Galaxy SmartTag 2 追踪器&#xff0c;该款产品采用了全新的椭圆设计以取代上代 SmartTag 的菱形设计&#xff0c;这款的钥匙孔也比上代更大&#xff0c;并采用了金属圆环以防止磨损。 这款产品有黑、白2种颜色可供选择&#xff0c;支持 IP67 级防…

网络原理 - 详解

一&#xff0c;网络通信基础 1.1 IP地址 描述一个设备在网络上的地址&#xff0c;一般使用4个0~255之间的数字&#xff0c;并且使用三给 . 进行分割&#xff0c;如&#xff1a;127.0.0.0 1.2 端口号 端口号是一个2个字节的整数&#xff0c;用来区分一个主机上的不同应用程序…

全面解析HTTP协议

当谈到网络通信和Web开发时&#xff0c;HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一个非常重要的协议&#xff0c;它是用于在Web浏览器和服务器之间传输数据的基础协议。 什么是HTTP协议&#xff1f; HTTP是一种应用层协议&#xff0c;用于在客户端和服务器…

吸烟检测Y8N,支持C++,PYTHON,ANDROID

吸烟检测Y8N&#xff0c;支持C,PYTHON,ANDROID 现在&#xff0c;深度学习已经非常流行&#xff0c;最新出来的YOLOV8&#xff0c;更是将精度和速度达到极限。训练一个目标很简单&#xff0c;首先&#xff0c;标记图片&#xff1b;然后训练得到PT模型&#xff1b;最后转换成ONNX…

烟花爆竹厂如何做到0风险0爆炸事故?AI+视频监控平台给出答案

由于烟花爆竹具有易燃易爆风险&#xff0c;稍有不慎就会发生严重事故&#xff0c;而烟花爆竹厂区作为大量烟花爆竹存放地点&#xff0c;厂区面积大、工作人员杂乱&#xff0c;甚至有很多厂区原料存放不当&#xff0c;给日常的安全管理带来极大的压力&#xff0c;利用信息化手段…

掌动智能:性能压力测试的重要性

采用性能压力测试可以帮助企业预估系统容量、提升用户体验以及降低风险和成本。在软件开发过程中&#xff0c;将性能压力测试纳入测试策略的重要一环&#xff0c;将为企业的成功和用户满意度打下坚实的基础。 性能压力测试的重要性&#xff1a; 一、发现性能瓶颈 性能压力测试能…

【Linux】信号屏蔽与信号捕捉的原理与实现(附图解与代码)

这一篇的篇幅可能有点长&#xff0c;如果已经了解了以下两个知识点的同学可以自行跳到第三部分——信号屏蔽的实现。 不太了解的同学希望你们能够静下心来看完&#xff0c;相信一定会有不小的收获。那么话不多说&#xff0c;我们这就开始啦&#xff01;&#xff01;&#xff0…

企业防止泄密,应该做到哪些?(防止数据泄露的方法有哪些)

随着信息化时代的快速发展&#xff0c;信息泄露问题越来越普遍。一个数据泄露事件就可能导致企业巨额损失&#xff0c;甚至影响用户的安全和隐私。因此&#xff0c;如何防止失泄密问题的发生是企业和个人都需要重视的事情。下面介绍一些具体的方法和措施来防止失泄密问题发生。…

FR问题记录

1. 问题&#xff1a;下拉框搜索查询时&#xff0c;出现所有的搜索信息 解决方法&#xff1a;使用数据集sql进行数据筛选 在数据库查询中使用where条件筛选&#xff0c;如 ${IF(LEN(所属省份) 0,"","AND province in (" 所属省份 ")")}参考…

百度统计统计第三方网站的浏览量和访问量

百度统计简介 百度统计——领先的中文网站分析平台 百度统计是百度推出的一款免费的专业网站流量分析工具&#xff0c;能够告诉用户访客是如何找到并浏览用户的网站&#xff0c;在网站上做了些什么&#xff0c;有了这些信息&#xff0c;可以帮助用户改善访客在用户的网站上的…

【单调栈】下一个更大元素 I

文章目录 Tag题目来源题目解读解题思路方法一&#xff1a;暴力枚举方法二&#xff1a;单调栈哈希表 知识回顾单调栈 写在最后 Tag 【单调栈哈希表】【数组】 题目来源 496. 下一个更大元素 I 题目解读 找出 nums1 中数字 x 在 nums2 中的位置&#xff0c;并找出在 nums2 中比…

【SpringBoot】文件分片上传、合并

背景 在上传大型文件时&#xff0c;一般采用的都是分片、断点续传等技术&#xff0c;这样不会导致因文件过大而造成系统超时或者过压等情况。 接下来我们进入教学 如果有帮助到您&#xff0c;麻烦请点击个收藏、赞&#xff0c;谢谢~ 一、实际效果图 整个前端网页的效果图&…