当前位置: 首页 > news >正文

hdfs伪分布式集群搭建

1 准备

  1. vmware 虚拟三台centos系统的节点
  2. 三台机器安装好jdk环境
  3. 关闭防火墙(端口太多,需要的自行去开关端口)
  4. hadoop压缩包解压至三台服务器

可在一台节点上配置完成后克隆为三台节点

2 host修改

vi /etc/hosts

在每个节点上添加三台机器的ip 域名解析

192.168.10.16 node1
192.168.10.17 node2
192.168.10.18 node3

后续hdfs注册时会自动像主节点注册且必须要dns域名

3 配置文件修改

配置文件位于hadoop解压目录下的

hadoop-3.3.2/etc/hadoop

3.1 core-site.xml修改

<!-- 配置 HDFS 主机地址与端口号 -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://node1:8020</value>
</property>
<!-- 配置 Hadoop 缓冲区-->
<property>
    <name>io.file.buffer.size</name>
    <value>131072</value>
</property>
<!-- 在Web Ul访问HDFS使用的用户名。->
<property>
	<name>hadoop.http.staticuser.user</name>
	<value>root</value>
</property>

3.2 hdfs-site.xml修改

<property>
    <name>dfs.datanode.data.dir.perm</name>
    <value>700</value>
</property>
<property>
    <name>dfs.namenode.name.dir</name>
    <value>/data/nn</value>
</property>
<property>
    <name>dfs.namenode.hosts</name>
    <value>192.168.10.16,192.168.10.17,192.168.10.18</value>
</property>

3.3 mapred-site.xml修改

<property>
	<name>mapreduce.framework.name</name>
	<value>yarns</value>
</property>
<!-- MR App Master环境变量。-->
<property>
	<name>yarn.app.mapreduce.am.env</name>
	<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR MapTask环境变量。-->
<property>
	<name>mapreduce.map.eny</name>
	<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<!-- MR ReduceTask环境变量。-->
<property>
	<name>mapreduce.reduce.eny</name>
	<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>

3.4 yarn-site.xml 修改

<!-- yarn集群主角色RM运行机器。-->
<property>
	<name>yarn.resourcemanager.hostname</name>
	<value>node1</value>
</property>
<!-- NodeManager上运行的附属服务。需配置成mapreduce_shutie,才可运行MR程序。-->
<property>
	<name>yarn.nodemanager.aux-services</name>
	<value>mapreduce_shuffle</value>
</property>
<!-- 每个容器请求的最小内存资源(以MB为单位)。-->
<property>
	<name>yarn.scheduler.minimum-allocation-mb</name>
	<value>512</value>
</property>
<!-- 每个容器请求的最大内存资源(以MB为单位)。-->
<property>
	<name>yarn.scheduler.maximum-allocation-mb</name>
	<value>2048</value>
</property>
<!-- 容器虚拟内存与物理内存之间的比率-->
<property>
	<name>yarn.nodemanager.vmem-pmem-ratio</name>
	<value>4</value>
</property>

<property>
	<name>yarn.nodemanager.resource-priority.enabled</name>
	<value>true</value>
</property>

3.5环境变量配置

vi /etc/profile

根据自己的安装目录修改

EXPORT JAVA_HOME=/root/jdk1.8
EXPORT JAVA_PATH=$JAVA_HOME/bin
EXPORT PATH=$JAVA_PATH:$PATH

EXPORT HADOOP_HOME=/hadoop-3.3.2/hadoop-3.3.2 
EXPORT HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
EXPORT HADOOP_LOG_DIR=$HADOOP_HOME/logs
EXPORT PATH=$PATH:$HADOOP_HOME/sbin
EXPORT PATH=$PATH:$HADOOP_HOME/bin

#hadoop启动用户
EXPORT HDFS_NAMENODE_USER=ROOT
EXPORT HDFS_DATANODE_USER=ROOT
EXPORT HDFS_SECONDARYNAMENODE_USER=ROOT
source /etc/profile

上述配置可以在一台机器上修改完成后在vmware上克隆为其他节点。使用docker可直接打包为镜像启动三个容器即可。

4.启动hdfs机器

命令目录,可自行加到环境变量里面

/root/hadoop-3.3.2/bin

4.1 node1 主节点启动

hdfs namenode初始化

./hadoop namenode -format

启动名称节点

hdfs --daemon start namenode

启动数据节点

hdfs --daemon start datanode

启动yarn 资源管理器

yarn --daemon start resourcemanager

启动yarn节点管理器

yarn --daemon start nodemanager

4.2启动node2

启动二次名称节点

hdfs --daemon start secondarynamenode

启动数据节点

hdfs --daemon start datanode

启动yarn节点管理器

yarn --daemon start nodemanager

4.3 启动node3

启动数据节点

hdfs --daemon start datanode

启动yarn节点管理器

yarn --daemon start nodemanager

启动日志查看

cd /root/hadoop-3.3.2/logs

在这里插入图片描述

对应的datanode、namenode、nodemanager、resourcemanager等,使用jps查看各个几点是否有服务未启动,并通过日志排查。
在这里插入图片描述
启动至此已完成

一键启动

一键启动需配置服务器之间免密登录,然后在/root/hadoop-3.3.2/etc/hadoop
/wokers配置服务器ip/域名

192.168.10.16
192.168.10.17
192.168.10.18

启动命令目录

cd /root/hadoop-3.3.2/sbin
  1. start-dfs.sh 自动启动所有节点 hdfs对应的 datanode|namenode|secondarynamenode
  2. start-yarn.sh 启动所有节点的yarn 对应的 resourcemanager|nodemanager
  3. start-all.sh 启动上述两者

hdfs 的ui

http://192.168.10.16:9870/
在这里插入图片描述点击 live Nodes 可看到数据节点

在这里插入图片描述

yarn的ui

http://192.168.10.16:8088
在这里插入图片描述
上诉显示即搭建成功

相关文章:

  • Golang | Leetcode Golang题解之第455题分发饼干
  • 鸿蒙harmonyos next flutter通信之EventChannel获取ohos系统时间
  • 掌握RocketMQ4.X消息中间件(一)-RocketMQ基本概念与系统架构
  • MySQL 日志 - Binlog
  • 精益驱动的敏捷开发
  • c++11新特性
  • 【C#生态园】突破异步编程难题:深度解析.NET平台下的异步工具与库
  • 如何移除 iPhone 上的网络锁?本文筛选了一些适合您的工具
  • 深度学习:基于MindSpore实现CycleGAN壁画修复
  • (11)MATLAB莱斯(Rician)衰落信道仿真2
  • ASP.NET Core 创建使用异步队列
  • Python并发编程挑战与解决方案
  • Git介绍--github/gitee/gitlab使用
  • Elasticsearch实战应用:构建高效搜索引擎
  • Python技巧:如何避免数据输入类型错误
  • Java毕业设计实战项目之基于SSM框架的民宿预定系统
  • 基于Hive和Hadoop的电信流量分析系统
  • ubuntu图形界面右上角网络图标找回解决办法
  • mysql设置表的某一个字段每天定时清零
  • vue3学习记录-computed
  • 秦洪看盘|预期改善,或迎来新的增量资金
  • 印度证实印巴已同意停火
  • 14岁女生瞒报年龄文身后洗不掉,法院判店铺承担六成责任
  • 悬疑推理联合书单|虫神山事件
  • 国家主席习近平同普京总统出席签字和合作文本交换仪式
  • 金融监管局:已设立74支私募股权投资基金,支持投资科技创新企业