hadoop节点添加与删除测试

hadoop节点上下线

docker run -d --name hd1 -p 8888:8888 -p 2222:22 centos:basic init
docker run -d --name hd2 -p 8889:8889 centos:basic init
docker run -d --name hd3 centos:basic init
# hosts
echo "172.17.0.2 hadoop1
172.17.0.3 hadoop2
172.17.0.4 hadoop3">>/etc/hosts# 免密
ssh-keygen -t rsa -N '' -f /root/.ssh/id_rsa -q
ssh-copy-id -i /root/.ssh/id_rsa.pub root@hadoop1
ssh-copy-id -i /root/.ssh/id_rsa.pub root@hadoop2
ssh-copy-id -i /root/.ssh/id_rsa.pub root@hadoop3# 部署目录
mkdir /data# jdk
wget https://repo.huaweicloud.com/java/jdk/8u202-b08/jdk-8u202-linux-x64.tar.gz
tar xf jdk-8u202-linux-x64.tar.gz 
mv jdk1.8.0_202/ /data/java
echo "export JAVA_HOME=/data/java
export PATH=\$PATH:\$JAVA_HOME/bin" >>/etc/profile.d/hadoop_env.sh# hadoop
wget https://mirrors.tuna.tsinghua.edu.cn/apache/hadoop/common/hadoop-3.2.4/hadoop-3.2.4.tar.gz
tar xf hadoop-3.2.4.tar.gz
echo "export HADOOP_HOME=/data/hadoop
export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin">>/etc/profile.d/hadoop_env.sh

配置更改

1)配置 core-site.xml

cat /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://hadoop1: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><!--下线功能 --><property><name>dfs.hosts.exclude</name><value>/data/etc/hadoop/excludes</value></property>
</configuration>

2)配置 hdfs-site.xml

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

cat /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>hadoop1:8888</value></property><!-- 2nn web端访问地址--><property><name>dfs.namenode.secondary.http-address</name><value>hadoop2:8889</value></property><!--测试环境指定HDFS副本的数量2 --><property><name>dfs.replication</name><value>2</value></property><property><!--节点下线功能 --><name>dfs.hosts.exclude</name><value>/data/hadoop/etc/hadoop/excludes</value></property>
</configuration>

3)配置 mapred-site.xml

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

cat /data/hadoop/etc/hadoop/mapred-site.xml
<?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><property><!--节点下线功能 --><name>mapred.hosts.exclude</name><value>/data/hadoop/etc/hadoop/excludes</value></property>
</configuration>

4)配置 yarn-site.xml

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

cat /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>hadoop1</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

[root@d9bef3a9e577 hadoop]# cat  /data/hadoop/etc/hadoop/workers
hadoop1
hadoop2
hadoop3

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
# 同步数据,验证
rsync -a /data/ hadoop2:/data
rsync -a /data/ hadoop3:/data
ssh hadoop2 "source /etc/profile.d/hadoop_env.sh;java -version"
ssh hadoop3 "source /etc/profile.d/hadoop_env.sh;java -version"

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

