欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

淺析Hadoop完全分布式集群搭建問題

 更新時間:2021年11月30日 15:12:14   作者:全棧程序猿  
Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎架構。本文重點給大家介紹Hadoop完全分布式集群搭建問題,感興趣的朋友跟隨小編一起看看吧

一、Hadoop是什么

  • Hadoop是一個由Apache基金會所開發(fā)的分布式系統(tǒng)基礎架構。
  • 主要解決,海量數(shù)據(jù)的存儲和海量數(shù)據(jù)的分析計算問題。
  • Hadoop并不只是單單一個技術,而是一個生態(tài)圈,里面包括Spark、Flume、HBase、Kafka、Sqoop、Hive、Oozie、Azkaban、Zookeeper。

二、Hadoop組成

1、Hadoop1.x

????????①:MapReduce(計算+資源調度)
②:HDFS(數(shù)據(jù)存儲)
③:Common(輔助工具)

2、Hadoop2.x

????????①:MapReduce(計算)
②:Yarn(資源調度)
③:HDFS(數(shù)據(jù)存儲)
④:Common(輔助工具)

三、Hadoop集群搭建所需工具(鏈接如下,自行下載)

  • JDK1.8
  • Hadoop2.7

四、Hadoop集群配置前期準備

1.克隆虛擬機(克隆三臺,首先配置第一臺,剩下兩臺由于篇幅有限,不再復述,步驟和第一臺一樣)

在這里插入圖片描述
在這里插入圖片描述

修改主機名,我設置為hadoop102

hostnamectl set-hostname 你要設置的主機名

關閉防火墻

systemctl stop firewalld.service # 關閉防火墻

systemctl disable firewalld.service # 禁止開機自啟

配置虛擬機網(wǎng)絡,可以連通外網(wǎng)和主機
①:修改虛擬機網(wǎng)絡為NAT模式

在這里插入圖片描述

②:打開虛擬網(wǎng)絡編輯器,將我框起來的ip地址和子網(wǎng)掩碼記下來,繼續(xù)點擊NAT配設置,同樣記下來框起來的,后面要用。

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

③:從這里開始進入root模式,首先使用如下命令進入網(wǎng)絡配置,然后按照我的圖修改您的配置,請和我保持一致,沒有的東西就自己寫上,然后按照我的配置。

vim /etc/sysconfig/network-scripts/ifcfg-ens32 #電腦不同最后面的ens32可能不一樣,但是就找差不多的就行

在這里插入圖片描述

④:重啟網(wǎng)絡(配置到這里可以ping一下百度之類的,但是還沒全部完成,完全按照我的做,應該沒問題,我們還需要配置虛擬機之間的連通,所以另外兩臺虛擬機請按照上面的操作配置。)

systemctl start network.service

? ? ⑤:配置和另外兩臺的連通(我三臺分別叫hadoop102、hadoop103、hadoop104)

vim /etc/hosts

在這里插入圖片描述

⑥:測試連接,我們分別ping百度、主機、和另外兩臺虛擬機,如果如下圖,則證明配置成功。

在這里插入圖片描述

五、Hadoop運行環(huán)境搭建

????①:在/opt下面新建module和software,分別用來存放安裝包和程序

在這里插入圖片描述

②:使用連接工具將上面我提供的安裝包放入software,然后開始安裝jdk,首先卸載之前的jdk,命令如下

rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64

rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64

rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64

? ? ③:然后解壓jdk到module中

tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module/

? ? ④:然后配置jdk環(huán)境變量,首先獲取jdk路徑(在解壓后的目錄運行pwd命令,如下,將這個目錄保存下來)

[root@hadoop102 jdk1.8.0_144]$ pwd

/opt/module/jdk1.8.0_144

????⑤:打開/etc/profile文件

vim /etc/profile

? ? ⑥:在profile文件末尾添加JDK路徑,保存后退出

#JAVA_HOME

export JAVA_HOME=/opt/module/jdk1.8.0_144

export PATH=$PATH:$JAVA_HOME/bin

? ? ⑦:安裝hadoop,前面的步驟一樣,將安裝包解壓到module中,然后使用pwd獲取路徑保存,然后打開/etc/profile文件,在profile文件末尾添加JDK路徑,保存后退出。

##HADOOP_HOME
export
HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

? ? ⑧:讓修改后的文件生效

source/etc/profile

? ? ⑨:如下圖所示,即生效

在這里插入圖片描述

至此,一臺機器的前期準備工作已完成,另外兩臺完全按照一樣的步驟操作,按照我的一步一步來,肯定沒問題,該踩的坑我都踩過了hh~

六、Hadoop完全分布式集群環(huán)境正式搭建

1、編寫集群分發(fā)腳本xsync

????①:在/home/atguigu目錄下創(chuàng)建bin目錄,并在bin目錄下創(chuàng)建xsync文件

mkdir bin
cd bin/
touch xsync
vi xsync

? ? ②:文件內容如下

