【數倉】Hadoop軟件安裝及使用(集群配置)

一、環境準備

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 ]
thenecho Not Enough Arguement!exit;
fi#2. 遍歷集群所有機器
for host in hadoop131 hadoop132 hadoop133
doecho ====================  $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:$pdirelseecho $file does not exists!fidone
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 ]
thenecho Not Enough Arguement!exit;
fi#2. 遍歷集群所有機器
for host in hadoop131 hadoop132 hadoop133
doecho ------  $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.pswp.cn/news/711587.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/711587.shtml
英文地址,請注明出處:http://en.pswp.cn/news/711587.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

ip獲取+歸屬地實現

1.背景 現在的社交平臺一般都需要展示用戶的歸屬地,這個功能有下面二個主要功能點,接下來我們來介紹下具體實現。 IP 獲取 IP 轉歸屬地 2.ip獲取 2.1 Http請求 對于controller的請求,我們只需要寫個攔截器,將用戶的ip設置進上下文即可,非常方便。 @Override public bo…

生成式AI設計模式:綜合指南

原文地址&#xff1a;Generative AI Design Patterns: A Comprehensive Guide 使用大型語言模型 (LLM) 的參考架構模式和心理模型 2024 年 2 月 14 日 對人工智能模式的需求 我們在構建新事物時&#xff0c;都會依賴一些經過驗證的方法、途徑和模式。對于軟件工程師來說&am…

物聯網與智慧城市的融合:構建智能化、便捷化、綠色化的城市未來

一、引言 隨著科技的飛速發展和城市化的不斷推進&#xff0c;物聯網技術正逐步滲透到城市的各個領域&#xff0c;成為推動智慧城市建設的核心力量。物聯網與智慧城市的融合&#xff0c;不僅為城市治理提供了高效、智能的解決方案&#xff0c;也為市民的生活帶來了前所未有的便…

如何在Node.js中使用定時器

在Node.js中使用定時器是一項常見且重要的任務&#xff0c;特別是在需要執行定時任務或者輪詢操作的情況下。Node.js提供了多種方式來實現定時器功能&#xff0c;包括setTimeout、setInterval和setImmediate等方法。本篇博客將介紹如何在Node.js中使用這些定時器&#xff0c;并…

(數據結構)二叉樹

8.二叉樹 8.1概述 二叉樹是一種基本的非線性數據結構&#xff0c;它是由n&#xff08;n>0&#xff09;個節點構成的有限集合。在二叉樹中&#xff0c;每個節點最多有兩個子節點&#xff0c;通常被稱作左孩子&#xff08;left child&#xff09;和右孩子&#xff08;right c…

把python完全卸載干凈

1.winR&#xff0c;輸入control回車&#xff0c;點擊程序和功能&#xff0c;在搜索框輸入python&#xff0c;右鍵點擊卸載 2、找到Python安裝路徑&#xff0c;把所有文件全部刪除。 安裝路徑可以打開CMD輸入&#xff1a;where python 3、強制刪除Python.exe 打開cmd&#xff…

科技企業如何做到FTP數據安全保護

在數字化浪潮的推動下&#xff0c;科技企業的數據已成為推動創新、提升效率、增強競爭力的核心資源。數據的重要性不言而喻&#xff0c;它不僅包含了客戶信息、市場分析、產品設計等關鍵信息&#xff0c;更是企業寶貴的資產。然而&#xff0c;隨著數據量的激增&#xff0c;數據…

視覺AIGC識別——人臉偽造檢測、誤差特征 + 不可見水印

視覺AIGC識別——人臉偽造檢測、誤差特征 不可見水印 前言視覺AIGC識別【誤差特征】DIRE for Diffusion-Generated Image Detection方法擴散模型的角色DIRE作為檢測指標 實驗結果泛化能力和抗擾動 人臉偽造監測&#xff08;Face Forgery Detection&#xff09;人臉偽造圖生成 …

LabVIEW最佳傳輸系統設計

LabVIEW最佳傳輸系統設計 介紹了基于LabVIEW軟件開發的最佳基帶傳輸系統和最佳帶通傳輸系統的設計。通過軟件仿真實現了脈沖成形濾波器和匹配濾波器的設計&#xff0c;證明了系統在消除碼間干擾和抗噪聲方面的優異性能。此設計不僅激發了學生的學習興趣&#xff0c;還有助于提…

智能家居控制系統(51單片機)

