亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Hadoop2.8.1完全分布式環(huán)境搭建過程

 更新時間:2019年06月11日 15:49:35   作者:BenceTse  
本文搭建了一個由三節(jié)點(master、slave1、slave2)構(gòu)成的Hadoop完全分布式集群(區(qū)別單節(jié)點偽分布式集群),并通過Hadoop分布式計算的一個示例測試集群的正確性。對hadoop分布式環(huán)境搭建過程感興趣的朋友跟隨小編一起看看吧

前言

本文搭建了一個由三節(jié)點(master、slave1、slave2)構(gòu)成的Hadoop完全分布式集群(區(qū)別單節(jié)點偽分布式集群),并通過Hadoop分布式計算的一個示例測試集群的正確性。

本文集群三個節(jié)點基于三臺虛擬機進行搭建,節(jié)點安裝的操作系統(tǒng)為Centos7(yum源),Hadoop版本選取為2.8.0。作者也是初次搭建Hadoop集群,其間遇到了很多問題,故希望通過該博客讓讀者避免。

實驗過程

1、基礎(chǔ)集群的搭建

目的:獲得一個可以互相通信的三節(jié)點集群

下載并安裝VMware WorkStation Pro(支持快照,方便對集群進行保存)下載地址,產(chǎn)品激活序列號網(wǎng)上自行查找。

下載CentOS7鏡像,下載地址

使用VMware安裝master節(jié)點(稍后其他兩個節(jié)點可以通過復(fù)制master節(jié)點的虛擬機文件創(chuàng)建)。

三個節(jié)點存儲均為30G默認(rèn)安裝,master節(jié)點內(nèi)存大小為2GB,雙核,slave節(jié)點內(nèi)存大小1GB,單核

2、集群網(wǎng)絡(luò)配置

目的:為了使得集群既能互相之間進行通信,又能夠進行外網(wǎng)通信,需要為節(jié)點添加兩張網(wǎng)卡(可以在虛擬機啟動的時候另外添加一張網(wǎng)卡,即網(wǎng)絡(luò)適配器,也可以在節(jié)點創(chuàng)建之后,在VMware設(shè)置中添加)。

兩張網(wǎng)卡上網(wǎng)方式均采用橋接模式,外網(wǎng)IP設(shè)置為自動獲?。ㄍㄟ^此網(wǎng)卡進行外網(wǎng)訪問,配置應(yīng)該按照你當(dāng)前主機的上網(wǎng)方式進行合理配置,如果不與主機通信的話可以采用NAT上網(wǎng)方式,這樣選取默認(rèn)配置就行),內(nèi)網(wǎng)IP設(shè)置為靜態(tài)IP。

本文中的集群網(wǎng)絡(luò)環(huán)境配置如下:

master內(nèi)網(wǎng)IP:192.168.1.100

slave1內(nèi)網(wǎng)IP:192.168.1.101

slave2內(nèi)網(wǎng)IP:192.168.1.102

設(shè)置完后,可以通過ping進行網(wǎng)絡(luò)測試

注意事項:通過虛擬機文件復(fù)制,在VMware改名快速創(chuàng)建slave1和slave2后,可能會產(chǎn)生網(wǎng)卡MAC地址重復(fù)的問題,需要在VMware網(wǎng)卡設(shè)置中重新生成MAC,在虛擬機復(fù)制后需要更改內(nèi)網(wǎng)網(wǎng)卡的IP。

每次虛擬機重啟后,網(wǎng)卡可能沒有自動啟動,需要手動重新連接。

3、集群SSH免密登陸設(shè)置

目的:創(chuàng)建一個可以ssh免密登陸的集群

3.1  創(chuàng)建hadoop用戶

為三個節(jié)點分別創(chuàng)建相同的用戶hadoop,并在以后的操作均在此用戶下操作,操作如下:

$su -

#useradd -m hadoop

#passwd hadoop

為hadoop添加sudo權(quán)限

#visudo

在該行root ALL=(ALL) ALL下添加hadoop ALL=(ALL) ALL保存后退出,并切換回hadoop用戶

#su hadoop

注意事項:三個節(jié)點的用戶名必須相同,不然以后會對后面ssh及hadoop集群搭建產(chǎn)生巨大影響

3.2  hosts文件設(shè)置

為了不直接使用IP,可以通過設(shè)置hosts文件達到ssh slave1這樣的的效果(三個節(jié)點設(shè)置相同)

$sudo vim /etc/hosts

在文件尾部添加如下行,保存后退出:

192.168.1.100  master

192.168.1.101  slave1

192.168.1.102  slave2

注意事項:不要在127.0.0.1后面添加主機名,如果加了master,會造成后面hadoop的一個很坑的問題,在slave節(jié)點應(yīng)該解析出masterIP的時候解析出127.0.0.1,造成hadoop搭建完全正確,但是系統(tǒng)顯示可用節(jié)點一直為0。

