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.pswp.cn/web/16049.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/16049.shtml
英文地址,請注明出處:http://en.pswp.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;的方法取決于你使用…