#!/bin/bash
#1 獲取輸入?yún)?shù)個數(shù),如果沒有參數(shù),直接退出
pcount=$#
if((pcount==0)); then
echo no args;
exit;
fi
#2 獲取文件名稱
p1=$1
fname=`basename $p1`
echo fname=$fname
#3 獲取上級目錄到絕對路徑
pdir=`cd -P $(dirname $p1); pwd`
echo pdir=$pdir
#4 獲取當前用戶名稱
user=`whoami`
#5 循環(huán)
for((host=103; host<105; host++)); do
echo ------------------- hadoop$host --------------   
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir
done

? ? ③:修改腳本 xsync 具有執(zhí)行權限

chmod 777 xsync

? ? ④:調用腳本形式:xsync 文件名稱

xsync /home/ironmanjay/bin

注:如果將xsync放到/home/atguigu/bin目錄下仍然不能實現(xiàn)全局使用,可以將xsync移動到/usr/local/bin目錄下。

2、集群配置

????這里我們首先配置hadoop102一個主機,配置好之后我們把配置文件使用上面的功能分發(fā)下去,這樣就實現(xiàn)了集群的配置。
①:配置core-site.xml,在文件中編寫如下配置(在hadoop目錄下)

vim core-site.xml
<!-- 指定HDFS中NameNode的地址-->
<property>
     <name>fs.defaultFS</name>
<value>hdfs://hadoop102:9000</value>
</property>

<!-- 指定Hadoop運行時產生文件的存儲目錄–>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>

????②:配置hadoop-env.sh

[root@hadoop102 hadoop]$ vim hadoop-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

? ? ③:配置hdfs-site.xml,在該文件中編寫如下配置

vim hdfs-site.xml
<property>
     <name>dfs.replication</name>
     <value>3</value>
</property>

<!-- 指定Hadoop輔助名稱節(jié)點主機配置 –>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop104:50090</value>
</property>

????④:配置yarn-env.sh

[root@hadoop102 hadoop]$ vim yarn-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

? ? ⑤:配置yarn-site.xml,在該文件中增加如下配置

vim yarn-site.xml
<!-- Reducer獲取數(shù)據(jù)的方式-->
<property>
     <name>yarn.nodemanager.aux-services</name>
     <value>mapreduce_shuffle</value>
</property>

<!-- 指定YARN的ResourceManager的地址–>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop103</value>
</property>

????⑥:配置mapred-env.sh

[root@hadoop102 hadoop]$ vim mapred-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_144

? ? ⑦:配置mapred-site.xml,在該文件中增加如下配置

[root@hadoop102 hadoop]$ cp mapred-site.xml.template mapred-site.xml
[root@hadoop102 hadoop]$ vim mapred-site.xml
<!-- 指定MR運行在Yarn上
-->
<property>
     <name>mapreduce.framework.name</name>
     <value>yarn</value>
</property>

? ? ⑧:在集群上分發(fā)配置好的Hadoop配置文件

xsync /opt/module/hadoop-2.7.2/

? ? ⑨:查看文件分發(fā)情況

cat /opt/module/hadoop-2.7.2/etc/hadoop/core-site.xml

3、SSH無密登錄配置

????①:生成公鑰和私鑰,然后敲(三個回車),就會生成兩個文件id_rsa(私鑰)、id_rsa.pub(公鑰)

[root@hadoop102 .ssh]$ ssh-keygen -t rsa

? ? ②:將公鑰拷貝到要免密登錄的目標機器上

ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104

注:還需要在hadoop102上采用root賬號,配置一下無密登錄到hadoop102、hadoop103、hadoop104;
還需要在hadoop103上采用atguigu賬號配置一下無密登錄到hadoop102、hadoop103、hadoop104服務器上。

4、群起集群

????①:配置slaves,向文件中增加如下內容,注意,嚴格按照我的格式,不允許有空格,文件中不允許有空行

cd /opt/module/hadoop-2.7.2/etc/hadoop/slaves

vim slaves

hadoop102

hadoop103

hadoop104

? ②:同步所有節(jié)點配置文件

xsync slaves

? ? ③:如果集群是第一次啟動,需要格式化NameNode(注意格式化之前,一定要先停止上次啟動的所有namenode和datanode進程,然后再刪除data和log數(shù)據(jù))

[root@hadoop102 hadoop-2.7.2]$ bin/hdfs namenode -format

? ? ④:(hadoop102) 啟動HDFS,終端輸入jps出現(xiàn)下圖即成功啟動HDFS

[root@hadoop102 hadoop-2.7.2]$ sbin/start-dfs.sh

在這里插入圖片描述

⑤:(hadoop103) 啟動YARN,終端輸入jps出現(xiàn)下圖即成功啟動YARN

[root@hadoop103 hadoop-2.7.2]$ sbin/start-yarn.sh

在這里插入圖片描述