3.3  hostname修改

centos7默認(rèn)的hostname是localhost,為了方便將每個節(jié)點hostname分別修改為master、slave1、slave2(以下以master節(jié)點為例)。

$sudo hostnamectl set-hostname master

重啟terminal,然后查看:$hostname

3.3  ssh設(shè)置

設(shè)置master節(jié)點和兩個slave節(jié)點之間的雙向ssh免密通信,下面以master節(jié)點ssh免密登陸slave節(jié)點設(shè)置為例,進行ssh設(shè)置介紹(以下操作均在master機器上操作):

首先生成master的rsa密鑰:$ssh-keygen -t rsa

設(shè)置全部采用默認(rèn)值進行回車

將生成的rsa追加寫入授權(quán)文件:$cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

給授權(quán)文件權(quán)限:$chmod 600 ~/.ssh/authorized_keys

進行本機ssh測試:$ssh maste r正常免密登陸后所有的ssh第一次都需要密碼,此后都不需要密碼

將master上的authorized_keys傳到slave1

sudo scp ~/.ssh/id_rsa.pubhadoop@slave1:~/

登陸到slave1操作:$ssh slave1輸入密碼登陸

$cat ~/id_rsa.pub >> ~/.ssh/authorized_keys

修改authorized_keys權(quán)限:$chmod 600 ~/.ssh/authorized_keys

退出slave1:$exit

進行免密ssh登陸測試:$ssh slave1

4、java安裝

目的:hadoop是基于Java的,所以要安裝配置Java環(huán)境(三個節(jié)點均需要操作,以下以master節(jié)點為例)

下載并安裝:$sudo yum install java-1.8.0-openjdkjava-1.8.0-openjdk-devel

驗證是否安裝完成:$java -version

配置環(huán)境變量,修改~/.bashrc文件,添加行: export JAVA_HOME=/usr/lib/jvm/java-1.8.0

使環(huán)境變量生效:$source ~/.bashrc

5、Hadoop安裝配置

目的:獲得正確配置的完全分布式Hadoop集群(以下操作均在master主機下操作)

安裝前三臺節(jié)點都需要需要關(guān)閉防火墻和selinux

$sudo systemctl stop firewalld.service
$sudo systemctl disable firewalld.service
$sudo vim /usr/sbin/sestatus

將SELinux status參數(shù)設(shè)定為關(guān)閉狀態(tài)

SELinux status: disabled

5.1  Hadoop安裝

首先在master節(jié)點進行hadoop安裝配置,之后使用scp傳到slave1和slave2。

下載Hadoop二進制源碼至master,下載地址,并將其解壓在~/ 主目錄下

$tar -zxvf ~/hadoop-2.8.1.tar.gz -C ~/

