大數據學習筆記【一】:Hadoop-3.1.2完全分散式環境搭建(Windows 10)

来源:https://www.cnblogs.com/buerhx/archive/2019/07/30/11267212.html
-Advertisement-
Play Games

一、前言 Hadoop原理架構本人就不在此贅述了,可以自行百度,本文僅介紹Hadoop-3.1.2完全分散式環境搭建(本人使用三個虛擬機搭建)。 首先,步驟: ① 準備安裝包和工具: hadoop-3.1.2.tar.gz jdk-8u221-linux-x64.tar.gz(Linux環境下的JD ...


一、前言

  Hadoop原理架構本人就不在此贅述了,可以自行百度,本文僅介紹Hadoop-3.1.2完全分散式環境搭建(本人使用三個虛擬機搭建)。

  首先,步驟:

  ① 準備安裝包和工具

    •   hadoop-3.1.2.tar.gz
    •   jdk-8u221-linux-x64.tar.gz(Linux環境下的JDK)
    •   CertOS-7-x86_64-DVD-1810.iso(CentOS鏡像)
    • 工具:WinSCP(用於上傳文件到虛擬機),SecureCRTP ortable(用於操作虛擬機,可複製粘貼Linux命令。不用該工具也可以,但是要純手打命令),VMware Workstation Pro

  ② 安裝虛擬機:本人使用的是VMware Workstation Pro,需要激活。(先最小化安裝一個虛擬機Master,配置完Hadoop之後再克隆兩個Slave)

  ③ 配置虛擬機:修改用戶名,設置靜態IP地址,修改host文件,關閉防火牆,安裝Hadoop,安裝JDK,配置系統環境,配置免密碼登錄(必要)。

  ④ 配置Hadoop:配置hadoop-env.sh,hdfs-site.xml,core-site.xml,mepred-site.xml,yarn-site.xml,workers文件(在Hadoop-2×中是slaves文件,用於存放從節點的主機名稱,或者IP地址)

  ⑤ 克隆虛擬機:克隆兩個Slave,主機名稱分別是Slave1,Slave2。然後修改Slave的Hadoop配置。

  ⑥ namenode格式化:分別對Master、Slave1,Slave2執行hadoop namenode -format命令。

  ⑦ 啟動hdfs和yarn:在Master上執行start-all.sh命令。待啟動完成之後,執行jps命令查看進程,應包含namenode,secondarynamenode,resourcemaneger三個進程。Slave上有datanode,nodemanager進程。

  ⑧ 檢查測試:先修改真實主機的host(IP地址與Master的映射)在瀏覽器中輸入Master:9870回車,進入hdfs,點擊上方datanode應該可以看到下麵有兩個節點;輸入Master:8088回車,進入資源調度管理(yarn)

 

好了,開始吧。

二、準備工具

  hadoop-3.1.2.tar.tz下載地址:http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz

  jdk-8u221-linux-x64.tar.gz下載地址:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

  CentOS下載地址:http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1810.iso

  WinSCP下載地址: https://winscp.net/eng/download.php

  SecureCRTP ortable下載地址: http://fs2.download82.com/software/bbd8ff9dba17080c0c121804efbd61d5/securecrt-portable/scrt675_u3.exe

  VMware Workstation Pro下載地址:http://download3.vmware.com/software/wkst/file/VMware-workstation-full-15.1.0-13591040.exe

  附VMware Workstation Pro秘鑰

  YG5H2-ANZ0H-M8ERY-TXZZZ-YKRV8

  UG5J2-0ME12-M89WY-NPWXX-WQH88

  UA5DR-2ZD4H-089FY-6YQ5T-YPRX6

三、安裝虛擬機

  此步略,詳情之後發佈

四、配置虛擬機

  1.修改用戶名:

hostnamectl --static set-hostname Master

  2.設置靜態IP地址

  首先查看一下原本自動獲取到的網關和DNS,記下來

[root@Master ~]# cat /etc/resolv.conf
# Generated by NetworkManager
nameserver 192.168.28.2 //DNS

[root@Master ~]# IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
default         192.168.28.2(網關)    0.0.0.0         UG        0 0          0 ens33
192.168.28.0    0.0.0.0         255.255.255.0   U         0 0          0 ens33

[root@Master ~]# vi /etc/sysconfig/network-scripts/ifcfg-ens33  //修改ifcfg-ens33文件,執行此命令後進入如下界面

  

  進入界面後按“I”鍵進入編輯模式,修改或添加圖中標紅部分。“static”表示靜態地址,“netmask”子網掩碼,gateways是網關,設置為上一步查看得到的即可。修改後按“esc”退出編輯模式。輸入":wq"保存退出。然後輸入以下代碼更新網路配置。

systemctl restart network

  3.修改hosts文件

  註明:本人設置Master的IP地址為192.168.28.132,Slave1和Slave2分別為192.168.28.133,192.168.28.134

  輸入以下代碼修改hosts文件(在真實主機中也需要添加):

vi /etc/hosts
添加:
192.168.28.132 Master
192.168.28.133 Slave1
192.168.28.134 Slave2

  4.關閉防火牆

  關閉防火牆代碼:

systemctl stop firewalld.service  //臨時關閉
systemctl disable firewalld.service  //設置開機不自啟

  5.安裝Hadoop和JDK

  先創建兩個文件夾:

mkdir /tools   //用來存放安裝包
mkdir /bigdata    //存放解壓之後的文件夾

  使用WinSCP上傳壓縮包:登錄後找到已下載好的壓縮包按如下步驟點擊上傳即可。

 

  上傳文件後,虛擬機端進入tools文件夾並解壓文件:

cd /tools  //進入tools文件夾
tar -zvxf jdk-8u221-linux-x64.tar.gz  -C /bigdata/     //解壓文件到bigdata目錄下
tar -zvxf hadoop-3.1.2.tar.gz -C /bigdata/

  6.配置系統環境

vi ~/.bash_profile
添加:
export JAVA_HOME=/bigdata/jdk1.8.0_221
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export HADOOP_HOME=/bigdata/hadoop-3.1.2
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

保存退出,讓環境變數生效:
source ~/.bash_profile

  7.配置免密登錄(重要)

ssh-keygen -t rsa     (直接回車3次)
cd ~/.ssh/
ssh-copy-id -i id_rsa.pub root@Master 
ssh-copy-id -i id_rsa.pub root@Slave1 
ssh-copy-id -i id_rsa.pub root@Slave2 

測試是否成功配置(在配置完Slave之後測試):
ssh Slave1
可以登錄到Slave1節點

五、配置Hadoop

  Hadoop-3.1.2中有許多坑,在2X版本中有些預設的不需要特別配置,但在Hadoop-3.1.2中需要。

  hadoop-env.sh配置:

cd  /bigdata/hadoop-3.1.2/etc/hadoop/
vi hadoop-env.sh
添加:
export JAVA_HOME=/bigdata/jdk1.8.0_221
export HADOOP_HOME=/bigdata/hadoop-3.1.2
export PATH=$PATH:/bigdata/hadoop-3.1.2/bin
export HADOOP_OPTS="-Djava.library.path=${HADOOP_HOME}/lib/native"  
export HADOOP_PID_DIR=/bigdata/hadoop-3.1.2/pids     //PID存放目錄,若沒有此配置則預設存放在tmp臨時文件夾中,在啟動和關閉HDFS時可能會報錯
#export HADOOP_ROOT_LOGGER=DEBUG,console   //先註釋掉,有問題可以打開,將調試信息列印在console上

  hdfs-site.xml:

<configuration>
       <property>
          <name>dfs.replication</name>    //冗餘度,預設為3
          <value>1</value>
	</property>
	<property>
		<name>dfs.datanode.data.dir</name>
		<value>/bigdata/hadoop-3.1.2/dfs/tmp/data</value>
	</property>
	<property>
		<name>dfs.namenode.name.dir</name>
		<value>/bigdata/hadoop-3.1.2/dfs/tmp/name</value>
	</property>
	<property>
		<name>dfs.permissions</name>
		<value>false</value>
	</property>
</configuration>

  mapred.site.xml:

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <property>
        <name>mapred.job.tracker</name>
        <value>Master:9001</value>
    </property>
</configuration>

  yarn-site.xml:

<configuration>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>Master</value>
    </property>
<property>
	<name>yarn.log-aggregation-enable</name>
	<value>true</value>
</property>
<property>
	<name>yarn.log-aggregation.retain-seconds</name>
	<value>604800</value>
</property>
</configuration>

  core-site.xml:

<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://Master:9000</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/bigdata/hadoop-3.1.2/tmp</value>
    </property>
</configuration>

  workers:把預設的localhost刪掉

Slave1 192.168.28.133
Slave2 192.168.28.134

  yarn-env.sh  添加:

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

  進入/bigdata/hadoop-3.1.2/sbin,修改start-dfs.sh,stop-dfs.sh,都添加:

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

  

六、克隆虛擬機

  克隆兩個從節點虛擬機,主機名稱分別為Slave1,Slave2(需要進入虛擬機中修改),然後分別修改IP地址(具體方法上面有)重啟網路,重啟虛擬機。

  重啟完成後進行namenode格式化:分別對Master、Slave1,Slave2執行:

hadoop namenode -format

  對Master執行

start-all.sh  //啟動hdfs和yarn

  待完成後用jps查看進程:

[root@Master ~]# jps
7840 ResourceManager
8164 Jps
7323 NameNode
7564 SecondaryNameNode

  兩Slave的進程:

包含以下兩個:
DataNode
NodeManager

七、檢查

  瀏覽器輸入:在瀏覽器中輸入Master:9870回車,進入hdfs管理頁面,點擊上方datanode應該可以看到下麵有兩個節點;

  輸入Master:8088回車,進入資源調度管理(yarn)

  配置到此結束。接下來學習編寫Job程式。有任何問題歡迎留言討論。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 0x00 大落 一件蠻坑爹的事情,複製了找了好久的內容合集,在回別人的信息的時候又進行了複製其他內容的操作,結果吾覆蓋了的上一次複製的內容…… 於是開始找找 macOS 有沒有粘貼板記錄的東西,然後在 訪達 中找到了 剪貼板 : 但是這個剪貼板只有當前複製/剪切的內容……再次淚奔 果然已經沒辦法找到 ...
  • 1. 概述 海思提供的媒體處理軟體平臺(Media Process Platform,簡稱 MPP),可支持應用軟體快速 開發。該平臺對應用軟體屏蔽了晶元相關的複雜的底層處理,並對應用軟體直接提供 MPI(MPP Program Interface)介面完成相應功能。該平臺支持應用軟體快速開發以下 ...
  • 簡介: 主要原因是,我不會 vim ,在 linux 上修改 charts 的很蹩腳,所以就想著能不能再 windows 上執行 helm 命令,將 charts install linux 上搭建的 kubernetes 集群上,答案當然是可以的。本文將告訴大家怎麼在 windows 上執行 he ...
  • 保留個原文鏈接,避免被爬蟲爬了過去,以便後續更正補充:https://www.cnblogs.com/wy123/p/11273023.html MySQL參數繁多,是一個需要根據具體業務、軟硬體環境、負載壓力、性能需求、數據異常的容忍程度等等信息綜合考量的結果,不是一成不變的(當然,某些參數保持默 ...
  • 索引 [TOC] 初始索引 為什麼要有索引 什麼是索引 對索引存在的誤解 索引的原理 | 類別 | 樹名稱 | | | | | 二叉查找樹 (Binary Search Tree) | 二叉查找樹,笛卡爾樹,T 樹 | | 自平衡二叉查找樹 (Self balancing Binary Search ...
  • 1、什麼是索引 答: 索引是對資料庫表中的一列或者多列的數據進行排序的一種結構,使用索引可快速訪問數據表中的特定信息。 比如中國移動裡邊的表數據可能達到上億,這樣查詢數據用索引就派上了用場,因為使用索引可以快速檢索數據。 2、索引的分類 答: <1>從物理結構上 分為兩類:聚集索引和非聚集索引。 聚 ...
  • 伺服器上的mysql安裝了一個8.0.12版本的,本地的是一個5.7版本的,今天刪除了重新安裝的5.7版本的,下麵是所有的名命令 跟著走就會安裝上了。 配置源 wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.r ...
  • MySQL所使用的 SQL 語言是用於訪問資料庫的最常用標準化語言。 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...