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

關(guān)于Hadoop的HDFS集群

 更新時(shí)間:2023年05月09日 08:39:58   作者:瘋狂創(chuàng)作者  
這篇文章主要介紹了關(guān)于Hadoop的HDFS集群,Hadoop 如何配置集群、不同的計(jì)算機(jī)里又應(yīng)該有怎樣的配置,這些問(wèn)題是在學(xué)習(xí)中產(chǎn)生的。本章的配置中將會(huì)提供一個(gè)典型的示例,需要的朋友可以參考下

HDFS 集群是建立在 Hadoop 集群之上的,由于 HDFS 是 Hadoop 最主要的守護(hù)進(jìn)程,所以 HDFS 集群的配置過(guò)程是 Hadoop 集群配置過(guò)程的代表。

使用 Docker 可以更加方便地、高效地構(gòu)建出一個(gè)集群環(huán)境。

每臺(tái)計(jì)算機(jī)中的配置

Hadoop 如何配置集群、不同的計(jì)算機(jī)里又應(yīng)該有怎樣的配置,這些問(wèn)題是在學(xué)習(xí)中產(chǎn)生的。本章的配置中將會(huì)提供一個(gè)典型的示例,但 Hadoop 復(fù)雜多樣的配置項(xiàng)遠(yuǎn)超于此。

HDFS 命名節(jié)點(diǎn)對(duì)數(shù)據(jù)節(jié)點(diǎn)的遠(yuǎn)程控制是通過(guò) SSH 來(lái)實(shí)現(xiàn)的,因此關(guān)鍵的配置項(xiàng)應(yīng)該在命名節(jié)點(diǎn)被配置,非關(guān)鍵的節(jié)點(diǎn)配置要在各個(gè)數(shù)據(jù)節(jié)點(diǎn)配置。也就是說(shuō),數(shù)據(jù)節(jié)點(diǎn)與命名節(jié)點(diǎn)的配置可以不同,不同數(shù)據(jù)節(jié)點(diǎn)之間的配置也可以有所不同。

但是本章為了方便建立集群,將使用相同的配置文件通過(guò) Docker 鏡像的形式同步到所有的集群節(jié)點(diǎn),特做解釋。

具體步驟

總體思路是這樣的,我們先用一個(gè)包含 Hadoop 的鏡像進(jìn)行配置,配置成集群中所有節(jié)點(diǎn)都可以共用的樣子,然后再以它為原型生成若干個(gè)容器,構(gòu)成一個(gè)集群。

配置原型

首先,我們將使用之前準(zhǔn)備的 hadoop_proto 鏡像啟動(dòng)為容器:

docker run -d --name=hadoop_temp --privileged hadoop_proto /usr/sbin/init

進(jìn)入 Hadoop 的配置文件目錄:

cd $HADOOP_HOME/etc/hadoop

現(xiàn)在對(duì)這里的文件的作用做簡(jiǎn)單的描述:

文件作用
workers記錄所有的數(shù)據(jù)節(jié)點(diǎn)的主機(jī)名或 IP 地址
core-site.xmlHadoop 核心配置
hdfs-site.xmlHDFS 配置項(xiàng)
mapred-site.xmlMapReduce 配置項(xiàng)
yarn-site.xmlYARN 配置項(xiàng)

注:YARN 的作用是為 MapReduce 提供資源管理服務(wù),此處暫時(shí)用不著。

我們現(xiàn)在設(shè)計(jì)這樣一個(gè)簡(jiǎn)單的集群:

  • 1 個(gè)命名節(jié)點(diǎn) nn
  • 2 個(gè)數(shù)據(jù)節(jié)點(diǎn) dn1, dn2

首先編輯 workers ,更改文件內(nèi)容為:

dn1
???????dn2

然后編輯 core-site.xml,在 中添加以下配置項(xiàng):

<!-- 配置 HDFS 主機(jī)地址與端口號(hào) -->
<property>
    <name>fs.defaultFS</name>
    <value>hdfs://nn:9000</value>
</property>
<!-- 配置 Hadoop 的臨時(shí)文件目錄 -->
<property>
    <name>hadoop.tmp.dir</name>
    <value>file:///home/hadoop/tmp</value>
</property>

配置 hdfs-site.xml,在 中添加以下配置項(xiàng):

<!-- 每個(gè)數(shù)據(jù)塊復(fù)制 2 份存儲(chǔ) -->
<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>
<!-- 設(shè)置儲(chǔ)存命名信息的目錄 -->
<property>
    <name>dfs.namenode.name.dir</name>
    <value>file:///home/hadoop/hdfs/name</value>
</property>

最后需要配置一下 SSH :

ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsassh-copy-id -i ~/.ssh/id_rsa hadoop@localhost

到此為止,集群的原型就配置完畢了,可以退出容器并上傳容器到新鏡像 cluster_proto :

docker stop hadoop_tempdocker commit hadoop_temp cluster_proto

此處如果有必要可以刪除臨時(shí)鏡像 hadoop_temp 。

部署集群

接下來(lái)部署集群。

首先,要為 Hadoop 集群建立專用網(wǎng)絡(luò) hnet :

docker network create --subnet=172.20.0.0/16 hnet

接下來(lái)創(chuàng)建集群容器:

docker run -d --name=nn --hostname=nn --network=hnet --ip=172.20.1.0 --add-host=dn1:172.20.1.1 --add-host=dn2:172.20.1.2 --privileged cluster_proto /usr/sbin/init
docker run -d --name=dn1 --hostname=dn1 --network=hnet --ip=172.20.1.1 --add-host=nn:172.20.1.0 --add-host=dn2:172.20.1.2 --privileged cluster_proto /usr/sbin/init
docker run -d --name=dn2 --hostname=dn2 --network=hnet --ip=172.20.1.2 --add-host=nn:172.20.1.0 --add-host=dn1:172.20.1.1 --privileged cluster_proto /usr/sbin/init

進(jìn)入命名節(jié)點(diǎn):

docker exec -it nn su hadoop

格式化 HDFS:

hdfs namenode -format

如果沒(méi)有出錯(cuò),那么下一步就可以啟動(dòng) HDFS:

start-dfs.sh

成功啟動(dòng)之后,jps 命令應(yīng)該能查到 NameNode 和 SecondaryNameNode 的存在。命名節(jié)點(diǎn)不存在 DataNode 進(jìn)程,因?yàn)檫@個(gè)進(jìn)程在 dn1 和 dn2 中運(yùn)行。

至此,你可以檢測(cè) HDFS 的運(yùn)行,使用 HDFS 的方式也沒(méi)有差別(命名節(jié)點(diǎn)代表整個(gè)集群)。 

到此這篇關(guān)于關(guān)于Hadoop的HDFS集群的文章就介紹到這了,更多相關(guān)HDFS集群內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論