$mv~/hadoop-2.8.1/* ~/hadoop/

注意事項:hadoop有32位和64位之分,官網(wǎng)默認(rèn)二進制安裝文件是32位的,但是本文操作系統(tǒng)是64位,會在后面hadoop集群使用中產(chǎn)生一個warning但是不影響正常操作。

5.2  Hadoop的master節(jié)點配置

配置hadoop的配置文件core-site.xml  hdfs-site.xml  mapred-site.xml  yarn-site.xml  slaves(都在~/hadoop/etc/hadoop文件夾下)

$cd ~/hadoop/etc/hadoop

$vimcore-site.xml其他文件相同,以下為配置文件內(nèi)容:

1.core-site.xml  

<configuration>
  <property>
    <name>fs.default.name</name>
    <value>hdfs://master:9000</value>
  </property>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>file:/home/hadoop/hadoop/tmp</value>
  </property>
</configuration>

2.hdfs-site.xml 

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>file:/home/hadoop/hadoop/tmp/dfs/name</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>file:/home/hadoop/hadoop/tmp/dfs/data</value>
  </property>
  <property>
    <name>dfs.namenode.secondary.http-address</name>
    <value>master:9001</value>
  </property>
</configuration>

3.mapred-site.xml  

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

4.yarn-site.xml

<configuration>
  <property>
    <name>yarn.resourcemanager.hostname</name>
    <value>master</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</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>

5.slaves

slave1
slave2

5.3  Hadoop的其他節(jié)點配置

此步驟的所有操作仍然是在master節(jié)點上操作,以master節(jié)點在slave1節(jié)點上配置為例

復(fù)制hadoop文件至slave1:$scp -r ~/hadoop hadoop@slave1:~/

5.4  Hadoop環(huán)境變量配置

配置環(huán)境變量,修改~/.bashrc文件,添加行(每個節(jié)點都需要此步操作,以master節(jié)點為例):

#hadoop environment vars
export HADOOP_HOME=/home/hadoop/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

使環(huán)境變量生效:$source ~/.bashrc

6、Hadoop啟動

格式化namenode:$hadoop namenode -format

啟動hadoop:$start-all.sh

master節(jié)點查看啟動情況:$jps

slave1節(jié)點查看啟動情況:$jps

slave2節(jié)點查看啟動情況:$jps

Web瀏覽器輸入127.0.0.1:50070,查看管理界面

7、Hadoop集群測試

目的:驗證當(dāng)前hadoop集群正確安裝配置

本次測試用例為利用MapReduce實現(xiàn)wordcount程序

生成文件testWordCount:$echo "My name is Xie PengCheng. This is a example program called WordCount, run by Xie PengCheng " >>testWordCount

創(chuàng)建hadoop文件夾wordCountInput:$hadoop fs -mkdir /wordCountInput

將文件testWordCount上傳至wordCountInput文件夾:$hadoop fs -puttestWordCount/wordCountInput

執(zhí)行wordcount程序,并將結(jié)果放入wordCountOutput文件夾:$hadoop jar ~/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.1.jar wordcount /wordCountInput /wordCountOutput

注意事項:/wordCountOutput文件夾必須是沒有創(chuàng)建過的文件夾

查看生成文件夾下的文件:$hadoop fs -ls /wordCountOutput

在output/part-r-00000可以看到程序執(zhí)行結(jié)果:$hadoop fs -cat /wordCountOutpart-r-00000

總結(jié)

以上所述是小編給大家介紹的Hadoop2.8.1完全分布式環(huán)境搭建過程,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!

相關(guān)文章

  • Spring Boot Mysql 數(shù)據(jù)庫操作示例

    Spring Boot Mysql 數(shù)據(jù)庫操作示例

    本篇文章主要介紹了Spring Boot Mysql 數(shù)據(jù)庫操作示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-02-02
  • Spring中SpEL表達式的使用全解

    Spring中SpEL表達式的使用全解

    SpEL是Spring框架中用于表達式語言的一種方式,本文主要介紹了Spring中SpEL表達式的使用全解,文中通過示例代碼介紹的非常詳細(xì),需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2024-04-04
  • spring boot啟動時mybatis報循環(huán)依賴的錯誤(推薦)

    spring boot啟動時mybatis報循環(huán)依賴的錯誤(推薦)

    今天小編抽時間給大家分享spring boot啟動時mybatis報循環(huán)依賴的錯誤,非常不錯,具有參考借鑒價值,需要的朋友參考下吧
    2017-12-12
  • 解決cmd執(zhí)行javac報錯:不是內(nèi)部或外部命令,也不是可運行的程序

    解決cmd執(zhí)行javac報錯:不是內(nèi)部或外部命令,也不是可運行的程序

    剛接觸JAVA的新手可能就不知道怎么解決'JAVAC'不是內(nèi)部命令或外部命令,這篇文章主要給大家介紹了關(guān)于解決cmd執(zhí)行javac報錯:不是內(nèi)部或外部命令,也不是可運行的程序的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • Java實現(xiàn)圖片比率縮放

    Java實現(xiàn)圖片比率縮放

    這篇文章主要為大家詳細(xì)介紹了Java通過Thumbnails實現(xiàn)圖片比率縮放,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • httpclient的disableConnectionState方法工作流程

    httpclient的disableConnectionState方法工作流程

    這篇文章主要為大家介紹了httpclient的disableConnectionState方法工作流程源碼解讀,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • javaWeb傳收參數(shù)方式總結(jié)示例分析

    javaWeb傳收參數(shù)方式總結(jié)示例分析

    這篇文章主要為大家介紹了javaWeb傳收參數(shù)方式總結(jié)示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-08-08
  • Spring框架讀取property屬性文件常用5種方法

    Spring框架讀取property屬性文件常用5種方法

    這篇文章主要介紹了Spring框架讀取property屬性文件常用5種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • java短信驗證碼登錄功能設(shè)計與實現(xiàn)

    java短信驗證碼登錄功能設(shè)計與實現(xiàn)

    現(xiàn)在不管是各類的網(wǎng)站,還是大小社交app,登錄方式是越來越多了,但是大部分還是以短信登錄為主,本文主要介紹了java短信驗證碼登錄功能設(shè)計與實現(xiàn),感興趣的可以了解一下
    2021-11-11
  • java中的阻塞隊列應(yīng)用場景及代碼實例

    java中的阻塞隊列應(yīng)用場景及代碼實例

    這篇文章主要介紹了java中的阻塞隊列應(yīng)用場景及代碼實例阻塞隊列是一種特殊的隊列,它提供了線程安全的操作,并在隊列為空或滿時提供了阻塞的功能,阻塞隊列通常用于多線程場景,其中生產(chǎn)者線程向隊列中添加元素,而消費者線程從隊列中獲取元素,需要的朋友可以參考下
    2024-01-01

最新評論