smart_home_control_system 51單片機課設&#xff0c;智能家居控制系統 使用及轉載請標明出處&#xff08;最好點個贊及star哈哈&#xff09; Github地址&#xff0c;帶有PPT及流程圖 Gitee碼云地址&#xff0c;帶有PPT及流程圖 ? 以STC89C52為主控芯片&#xff0c;以矩陣鍵…

Java必須掌握的繼承的概述

Java的繼承是面向對象編程中的一個核心概念&#xff0c;它允許一個類繼承另一個類的屬性和方法。這不僅有助于代碼的重用&#xff0c;還使得代碼的管理和維護變得更加容易。在準備大廠面試時&#xff0c;理解繼承的各個方面是非常重要的。以下是一些關于Java繼承的概述和可能出…

Linux基本指令(上)

在Linux中&#xff0c;將文件夾稱為目錄&#xff0c;后面的內容都與目錄相關。 1. ls指令 語法&#xff1a; ls [選項][目錄或文件] 功能&#xff1a;對于目錄&#xff0c;該命令列出該目錄下的所有子目錄與文件。對于文件&#xff0c;將列出文件名以及其他信息。 常用選項 …

MySQL的索引和B+tree結構

目錄 0.關于索引的常見面試題 1.什么是索引&#xff1f; 索引的優缺點 2.索引的數據結構&#xff0c;為什么InnoDb引擎使用Btree作為索引的數據結構&#xff1f; 分析怎樣的索引才是好的 二插搜索樹 紅黑樹 B-Tree BTree 哈希 為什么 InnoDB 存儲引擎選擇使用 Btree 索…

iTOP-3588開發板快速測試手冊Android12系統功能測試

RK3588是一款低功耗、高性能的處理器&#xff0c;適用于基于arm的PC和Edge計算設備、個人移動互聯網設備等數字多媒體應用&#xff0c;RK3588支持8K視頻編解碼&#xff0c;內置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800萬像素ISP&…

mac 配置faas 全局二進制命令

FaaS&#xff08;即功能即服務-Function as a Services&#xff09;是一種云計算服務&#xff0c;允許客戶執行代碼來響應事件&#xff0c;而無需管理通常與構建和啟動微服務應用程序相關的復雜基礎架構 在互聯網上托管軟件應用程序通常需要配置和管理虛擬服務器或物理服務器&…

洛谷題單_遞推與遞歸

P1255 數樓梯 - 洛谷 | 計算機科學教育新生態 (luogu.com.cn) //不滿分做法&#xff1a;沒有高精度 #include <bits/stdc.h> using namespace std; const int N5006; int dp[N];//dp[i]表示到第i節樓梯有dp[i]中方案 int main(){int n;cin>>n;dp[1]1;dp[0]1;for(i…

MySQL(基礎篇)——多表查詢

一.多表關系 一對多(多對一) 多對多一對一 1.一對多(多對一) a.案例&#xff1a;部門與員工的關系 b.關系&#xff1a;一個部門對應多個員工&#xff0c;一個員工對應一個部門 c.實現&#xff1a;在多的一方建立外鍵&#xff0c;指向一的一方的主鍵 2.多對多 a.案…

Elasticsearch入門-環境安裝ES和Kibana以及ES-Head可視化插件和瀏覽器插件es-client

Elasticsearch入門-環境安裝ES和Kibana 安裝 ES Windows安裝ESHead安裝瀏覽器插件 es-clientKibana 安裝 安裝es,安裝header 安裝kibana&#xff0c;安裝多種分詞器ik… 安裝 ES Windows安裝 ① 下載壓縮包并解壓官網鏈接&#xff1a;https://www.elastic.co/cn/downloads/ela…

JDK制作p12文件

生成密鑰對 首先&#xff0c;我們需要生成一對密鑰&#xff0c;用來進行證書的生成和簽名。可以使用Java的keytool工具來生成密鑰對。 keytool -genkeypair -alias mykey -keyalg RSA -keysize 2048 -validity 365 -keystore mykeystore.jks上述命令中的各個參數含義如下&…

canvas坐標系統 webgl坐標系統 uv紋理坐標系統 原點

一、canvas原點在左上角&#xff0c;x軸正方向向右&#xff0c;y軸正方向向下&#xff0c;一個點對應一個像素 二、webgl原點在正中間&#xff0c;x軸正方向向右&#xff0c;y軸正方向向上&#xff0c;數據顯示范圍在[-1,1]之間&#xff0c;超過此范圍不顯示數據 三、uv原點在左…