#初始化集群;
/data/hadoop/bin/hdfs namenode -format#启动所有服务;
/data/hadoop/sbin/start-all.sh# 查看
[root@hadoop1 hadoop]# jps
8370 NodeManager
7636 DataNode
8042 ResourceManager
8571 Jps
7469 NameNode[root@hadoop2 hadoop]# jps
2354 SecondaryNameNode
2434 NodeManager
2243 DataNode
2559 Jps[root@hadoop3 hadoop]# jps
2370 Jps
2141 DataNode
2254 NodeManager访问  http://172.17.0.2:8888   http://172.17.0.3:8889
#查看服务进程;
ps -ef|grep -aiE hadoop
#查看服务监听端口;
netstat -ntpl
#执行JPS命令查看JAVA进程;
jps
#查看Hadoop日志内容;
tail -fn 100 /data/hadoop/logs/*.log#停止所有服务;
/data/hadoop/sbin/stop-all.sh
#kill方式停止服务;
ps -ef|grep hadoop|grep java |grep -v grep |awk '{print $2}'|xargs kill -9
sleep 2

添加节点

# namenode
[root@hadoop1 ~]# echo "172.17.0.5 hadoop4">>/etc/hosts   # 所有节点,新节点配置所有hosts
[root@hadoop1 ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@hadoop4
[root@hadoop1 ~]# scp /etc/profile.d/hadoop_env.sh  root@hadoop4:/etc/profile.d/[root@hadoop1 ~]# ssh hadoop4 "mkdir /data;source  /etc/profile.d/hadoop_env.sh;yum -y install rsync"[root@hadoop1 ~]# vi /data/hadoop/etc/hadoop/workers
hadoop4	#新增# 数据同步
[root@hadoop1 ~]# rsync  -a /data  root@hadoop4:/   --exclude=/data/hadoop/{data,logs}  --bwlimit=5000# hadoop4  
[root@hadoop4 ~]# hdfs --daemon start datanode
[root@hadoop4 ~]# yarn --daemon start nodemanager# namenode
[root@hadoop1 ~]# hdfs dfsadmin -refreshNodes
[root@hadoop1 ~]# hdfs dfsadmin -report | grep Live
Live datanodes (4):[root@hadoop1 ~]# hdfs dfsadmin -setBalancerBandwidth 10485760   # 10M
[root@hadoop1 ~]# hdfs balancer -threshold 1  # 表示以阈值1%运行(默认值10%) 参数设置的越小,整个集群就越平衡
在到 web 管理页面查看:

下线节点

[root@hadoop1 ~]# vi etc/hadoop/excludes
hadoop4
[root@hadoop1 ~]# hdfs dfsadmin -refreshNodes	# 刷新驱逐
Refresh nodes successful
[root@hadoop1 ~]# hdfs dfsadmin -report | grep -i status -B 2
--
Name: 172.17.0.5:9866 (hadoop4)
Hostname: 19287e3cce1b
Decommission Status : Decommissioned	# 当节点处于Decommissioned,表示关闭成功[root@hadoop4 ~]# hdfs --daemon stop datanode  #停止服务

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

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

相关文章

网络协议:CSMA/CD 和 CSMA/CA

当多台设备共享同一通信信道时&#xff0c;避免数据传输冲突至关重要。本文将探讨两种广泛使用的协议&#xff1a;CSMA/CD&#xff08;Carrier Sense Multiple Access with Collision Detection&#xff09;和CSMA/CA&#xff08;Carrier Sense Multiple Access with Collision…

【C语言】二叉树的实现

文章目录 前言⭐一、二叉树的定义&#x1f6b2;二、创建二叉树&#x1f3a1;三、二叉树的销毁&#x1f389;四、遍历二叉树1. 前序遍历2. 中序遍历3. 后序遍历4. 层序遍历 &#x1f332;五、二叉树的计算1. 计算二叉树结点个数2. 计算二叉树叶子结点的个数3. 计算二叉树的深度4…

一、Elasticsearch介绍与部署

目录 一、什么是Elasticsearch 二、安装Elasticsearch 三、配置es 四、启动es 1、下载安装elasticsearch的插件head 2、在浏览器&#xff0c;加载扩展程序 3、运行扩展程序 4、输入es地址就可以了 五、Elasticsearch 创建、查看、删除索引、创建、查看、修改、删除文档…

【MySQL】——并发控制

&#x1f4bb;博主现有专栏&#xff1a; C51单片机&#xff08;STC89C516&#xff09;&#xff0c;c语言&#xff0c;c&#xff0c;离散数学&#xff0c;算法设计与分析&#xff0c;数据结构&#xff0c;Python&#xff0c;Java基础&#xff0c;MySQL&#xff0c;linux&#xf…

计算机毕业设计 | springboot+vue房屋租赁管理系统(附源码)

1&#xff0c;绪论 1.1 课题来源 随着社会的不断发展以及大家生活水平的提高&#xff0c;越来越多的年轻人选择在大城市发展。在大城市发展就意味着要在外面有一处安身的地方。在租房的过程中&#xff0c;大家也面临着各种各样的问题&#xff0c;比如需要费时费力去现场看房&…

oj项目后端分析

1.菜单管理 我们菜单管理有菜单表(sys_menu)&#xff0c;还有用户角色表&#xff08;sys_role&#xff09;&#xff0c;菜单表是用于管理我们用户所拥有的权限&#xff0c;不同的用户所看到的页面是不一样的&#xff0c;由于一些用户他能够看到题库管理和考题管理&#xff0c;还…

Anaconda Anaconda支持什么编程语言的环境配置

Anaconda是一个数据科学和机器学习的开发环境&#xff0c;它支持多种编程语言的环境配置&#xff0c;包括&#xff1a; Python&#xff1a;Anaconda默认安装了Python和必需的Python库&#xff0c;可以方便地进行Python编程和数据分析。 R&#xff1a;Anaconda也可以配置R语言环…

Aws EC2 + Aws Cli + Terraform

1 什么是 Terraform&#xff1f; Terraform 是由 HashiCorp 创建的“基础架构即代码”(Infrastructure-as-Code&#xff0c;IaC)开源工具。Terraform 的配置语言是 HashiCorp Configuration Language&#xff08;HCL&#xff09;&#xff0c;用来替代更加冗长的 JSON 和 XML 等…

SpringBoot注解--09--idea创建spring boot项目,java版本只能选择17和21

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 idea创建spring boot项目1.问题描述2.原因3.解决方法方案一&#xff1a;升级JDK版本至17或更高方案二&#xff1a;替换Spring初始化的源https://start.aliyun.com i…

实时计算及异构计算随笔笔记

3、异构计算的典型应用 异构计算并不神秘&#xff0c;目前已渗透各个领域&#xff0c;不仅是PC领域&#xff0c;也包括了手持移动设备领域、行业领域&#xff0c;甚至是云计算、分布式计算领域。事实上&#xff0c;异构计算至少在应用端&#xff08;前台&#xff09;并不像它的…

Android 运行时权限

Android 6.0 及以后&#xff0c;如果你的应用需要用到一些危险权限&#xff0c;那么这些权限必须手动申请。 具体危险权限有哪些&#xff0c;可以通过下面这篇文章自行查询到&#xff1a; 使用 adb 命令列出设备所有危险权限 例如&#xff0c;读写文件就涉及到两个危险权限&am…

Unity 中获取调用者方法名

介绍 在 Unity 开发中&#xff0c;有时需要在代码中获取当前方法的调用者方法名&#xff0c;以便进行日志记录、调试等操作。本教程将详细介绍如何使用 C# 中的 StackTrace 类来实现这一功能&#xff0c;并将其封装成一个便捷的工具类&#xff0c;以方便在项目中的任何地方…

ES的安装以及配置+ik分词

环境&#xff1a;windows10、ES&#xff08;8.13.3&#xff09;、Kibana&#xff08;8.13.3&#xff09;、Logstash&#xff08;8.13.3&#xff09;、ik&#xff08;8.13.3&#xff09; 1.下载安装ES Download Elasticsearch | ElasticDownload Elasticsearch or the complet…

AI预测体彩排3采取888=3策略+和值012路一缩定乾坤测试5月26日预测第2弹

今天继续基于8883的大底进行测试&#xff0c;昨天的预测已成功命中&#xff01;今天继续测试&#xff0c;按照排三前面的规律&#xff0c;感觉要出对子了&#xff0c;所以本次预测不再杀对子&#xff0c;将采用杀一个和尾来代替。好了&#xff0c;直接上结果吧~ 首先&#xff0…

mongoengine,一个非常实用的 Python 库!

更多Python学习内容&#xff1a;ipengtao.com 大家好&#xff0c;今天为大家分享一个超酷的 Python 库 - mongoengine。 Github地址&#xff1a;https://github.com/MongoEngine/mongoengine 在现代应用程序开发中&#xff0c;NoSQL数据库因其灵活性和高性能而广受欢迎。MongoD…

软件需求规范说明模板

每个软件开发组织都会为自己的项目选用一个或多个标准的软件需求规范说明模板。有许多软件需求规范说明模板可以使用(例如ISO/IEC/IEEE2011;Robertson and Robertson2013)。如果你的组织要处理各种类型或规模的项目&#xff0c;例如新的大型系统开发或是对现有系统进行微调&…

concurrency 并行编程

Goroutine go语言的魅力所在&#xff0c;高并发。 线程是操作系统调度的一种执行路径&#xff0c;用于在处理器执行我们在函数中编写的代码。一个进程从一个线程开始&#xff0c;即主线程&#xff0c;当该线程终止时&#xff0c;进程终止。这是因为主线程是应用程序的原点。然后…

红黑树封装map和set

红黑树源代码 我们将由下列的KV模型红黑树来模拟封装STL库中的map和set 注意&#xff1a;为了实现封装map和set&#xff0c;我们需要对下列源码进行优化。 #pragma once #include<iostream> using namespace std; //枚举类型的颜色分类 enum Colour {RED,BLACK };//定…

【Python爬虫】图片验证码的处理

什么是图片验证码&#xff1f; 验证码&#xff08;CAPTCHA&#xff09;是&#xff02;Completely Automated Public Turing test to tell Computers and HumansApart”&#xff08;全自动区分计算机和人类的图灵测试&#xff09;的缩写&#xff0c;是一种区分用户是计算机还是人…

Markdown魔法手册:解锁高效写作的新技能

边使用边更新0.0... 文章目录 一、如何在Markdown中插入表情&#xff1f;二、文字样式设置1.文本颜色设置2.文本字号设置3.文本字体设置4. 实战演练5.黄色高亮 一、如何在Markdown中插入表情&#xff1f; 在Markdown中插入表情&#xff08;emoji&#xff09;的方法取决于你使用…