注意:NameNode和ResourceManger如果不是同一臺機器,不能在NameNode上啟動 YARN,應該在ResouceManager所在的機器上啟動YARN。
⑥:Web端查看SecondaryNameNode
瀏覽器中輸入:http://hadoop102:50090/status.html
查看OverView信息,如下圖所示,即配置成功

在這里插入圖片描述

5、集群啟動/停止方式總結

????①:各個服務組件逐一啟動/停止

# 分別啟動/停止HDFS組件
hadoop-daemon.sh start / stop  namenode / datanode /secondarynamenode
# 啟動/停止YARN
yarn-daemon.sh start / stop  resourcemanager / nodemanager

? ? ②:各個模塊分開啟動/停止(配置ssh是前提)常用

# 整體啟動/停止HDFS
start-dfs.sh  /  stop-dfs.sh
# 整體啟動/停止YARN
start-yarn.sh  /  stop-yarn.sh

6、集群時間同步(必須root用戶)

????①:檢查ntp是否安裝,如下圖即安裝

rpm -qa|grep ntp

在這里插入圖片描述

②:修改ntp配置文件,修改內容如下

vim /etc/ntp.conf

a)修改1(授權192.168.1.0-192.168.1.255網(wǎng)段上的所有機器可以從這臺機器上查詢和同步時間)

#restrict 192.168.1.0

mask 255.255.255.0 nomodify notrap為

restrict 192.168.1.0 mask

255.255.255.0 nomodify notrap

b)修改2(集群在局域網(wǎng)中,不使用其他互聯(lián)網(wǎng)上的時間)
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst為
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst

c)添加3(當該節(jié)點丟失網(wǎng)絡連接,依然可以采用本地時間作為時間服務器為集群中的其他節(jié)點提供時間同步)
server 127.127.1.0
fudge 127.127.1.0 stratum 10

????③:修改/etc/sysconfig/ntpd 文件,增加內容如下(讓硬件時間與系統(tǒng)時間一起同步)

vim /etc/sysconfig/ntpd

SYNC_HWCLOCK=yes

? ? ④:重新啟動ntpd服務

service ntpd restart

? ? ⑤:設置ntpd服務開機啟動

chkconfig ntpd on

到此這篇關于淺析Hadoop完全分布式集群搭建問題的文章就介紹到這了,更多相關Hadoop集群搭建內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 淺談SpringBoot2.3 新特配置文件屬性跟蹤

    淺談SpringBoot2.3 新特配置文件屬性跟蹤

    這篇文章主要介紹了淺談SpringBoot2.3 新特配置文件屬性跟蹤,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-06-06
  • Spring EL表示式的運用@Value說明

    Spring EL表示式的運用@Value說明

    這篇文章主要介紹了Spring EL表示式的運用@Value說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • java實現(xiàn)圖書館管理系統(tǒng)

    java實現(xiàn)圖書館管理系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)圖書館管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-10-10
  • Eclipse 使用Maven構建SpringMVC項目

    Eclipse 使用Maven構建SpringMVC項目

    本文主要介紹在Eclipse下創(chuàng)建Maven項目構建SpringMVC框架的過程,講解的比較詳細,需要的朋友可以參考下。
    2016-06-06
  • 關于MybatisPlus配置雙數(shù)據(jù)庫驅動連接數(shù)據(jù)庫問題

    關于MybatisPlus配置雙數(shù)據(jù)庫驅動連接數(shù)據(jù)庫問題

    這篇文章主要介紹了MybatisPlus配置雙數(shù)據(jù)庫驅動連接數(shù)據(jù)庫的具體實現(xiàn),具體的業(yè)務邏輯,在service層的類或者方法上面添加@DataSource注解來指定該業(yè)務需要用到的數(shù)據(jù)源,需要的朋友可以參考下
    2022-01-01
  • 淺析JDBC的使用方法

    淺析JDBC的使用方法

    這篇文章主要介紹了JDBC的使用方法,幫助大家更好的理解和學習Java,感興趣的朋友可以了解下
    2020-08-08
  • 完整的logback配置示例ELK整合包含生成json日志

    完整的logback配置示例ELK整合包含生成json日志

    這篇文章主要為大家介紹了完整的logback配置示例ELK整合包含生成json日志,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-03-03
  • Java微信公眾平臺開發(fā)(14) 微信web開發(fā)者工具使用

    Java微信公眾平臺開發(fā)(14) 微信web開發(fā)者工具使用

    這篇文章主要為大家詳細介紹了Java微信公眾平臺開發(fā)第十四步,微信web開發(fā)者工具的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • springboot -sse -flux 服務器推送消息的方法

    springboot -sse -flux 服務器推送消息的方法

    這篇文章主要介紹了springboot -sse -flux 服務器推送消息的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-11-11
  • 深入了解JVM字節(jié)碼增強技術

    深入了解JVM字節(jié)碼增強技術

    這篇文章主要介紹了深入了解JVM字節(jié)碼增強技術,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11

最新評論