LXC系列教程之七建立Hadoop多点分散架构Word文档格式.docx
- 文档编号:5831345
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:13
- 大小:685.54KB
LXC系列教程之七建立Hadoop多点分散架构Word文档格式.docx
《LXC系列教程之七建立Hadoop多点分散架构Word文档格式.docx》由会员分享,可在线阅读,更多相关《LXC系列教程之七建立Hadoop多点分散架构Word文档格式.docx(13页珍藏版)》请在冰点文库上搜索。
>
~/.ssh/authorized_keys
这样就完成了SSH自动登入联机的设定,不过,由于第一次联机时,系统还是会显示询问是否要建立联机的讯息,且还要确认之后才能联机,但这样就失去了自动登入的意义,所以,要避免系统询问是否联机的讯息,则需要修改ssh的配置文件,请利用任一编辑器开启以下档案:
$sudovim/etc/ssh/ssh_config
档案开启之后,寻找「StrictHostKeyChecking」的字符串,找到之后,请去除原本标记的符号,并将原本的「ask」,修改为「no」(或新增一行也可以):
修改完成,就可以存盘退出,这样等会第一次进行SSH联机时,就会藉由已经建立的自动登入联机密钥来直接登入,而不会再出现询问是否联机的讯息了。
●设定(新增)HadoopLog档案的储存位置
跟建立单点分散架构一样,需要手动来产生存放Log档案的目录区,也还需要更动此档案目录的权限,指令如下:
$sudomkdir/opt/hadoop/logs
$sudochmod777/opt/hadoop/logs
●设定SecondaryNamenode
等一下会建立另外一台计算机名称为「sn」的SecondaryNamenode虚拟计算机,所以这边就预先将信息写入Hadoop的masters配置文件内:
$sudovim/opt/hadoop/conf/masters
档案开启之后,直接将原本的「localhost」修改为「sn」即可:
●设定Datanode
而另外两台Datanode虚拟计算机的计算机名称默认为「dn01」与「dn02」,也预先将信息写入
slaves配置文件之内:
$sudovim/opt/hadoop/conf/slaves
一样将原本的「localhost」修改为「dn01」与「dn02」即可:
●设定Namenode的联机信息与HDFS档案储存的目录
跟单点分散架构一样,也需要设定Namenode的联机信息与HDFS数据储存的目录,用任一编辑器开启core-site.xml档案:
$sudovim/opt/hadoop/conf/core-site.xml
档案开启之后,在「<
configuration>
」与「<
/configuration>
」标签区段内输入以下信息:
<
property>
name>
fs.default.name<
/name>
value>
hdfs:
//nn:
9000<
/value>
/property>
hadoop.tmp.dir<
/home/ubuntu/data<
输入完成如下图:
其中,「hdfs:
9000」就是Namenode的联机信息,「nn」就是Namenode这一台计算机的计算机名称,而「/home/ubuntu/data」就是HDFS档案储存目录的实际路径,所以等一下需要在家目录内建立名称为「data」的文件夹(当然,文件夹名称可以自定)。
●设定Namenode与SecondaryNamenode联机信息,以及区块数据复制的数量
开启hdfs-site.xml档案,并在「<
」标签区段内输入以下数据:
$sudovim/opt/hadoop/conf/hdfs-site.xml
dfs.http.address<
nn:
50070<
dfs.secondary.http.address<
sn:
50090<
dfs.replication<
2<
这边的设定值就很明显的跟单点分散架构的设定值不同,原因在于此多点分散架构的架构内,有两台NameNode,所以必须个别设定Web联机所需要的端口号码,设定值内的端口号码都是默认值,除非有特殊需要或状况,否则维持默认值即可,还有,此多点分散的架构内,也有两台DataNode,所以Replication的值要可以设定为「2」。
●设定Jobtracker的联机位置
开启mapred-site.xml以下档案,并在「<
」标签区段内输入以下信息:
$sudovim/opt/hadoop/conf/mapred-site.xml
mapred.job.tracker<
9001<
而「nn:
9001」就是Jobtracker的联机信息,「nn」则是担任Jobtracker的计算机名称,但因为我们并没有特别为Jobtracker另外建立一台独立运作的机器,所以「nn」此节点除了具有NameNode的角色之外,也会扮演Jobtracker的角色。
●设定Hadoop环境变量
开启以下档案,并找到「exportJAVA_HOME=.....」的字段,去除原本标记的符号(#),并修改JAVA_HOME的实际路径:
$sudovim/opt/hadoop/conf/hadoop-env.sh
虽然在建置模版计算机的时候,已经有将JAVA_HOME的设定值写入系统的PATH内,但在Hadoop实际的运作中,因使用root账号权限,所以会去读取「hadoop-env.sh」档案内JAVA_HOME的设定值,所以这是必须要修改的档案,若没有修改JDK的实际路径,则后续执行Hadoop时,会有错误发生。
●建立Hadoop(HDFS)使用的文件夹回到家目录底下,并建立一个供Hadoop(HDFS)使用的文件夹:
$mkdirdata(data为文件夹名称,此名称可以自定)
到此,就算完成了NameNode的设定与Hadoop基础环境的部属,接下来,我们就要以
NameNode这台虚拟计算机,来当做模版主机,来建立SecondaryNamenode与Datanode。
建置与部属完整Hadoop多点分散架构
●复制产生SecondaryNamenode与Datanode
在进行后续操作之前,先将NameNode,也就是「nn」这台虚拟计算机关机,关机后再利用以下指令,来产生SecondaryNameNode与DataNode:
$sudolxc-clone-onn-nsn(SecondaryNamenode)
$sudolxc-clone-onn-ndn01(Datanode1)
$sudolxc-clone-onn-ndn02(Datanode2)
●修改Hosts档案
以上三台虚拟计算机建立(复制)完成之后,接着再利用任一编辑器,设定四台LXC虚拟电脑的hosts档案:
$sudovim/var/lib/lxc/nn/rootfs/etc/hosts
$sudovim/var/lib/lxc/sn/rootfs/etc/hosts
$sudovim/var/lib/lxc/dn01/rootfs/etc/hosts
$sudovim/var/lib/lxc/dn02/rootfs/etc/hosts
档案开启之后,将内容都修改为以下的设定值:
127.0.0.1localhost
10.1.3.1010.0.3.10nn
10.1.3.1110.0.3.11sn
10.1.3.12n01
10.1.3.13n02
输入完成,就都可以存盘退出。
●修改网络组态文件
接着再利用编辑器,开启每一台LXC虚拟计算机的网络组态文件:
$sudo/var/lib/lxc/nn/rootfs/etc/network/interface
$sudo/var/lib/lxc/sn/rootfs/etc/network/interface
$sudo/var/lib/lxc/dn01/rootfs/etc/network/interface
$sudo/var/lib/lxc/dn02/rootfs/etc/network/interface
档案开启之后,将原本eth0的网络组态设定(默认为DHCP),修改为:
autoeth0
ifaceeth0inetstaticaddress10.0.3.10
netmask255.255.255.0
gateway10.0.3.1
dns-nameservers168.95.1.1
其中,要注意的地方,就是「address」这一个字段,每一台LXC虚拟计算机的IP地址都不一样,「nn」为「10.0.3.10」,「sn」为「10.0.3.11」,「dn01」为「10.0.3.12」,而「dn02」则为「10.0.3.13」。
启动与测试Hadoop多点分散架构
完成以上的步骤之后,就算完成了Hadoop多点分散架构的设定,接下来就要来实际测试
Hadoop多点分散架构的是否能正常运作。
利用以下指令,来依序启动Hadoop各个节点计算机:
$sudolxc-start-nnn-d(参数-d,全部丢到背景执行)
$sudolxc-start-nsn-d
$sudolxc-start-ndn01-d
$sudolxc-start-ndn02-d
各节点的LXC虚拟计算机启动之后,直接利用以下指令来进入Namenode(nn)的登入画面:
$sudolxc-console-nnn
登入nn之后,直接在nn的终端机内,反复输入以下指令来测试SSH是否可以顺利自动登入到其他节点计算机内:
$sshnn
$sshsn
$sshdn01
$sshdn02
以上每次顺利登入之后,记得要再输入〝exit〞的指令,来注销联机,回到原先nn的终端机画面,在进行下一台节点的SSH联机测试。
确认SSH自动登入的功能可以正常执行之后,接下来在nn的终端机输入以下指令,来测试JDK与Hadoop的指令能否正常执行:
$java-version
$hadoopversion
以上若有正常回复版本讯息,就表示JDK与Hadoop的相关指令都可以正常执行,当然,在nn这台节点计算机上可以正常执行,也表示sn、dn01与dn02可以正常执行,因为这三台节点计算机,都是从nn这台节点计算机复制而来,所以相关的PATH设置也都是相同的。
接下来,再来确认SecondaryNameNode的角色是否正确设置:
$cat/opt/hadoop/conf/masters
以一并确认Datanode的角色是否也正确设定无误:
$cat/opt/hadoop/conf/slaves
若都有回复负责相关角色的计算机名称,则表示设定值是没有问题的。
最后,在次查看以下的配置文件内容,是否正确无误:
$cat/opt/hadoop/conf/core-site.xml
$cat/opt/hadoop/conf/hdfs-site.xml
$cat/opt/hadoop/conf/mapred-site.xml
$cat/opt/hadoop/conf/hadoop-env.sh
呼,所有的设定与检测总算是完成了,接下来就真的要来实测Hadoop是否可以正常运作了,首先,就先从格式化HDFS文件系统开始吧,请直接在nn的终端机接口输入以下指令来格式化HDFS文件系统:
$hadoopnamenode-format
看到如上图的响应,就完成了格式化HDFS文件系统的动作,且此指令执行完成之后,还会将NameNode给关闭,不过,实际上,因为我们并还没有实际启动Hadoop的服务,所以没有影响。
接着,这边我们就先不完整启动整个Hadoop的服务,只启动Hadoop的分布式文件系统
(HDFS),来进行测试。
输入以下指令,来启动Hadoop的分布式文件系统:
$start-dfs.sh
看到如上图的回复讯息,就是成功启动了Hadoop的分布式文件系统。
接下来,分布式文件系统(HDFS)启动之后,可以使用以下指令来检视HDFS的系统信息:
$hadoopdfsadmin-report
由系统回复的讯息,我们就可以清楚的看到HDFS与各个节点之间的详细信息。
最后,我们就来实际使用HDFS的文件系统,使用以下指令,就可以在HDFS内建立文件夹:
$hadoopdfs-mkdir/abc(abc为文件夹名称,可以自定)文件夹建立完成之后,来检视一下HDFS的目录信息:
$hadoopdfs-ls/
成功且正确看到abc的文件夹之后,就表示HDFS文件系统正常运作无误,可以来好好使用Hadoop的分布式文件系统了。
以上,就是透过Hadoop模版计算机的设置,以及使用LXC虚拟系统的优势,来快速建立Hadoop多点分布式的架构,这不只解决了的以往Hadoop设置时,相关档案需要复制来复制去的困扰,也减轻了Java与Hadoop安装上的复杂度,相信这样快速的建构模式,大概只有LXC虚拟系统的架构可以做到吧。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- LXC 系列 教程 建立 Hadoop 多点 分散 架构
![提示](https://static.bingdoc.com/images/bang_tan.gif)