Hadoop2.X/YARN环境搭建--CentOS7.0系统配置
<p>一、我缘何选择centos7.0</p>
<p>
14年7月7日17:39:42发布了centos 7.0.1406正式版,我曾使用过多款linux,对于hadoop2.x/yarn的环境配置缘何选择centos7.0,其原因有:</p>
<p>
1、界面采用rhel7.0新的gnome界面风,这可不是centos6.5/rhel6.5所能比的!(当然,fedora早就采用这种风格的了,但是现在的fedora缺包已然不成样子了)</p>
<p>
2、曾经,我也用了rhel7.0,它最大的问题就是yum没法用,而且总会有warning提示注册购买!为此,必须去修改yum源,还有修改其他的文件使之不提示才能用,看了这么麻烦,想必有很多童鞋滴心就已经凉了4/7了吧!</p>
<p>
3、当然,ubuntu系列我用过ubuntu14.04/12.04和elementaryos,不知为何,一用ubuntu14.04就觉得好丑呀!!但是有很多人都说centos和rhel更丑,但殊不知哪个才是企业级的,那个才是霸主。</p>
<p>
另一方面,要求视觉效果的话,建议去装个elementaryos试试,当然,elementaryos也有缺陷:它已经许久没有提供更新了,12年推出的,已逾2年未曾发布新版本的系统,也未曾更站,与此同时,elementaryos的模型ubuntu早就更新换代了,所以,暴露了不少问题,其中麻烦的是不要随意更新系统,否则黑屏,那就真的纯命令行了,漂亮的系统突然被打回原型,那心铁定疤凉疤凉的,而且它更新后的apt-get是无法安装某些匹配某些,所以elementaryos只供欣赏把玩!</p>
<p>
4、也有人用过opensuse,据说是最华丽的系统,在我看来,花哨的kde打开文件/软件时显示的一跳一跳的,我心里就痒痒的,没事儿你弄个没用又难看的东东干嘛??干嘛??另外,最新的opensuse对中文的设计的确无法令人满意。另外,就是opensuse的环境不怎么熟悉,欧洲人设计的gnu/linux还有些难适应,当然,我也不打算改旗易帜向欧洲suse倒戈。</p>
<p>
其实,gnu/linux版本众多,选择一个适合自己的一款一直玩下去、用下去就足够了,linux版本众多,设计各有千秋,但使用大同小异,了解“异”点即可!当然,还是奉劝一句:初学者仅仅跑跑虚拟机看看效果就好,莫要将每款都用会了!毕竟,体验也是学习的动力之一!</p>
<p>
二、体验centos7与之前版本的“异”</p>
<p>
<em>初次启动</em></p>
<p>
装完机后,开机进系统的界面换了,乍一看以为是两个内核,原来有一个是rescue选择,而且按e后,会发现所有的grub.conf的信息全出来了,好不容易找到内核启动的地方,写了个 1(要进单用户模式),然后进了rescue模式。</p>
<p>
<em>字符界面</em></p>
<p>
进系统后,是图形界面,想进字符界面,结果找到/etc/inittab,发现几乎是个空文件,文件中提示想改runlevel的话,可以把/lib/systemd/system/runlevel*.target 软连到 /etc/systemd/system/default.target下(当然考过来,覆盖也行),试了一下还行,能改到字符界面runlevel3。</p>
<p>
<em>配置网络和主机名</em></p>
<p>
然后,想配置网络,进/etc/sysconfig/network-script/一看,我靠,网卡改名了enp1s5,好有趣,配置完网络后改主机名, 到/etc/sysconfig/network去改名字,发现这个文件也是空的,按原6版本的去修改,重启后没效果,man了一下hostname, 发现7中改名要到/etc/hostname去改名字。</p>
<p>
<em>本地yum源和挂载</em></p>
<p>
接着,想配置一个本地yum源,配上后要挂光盘,手动挂上了,然后直接echo“mount ......”到rc.local中,毕竟是启动执行脚本,重启之后竟然没挂上,进去rc.local中看了一下,7中竟然要手动的把chmod +x rc.local, 是的,要手动加执行权限,难道我之前装的6以前的系统中这个都要手动加执行权限,我不记得啊!!!! 当然,加了权限后,开机后启动执行了rc.local的mount命令。</p>
<p>
<em>lvm和xfs</em></p>
<p>
后来,想着装一个lvm玩玩,于是啊就分区,格式化(特意格式化为了xfs),pv,vg,lv一步一步,都没问题,然后想着放大,缩小,这时出问题了,执行resize2fs时,怎么一直报superblock什么的出错,这是怎么回事,然后man resize2fs一下,发现这命令只支持ext的文件系统,我艹,那我装系统是怎么是lvm的,这个问题我还没解决,应该有解决方法。</p>
<p>
<em>dhcp和服务</em></p>
<p>
接着,想着装一个dhcp玩玩,惊奇的发现所有dhcp的包装上之后,不能service dhcpd start,然后发现/etc/init.d/中竟然没一个dhcp类似的东西,毕竟6之前有dhcpd,dhcpd6,dhcrelay的,然后发现 /sbin/dhcpd有启动文件,难道,难道,以后的服务想service启,都要手动自己编?错了,是在/usr/lib/systemd/system/dhcpd.service,还要修改好多,然后加权限,执行service 服务 restart/stop。。。。。。可以,但是指向了systemctl restart/start/stop 服务.service</p>
<p>
<em>iptables</em></p>
<p>
又发现iptables这次也不是作为一个服务在/etc/init.d/下面了,/sbin下有;</p>
<p>
防火墙由iptables更换成了firewalld</p>
<p>
</p>
<p>
三、系统配置之关闭防火墙</p>
<p>
systemctl stop firewalld.service #停止firewall</p>
<p>
systemctl disable firewalld.service #禁止firewall开机启动</p>
<div>
<div class="syntaxhighlightersql" id="highlighter_394775">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain">systemctl命令的基本操作格式是:</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div>
<div class="syntaxhighlightersql" id="highlighter_968159">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain">systemctl 动作 服务名.service<br>动作:start,stop,restart,status,enable,disable,</code><code class="sql keyword">is</code><code class="sql plain">-enabled </code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<p>
四、配置linux网络</p>
<p>
1、修改hostname</p>
<p>
centos 7.0的hostname在/etc/hostname中用root用户修改:</p>
<div>
<div class="syntaxhighlightersql" id="highlighter_406283">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain"># vim /etc/hostname #编辑/etc/hostname<br># cat /etc/hostname #查看/etc/hostname<br>hadoop1<br>#</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<p>
以前版本的centos在/etc/sysconfig/network中用root用户修改:</p>
<div>
<div class="syntaxhighlightersql" id="highlighter_164575">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain"># vim /etcsysconfig/network</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<p>
<img title="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" alt="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" border="0" src="https://zhuji.jb51.net/uploads/img/202305/c9e20041ee2d72fda40956aea62db5d4.jpg"></p>
<p>
"/etc/sysconfig/network"的设定项目如下:</p>
<div>
<div class="syntaxhighlightersql" id="highlighter_940612">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain">networking 是否利用网络<br>gateway 默认网关与接下来配置ip的属性文件中默认网关一致<br>ipgatewaydev 默认网关的接口名<br>hostname 主机名<br>domain 域名</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<p>
reboot后hostname生效</p>
<p>
2、修改当前机器的ip</p>
<p>
step1:进入配置文件目录</p>
<p>
现在已经是root权限了,我们cd到网络配置文件的目录,并列出目录下的文件。</p>
<p>
<img title="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" alt="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" border="0" src="https://zhuji.jb51.net/uploads/img/202305/128d2f8e0408d175a7e37a8de7c7df7a.jpg"></p>
<p>
<img title="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" alt="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" border="0" src="https://zhuji.jb51.net/uploads/img/202305/f216d6caea24709434fbc9e1c673116c.jpg"></p>
<p>
step2:修改配置文件</p>
<p>
该目录下,文件名“ifcfg-ens192”文件就是网络配置的主文件。vi它!</p>
<p>
修改或添加一下:</p>
<div>
<div class="syntaxhighlightersql" id="highlighter_725543">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain">onboot=yes <br>bootproto=</code><code class="sql keyword">static</code> <code class="sql plain"><br>ipaddr=ip地址 <br>netmask=255.255.255.0 #子网掩码 <br>gateway=192.168.30.1 #网关地址</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<p>
<img title="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" alt="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" border="0" src="https://zhuji.jb51.net/uploads/img/202305/da5e9088fa63a4a14c773c503ac018aa.jpg"></p>
<p>
step3:重启网络服务</p>
<p>
修改完配置文件后,:wq!保存退出!然后重启网络。</p>
<p>
<img title="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" alt="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" border="0" src="https://zhuji.jb51.net/uploads/img/202305/9413fb6f33d0f30a6912e66526483972.jpg"></p>
<p>
step4:测试</p>
<p>
通过ifconfig命令查看ip是否设置成功,然后ping一下网络。这个时候应该成功了!</p>
<p>
</p>
<p>
3、修改dns(看情况,非必选)</p>
<p>
若网络环境有dns要求,则配置,否则,勿配!</p>
<p>
格式:</p>
<p>
nameserver dns地址</p>
<div>
<div class="syntaxhighlightersql" id="highlighter_656739">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain"># vi /etc/resolv.conf </code>
</div>
<div class="line number2 index1 alt1">
<code class="sql plain">nameserver 202.131.80.1 #依需求而定 </code>
</div>
<div class="line number3 index2 alt2">
<code class="sql plain">nameserver 202.131.80.5 #依需求而定</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<p>
4、配置hosts文件</p>
<p>
"/etc/hosts"这个文件是用来配置主机将用的dns服务器信息,是记载lan内接续的各主机的对应用的。当用户在进行网络连接时,首先查找该文件,寻找对应主机名(或域名)对应的ip地址。</p>
<p>
我们要测试两台机器之间知否连通,一般用"ping 机器的ip",如果想用"ping 机器的主机名"发现找不见该名称的机器,解决的办法就是修改"/etc/hosts"这个文件,通过把lan内的各主机的ip地址和hostname的一一对应写入这个文件的时候,就可以解决问题。</p>
<p>
例如:机器为"hadoop1:59.67.107.80"对机器为"hadoop2:59.67.107.79"用命令"ping"记性连接测试。测试结果如下:</p>
<p>
<img title="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" alt="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" border="0" src="https://zhuji.jb51.net/uploads/img/202305/40f3634288d9a640e00c74215fdcba66.jpg"></p>
<p>
从上图中的值,直接对ip地址进行测试,能够ping通,但是对主机名进行测试,若没有ping通,提示"unknown host——未知主机",这时查看"hadoop1"的"/etc/hosts"文件内容。</p>
<p>
若ping hadoop1不通则显示:</p>
<p>
<img title="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" alt="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" border="0" src="https://zhuji.jb51.net/uploads/img/202305/5b8fe927b7c747128e1acae6a5be42bd.jpg"></p>
<p>
若ping hadoop1通则显示:</p>
<p>
<img title="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" alt="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" border="0" src="https://zhuji.jb51.net/uploads/img/202305/8bdea82ee799253af97db9dbb9cc8063.jpg"></p>
<p>
若发现里面没有"59.67.107.79 hadoop2"内容,故而本机器是无法对机器的主机名为"hadoop2" 解析。</p>
<p>
在进行hadoop集群配置中,需要在"/etc/hosts"文件中添加集群中所有机器的ip与主机名,这样master与所有的slave机器之间不仅可以通过ip进行通信,而且还可以通过主机名进行通信。所以在所有的机器上的"/etc/hosts"文件末尾中都要添加如下内容:</p>
<p>
因为本文以已经配置好的环境说明,所以我的/etc/hosts显示:</p>
<p>
<img title="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" alt="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" border="0" src="https://zhuji.jb51.net/uploads/img/202305/64c375fdc55be4966af9bd9c20eff556.jpg"></p>
<p>
一般处于内网下,照此添加(192.168.1.1为网关):</p>
<div>
<div class="syntaxhighlightersql" id="highlighter_571760">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
<div class="line number2 index1 alt1">
2</div>
<div class="line number3 index2 alt2">
3</div>
<div class="line number4 index3 alt1">
4</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain">192.168.1.2 hadoop1</code>
</div>
<div class="line number2 index1 alt1">
<code class="sql plain">192.168.1.3 hadoop2</code>
</div>
<div class="line number3 index2 alt2">
<code class="sql plain">192.168.1.4 hadoop3</code>
</div>
<div class="line number4 index3 alt1">
<code class="sql plain">192.168.1.5 hadoop4</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<p>
用以下命令进行添加:</p>
<div>
<div class="syntaxhighlightersql" id="highlighter_775269">
<div class="toolbar">
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td class="gutter">
<div class="line number1 index0 alt2">
1</div>
</td>
<td class="code">
<div class="container">
<div class="line number1 index0 alt2">
<code class="sql plain">vim /etc/hosts</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<p>
现在我们在进行对机器为"hadoop2"的主机名进行ping通测试,看是否能测试成功。</p>
<p>
<img title="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" alt="Hadoop2.X/YARN环境搭建--CentOS7.0系统配置" border="0" src="https://zhuji.jb51.net/uploads/img/202305/31f146cbb65fc709e113d91fa2ccce00.jpg"></p>
<p>
从上图中我们已经能用主机名进行ping通了,说明我们刚才添加的内容,在局域网内能进行dns解析了,那么现在剩下的事儿就是在其余的slave机器上进行相同的配置。然后进行测试。</p>
頁:
[1]