最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、Hadoop是什么

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

二、Hadoop組成

1、Hadoop1.x

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

2、Hadoop2.x

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

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

  • JDK1.8
  • Hadoop2.7

四、Hadoop集群配置前期準備

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

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

修改主機名,我設(shè)置為hadoop102

hostnamectl set-hostname 你要設(shè)置的主機名

關(guān)閉防火墻

systemctl stop firewalld.service # 關(guān)閉防火墻

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

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

在這里插入圖片描述

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

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

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

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

在這里插入圖片描述

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

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

? ? ②:文件內(nèi)容如下

#!/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í)行權(quán)限

chmod 777 xsync

? ? ④:調(diào)用腳本形式: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運行時產(chǎn)生文件的存儲目錄–>
<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服務(wù)器上。

4、群起集群

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

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,應(yīng)該在ResouceManager所在的機器上啟動YARN。
⑥:Web端查看SecondaryNameNode
瀏覽器中輸入:http://hadoop102:50090/status.html
查看OverView信息,如下圖所示,即配置成功

在這里插入圖片描述

5、集群啟動/停止方式總結(jié)

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

# 分別啟動/停止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配置文件,修改內(nèi)容如下

vim /etc/ntp.conf

a)修改1(授權(quán)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)絡(luò)連接,依然可以采用本地時間作為時間服務(wù)器為集群中的其他節(jié)點提供時間同步)
server 127.127.1.0
fudge 127.127.1.0 stratum 10

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

vim /etc/sysconfig/ntpd

SYNC_HWCLOCK=yes

? ? ④:重新啟動ntpd服務(wù)

service ntpd restart

? ? ⑤:設(shè)置ntpd服務(wù)開機啟動

chkconfig ntpd on

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

相關(guān)文章

  • 詳解Java設(shè)計模式編程中的里氏替換原則

    詳解Java設(shè)計模式編程中的里氏替換原則

    這篇文章主要介紹了Java設(shè)計模式編程中的里氏替換原則,有這個名字是因為這是由麻省理工學院的一位姓里的女士Barbara Liskov提出來的(嗯...),需要的朋友可以參考下
    2016-02-02
  • Java 邏輯控制全面詳解

    Java 邏輯控制全面詳解

    程序的邏輯主要分為三種結(jié)構(gòu):順序結(jié)構(gòu)、分支結(jié)構(gòu)、循環(huán)結(jié)構(gòu),順序結(jié)構(gòu)的所有的代碼都是從前向后執(zhí)行的。有些時候順序是由“{}”為界限的,下文將全面詳細的介紹
    2021-10-10
  • 如何動態(tài)改變Retrofit的base url和rest版本詳解

    如何動態(tài)改變Retrofit的base url和rest版本詳解

    這篇文章主要給大家介紹了關(guān)于如何動態(tài)改變Retrofit的base url和rest版本的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-09-09
  • Java中獲取webapp路徑問題詳解

    Java中獲取webapp路徑問題詳解

    這篇文章主要介紹了Java中獲取webapp路徑問題詳解,WebApp是指基于Web的?系統(tǒng)和?應(yīng)用,其作用是向廣大的最終用戶發(fā)布一組復雜的內(nèi)容和功能,本文詳解了關(guān)于獲取路徑時候可能出現(xiàn)的問題,需要的朋友可以參考下
    2023-07-07
  • 2021年最新Redis面試題匯總(1)

    2021年最新Redis面試題匯總(1)

    在程序員面試過程中redis相關(guān)的知識是常被問到的話題。這篇文章主要介紹了幾道Redis面試題,整理一下分享給大家,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Java多線程讀寫鎖ReentrantReadWriteLock類詳解

    Java多線程讀寫鎖ReentrantReadWriteLock類詳解

    本文詳細講解了Java多線程讀寫鎖ReentrantReadWriteLock類,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • Java 和 JavaScript 真正通用的Base64編碼詳解

    Java 和 JavaScript 真正通用的Base64編碼詳解

    這篇文章主要介紹了Java 和 JavaScript 真正通用的Base64編碼詳解的相關(guān)資料,附有Java和Javascript 的Base64編碼,需要的朋友可以參考下
    2016-11-11
  • Java異常處理的五個關(guān)鍵字

    Java異常處理的五個關(guān)鍵字

    本篇文章給大家詳細講述了關(guān)于Java異常處理的相關(guān)知識點,并列舉了5個重要關(guān)鍵字,一起啊參考學下。
    2018-03-03
  • springBoot之如何獲取接口請求數(shù)據(jù)和返回數(shù)據(jù)實現(xiàn)日志

    springBoot之如何獲取接口請求數(shù)據(jù)和返回數(shù)據(jù)實現(xiàn)日志

    這篇文章主要介紹了springBoot之如何獲取接口請求數(shù)據(jù)和返回數(shù)據(jù)實現(xiàn)日志問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java Semaphore實現(xiàn)高并發(fā)場景下的流量控制

    Java Semaphore實現(xiàn)高并發(fā)場景下的流量控制

    在java開發(fā)的工作中是否會出現(xiàn)這樣的場景,你需要實現(xiàn)一些異步運行的任務(wù),該任務(wù)可能存在消耗大量內(nèi)存的情況,所以需要對任務(wù)進行并發(fā)控制。本文將介紹通過Semaphore類優(yōu)雅的實現(xiàn)并發(fā)控制,感興趣的可以了解一下
    2021-12-12

最新評論

房产| 长垣县| 揭东县| 泸定县| 岚皋县| 海盐县| 泸西县| 宁陕县| 韩城市| 饶平县| 射洪县| 莱芜市| 台前县| 揭东县| 满洲里市| 繁昌县| 常州市| 阿巴嘎旗| 绥棱县| 出国| 弥渡县| 开封县| 孝义市| 南木林县| 九江市| 台东市| 泸定县| 大宁县| 平塘县| 盖州市| 巴青县| 广西| 合山市| 阿拉尔市| 桑植县| 策勒县| 定远县| 英德市| 蒙自县| 张掖市| 涿鹿县|