利用Hadoop在linux下搭建真分布式平台的详细步骤:
参考文章:
1.
http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop3/一 准备工作
1.硬件平台及参数配置
虚拟机: VMware-workstation-6.0.5-109488
操作系统: 操作系统 fedora 9 用户名root,密码:123456
系统配置: 使用四台机器,都安装fedora 9 一个master 三个slave 这么做是为了测试hdfs分布式存储时,是 备份成三份,关掉某一台slave看是否影响整体的文件系统。
四台机器的具体网络配置为:
机器名 IP地址 master 192.168.213.170
slave1 192.168.213.172
slave2 192.168.213.173
slave3 192.168.213.175
具体操作一:
刚安装好的操作系统Fedora 9 是默认机器名及动态IP
1.配置好主机名和IP地址(现设固定ip再设主机名)
#hostname //
查看主机名 #ifconfig //查看ip地址
1.1先要设置静态IP
在fedora 9以后,网络管理有了一个新的服务NetworkManager 原来的是Network服务,这就造成了,配置固定ip的时候,遇到了新的问题。
具体操作:
1.先禁止NetworkManament服务
2.然后,在图像界面下,找到 系统》管理》网络 在网络配置界面下删除,原来的配置文件,也就是eth0的配置文件,新建一个eht1的配置文件,因为禁止了NetworkManager服务,改用原来的Network服务,所以就可以通过配置/etc/sysconfig/network-scripts/ifcfg-eth1的配置文件来设置固定ip 解决办法:
Fedora9使用新Network Management引起的网络问题
Fedora9使用新Network Management引起的网络问题
问题描述:
电脑IP设置静态IP后,连不上路由器(连不上网)
解决方案:
摘自: //Personal Fedora 9 Installation Guide
Network Management(禁止NetworkManment的方法)
(1) Network Management
Fedora 9 默认使用NetworkManager,它极大改善使用无线及移动网络设备。可能会有些配置问题。NetworkManager 还在不断的开发之中。
注意:下面的步骤给所有使用者。NetworkManager 非常高的被推荐给膝上电脑用户,特别是用于无线的安装网络。
如果你正在使用NetworkManager 并且 有些问题, 以root身份修改/etc/sysconfig/network并添加下面的行:
NETWORKWAIT=1 或运行:
$sudo su -c 'echo NETWORKWAIT=1 >> /etc/sysconfig/network'
(2) NetworkManager on Fixed Networks
机器上有固定的网络设备和固定的IP地址,很方便面的可以禁用NetworkManager和使用老的network service.
Fedora 9在安装时默认是禁用network service.
切换到使用network service:
首先、禁用NetworkManager和防止它自动加载;
$sudo /etc/init.d/NetworkManager stop
Stopping NetworkManager daemon: [ OK ]
$sudo /sbin/chkconfig --level 35 NetworkManager off
下一步、配置你的网络设置:
$sudo system-config-network
如果你使用静态IP,不要忘记在DNS列表中设置DNS。
确认选中并激活eth0
然后,fiel/save and quit.
下一步、启用service并确认下一次重次会被加载:
$sudo /etc/init.d/network start
Bringing up loopback interface: [ OK ]
Bringing up interface eth0: [ OK ]
$sudo /sbin/chkconfig --level 35 network on
虽然重新激活时没有重启,建议重启;
http://blog.csdn.net/eric1031/archive/2008/06/05/2512722.aspx linux下设置固定IP
收藏
首先打开terminal
编辑网卡配置文件
vi /etc/sysconfig/network-script/ifcfg-eth0
进入编辑模式
按i键进行编辑
修改
DEVICE=eth0 #物理设备名
IPADDR=192.168.1.10 #IP地址
NETMASK=255.255.255.0 #掩码值
NETWORK=192.168.1.0 #网络地址(可不要)
BROADCAST=192.168.1.255 #广播地址(可不要)
GATEWAY=192.168.1.1 #网关地址
ONBOOT=yes # [yes|no](引导时是否激活设备)
USERCTL=no #[yes|no](非root用户是否可以控制该设备)
BOOTPROTO=static #[none|static|bootp|dhcp](引导时不使用协议|静态分配|BOOTP协议|DHCP协议)
然后修改DNS配置文件
vi /etc/resolv.conf
进入编辑模式
按i键进行编辑
修改
nameserver 202.109.14.5 #主DNS
nameserver 219.141.136.10 #次DNS
search localdomain
所以网络配置完成后,都需要重启网络服务:service network restart 或/etc/init.d/network restart
http://blog.csdn.net/eastream/archive/2010/02/21/5314923.aspx
问题:设置静态IP后,重启或重启路由,IP会发生变化
解决办法:
转自http://seu071189.blog.51cto.com/413567/122675
在安装完毕后,尝试设置静态IP地址,发现在network下面修改完毕之后,其netmask与gateway始终相同,导致网络链接不上(右上角到链
接符号显示disconnected)。然后上网搜索了一下,发现这个现象在F9就已经存在,一直还没有修复。于是尝试几种解决方案,发现这个比较简单可
行,特此如下显示。
step 1:
# su root //只有root有权限
# password:
step 2:
# cd cd /etc/sysconfig/network-scripts/
# vi ifcfg-eth0
修改配置文件如下:
# Marvell Technology Group Ltd. 88E8001 Gigabit Ethernet Controller
DEVICE=eth0
HWADDR=00:16:e6:db:c2:96
ONBOOT=yes
BOOTPROTO=static //这个应该是“static”
,而不是“dhcp”或“none”;
USERCTL=yes
PEERDNS=yes
IPV6INIT=no
NM_CONTROLLED=yes//这个应该是“yes”,如不修改,链接仍是disconnected
;
TYPE=Ethernet
NETMASK=***.***.***.***
IPADDR=***.***.***.***
DNS1=***.***.***.***
DNS2=***.***.***.***
GATEWAY=***.***.***.***
step 3:
# service network restart
step 4:
上网,呵呵
1.2设置主机名
http://www.cnblogs.com/ungshow/archive/2009/03/16/1412842.html[转]
作者:北南南北
来自:LinuxSir.Org
摘要:本文是关于Linux操作系统主机名(hostname)的文档,对主要配置文件/etc/hosts进行简要的说明 ;另外对基配具工具hostname也进行了举例说明; 欢迎高手斧正,谢谢;
++++++++++++++++++++++++++++++++++++++++
正文
++++++++++++++++++++++++++++++++++++++++
1、 什么是主机名;
无论在局域网还是INTERNET上,每台主机都有一个IP地址,是为了区分此台主机和彼台主机,也就是说IP地址就是主机的门牌号。但IP地址不
方便记忆,所以又有了域名。域名只是在公网(INtERNET)中存在(以实验为目的的局域网域网实验性除外),每个域名都对应一个IP地址,但一个IP
地址可有对应多个域名。域名类型 linuxsir.org 这样的;
主机名是用于什么的呢?在一个局域网中,每台机器都有一个主机名,用于主机与主机之间的便于区分,就可以为每台机器设置主机名,以便于以容易记忆的方法来相互访问。比如我们在局域网中可以为根据每台机器的功用来为其命名。
主机名相关的配置文件:/etc/hosts;
2. 主机名配置文件;
主机名的配置文件大多是/etc/hosts ;
hosts - The static table lookup for host name(主机名查询静态表);
由于 Linux 发行版本众多,与主机名相关的配置文件有时也有所不同。现在我们说说常见版本的主机名配置文件;
2.1 主机名配置文件 /etc/hosts解说;
Fedora/Redhat 或以Fedora/Redhat为基础打包的发行版,主机名配置文件是 /etc/hosts
Debian或以Debian为基础打包的发行版,主机名配置文件是 /etc/hostname 和/etc/hosts
Slackware的主机名配置文件是 /etc/hosts
那我们来读读 /etc/hosts的内容,看这个文件是用来做什么的。hosts 配置文件是用来把主机名字映射到IP地址的方法,这种方法比较简单。但这种映射只是本地机的映射,也就是说每台机器都是独立的,所有的计算机都不能相互通过hostname来访问。
注:在debian 中还有一个/etc/hostname的文件,这个文件就是直接把本地主机名写进去就行了,但要和 /etc/hosts中的本地主机名保持一致。
/etc/hosts 的内容一般有如下类似内容:
127.0.0.1 localhost.localdomain localhost
192.168.1.195 debian.localdomain debian
注:
一般情况下hosts的内容关于主机名(hostname)的定义,每行为一个主机,每行由三部份组成,每个部份由空格隔开。其中#号开头的行做说明,不被系统解释。
第一部份:网络IP地址;
第二部份:主机名.域名,注意主机名和域名之间有个半角的点,比如 localhost.localdomain
第二部份:主机名(主机名别名) ,其实就是主机名;
当然每行也可以是两部份,就是主机IP地址和主机名;比如 192.168.1.195 debian
127.0.0.1 是回环地址,比如我们不想让局域网的其它机器看到我们测试的网络程序,就可以用回环地址来测试。
为什么需要定义域名呢?其实理解也简单,比如我们有三台主机,每台做不同的事,一台做MAIL服务器,一台做FTP服务器,一台做SMB服务器,所以我们就可以这样来设计hostname;
127.0.0.1 localhost.localdomain localhost
192.168.1.2 ftp.localdomain ftp
192.168.1.3 mail.localdomain mail
192.168.1.4 smb.localdomin smb
把这上面这个配置文件的内容分别写入每台机器的/etc/hosts内容中,这样这三台局域网的机器就可以通过hostname来访问了。
2.2 主机名(hostname)和域名(Domain)的区别;
主机名就机器本身的名字,域名是用来解析到IP的。但值得一说的是在局域网中,主机名也是可以解析到IP上的;比如我们前面所说举的例子;
2.3 局域网的机器,不能通过主机名互访的原因;
有的弟兄可能会说,我的hostname彼此不能互访,其实这也问题也简单,我们前面已经提到了一个简单的解决办法。就是要让局域网中的所有主机都有一个通用的,并且包含所有主机的/etc/hosts文件;
另一个是做解决办法是做局域网DNS服务器,如果您的主机特别少,就用前面所说的简单方法就行;如何做DNS服务器,我将在以后的文档中专题介绍;
不过我值得一提的是做任何服务器都是以效率优先的原则为基础。比如我们在局域网中两台机器,我们还有必要做DNS服务器吗?无论怎么解决,最终的都是用最
有效率的办法解决问题;我们不能说明DNS多高级。如果DNS是为外网服务的,那就另说了,不做也得做。对不对?
3、主机名修改工具 hostname;
其实主机名的修改也有专用工具,就是hostname ;我认为如果用这个工具来修改主机名,不如直接修改 /etc/hosts 来的方便;您可以查看 hosname --help或 man hostname的帮助 。在这里我们只说简单的用法;
hostname 工具是用来显示和设置系统主机名,看下面的洋文;
hostname - show or set the system’s host name
举例解说:
* 显示主机名:
[root@linuxsir01 ~]# hostname
linuxsir01
此主机的主机名是linuxsir01,不加参数是用来显示当前操作的主机的主机名;
* 临时设置主机名:
我们可以用 hostname 后接主机名,这样就可以设置当前操作的主机的主机名,比如我们想把主机名设置为linuxsir02;
[root@linuxsir01 ~]# hostname linuxsir02
[root@linuxsir01 ~]# hostname 注:显示主机名
linuxsir02
通过hostname 工具来设置主机名只是临时的,下次重启系统时,此主机名将不会存在;所以您想修改主机名,想一直有效的,还是用前面所说修改主机名配置文件 /etc/hosts;
* 显示主机IP:
显示当前主机名的IP,可以用-i参数;
[root@linuxsir01 ~]# hostname -i
192.168.1.3
Linux下怎样修改主机名
1.首先,修改/etc/sysconfig/network里面的主机名字。
# vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=ycao //在这修改hostname
NISDOMAIN=eng-cn.platform.com
2.修改/etc/hosts里面的名字
# vi /etc/hosts
127.0.0.1 localhost.localdomain localhost
172.17.33.169 ycao //在这修改hostname
3.最后在终端下执行:
#hostname ***** //*****为修改的hostname
1.3 完成以后的配置结果:
在一台虚拟机上,也就是也配置master主机,她的ip:192.168.213.170 主机名是:master
主机名这部分:主要修改了两个配置文件/etc/hosts /etc/sysconfig/network
再把这个镜像拷贝复制成slave镜像是要修改:
1.修改ip地址,静态ip地址,改成自己的, 2.主机名 改成各自的主机名 也就是修改 /etc/sysconfig/network文件 但是/etc/hosts文件就不要改了,各个主机都通用。 3.复制镜像时,不要直接拷贝虚拟镜像文件,要用vmware的clone功能,clone镜像,直接拷贝镜像文件为造成网络问题,因为网卡的mac的地址也被拷贝了, 造成网络故障,这个问题,让我花费了半天的时间才找到原因。切记切记。
2 SSH配置
环境准备:一台master,一台slave。slave的操作系统环境设置是通过clone master镜像,并修改IP地址,主机名,并关闭selinux和防火墙:
http://blog.chinaunix.net/u/4515/showart_1011861.htmlSElinux关闭方式
|
|
|
关闭SELinux的方法: 修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。 如果不想重启系统,使用命令setenforce 0 注: setenforce 1 设置SELinux 成为enforcing模式 setenforce 0 设置SELinux 成为permissive模式
在lilo或者grub的启动参数中增加:selinux=0,也可以关闭selinux
#--------------------------------------------------------------- 查看selinux状态: /usr/bin/setstatus -v
如下: SELinux status: enabled SELinuxfs mount: /selinux Current mode: permissive Mode from config file: enforcing Policy version: 21 Policy from config file: targeted
getenforce/setenforce查看和设置SELinux的当前工作模式
| |
在fedora 9下关闭防火墙的方法如下: #setup
调出图形界面:
选择防火墙项,关闭即可。
http://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop3/
在 Hadoop 分布式环境中,Name Node (主节点) 需要通过 SSH 来启动和停止 Data Node
(从结点)上的各类进程。我们需要保证环境中的各台机器均可以通过 SSH 登录访问,并且 Name Node 用 SSH 登录 Data
Node 时,不需要输入密码,这样 Name Node 才能在后台自如地控制其它结点。可以将各台机器上的 SSH
配置为使用无密码公钥认证方式来实现。
现在流行的各类 Linux 发行版一般都安装了 SSH 协议的开源实现 OpenSSH, 并且已经启动了 SSH 服务, 即这些机器缺省应该就是支持 SSH 登录的。如果你的机器缺省不支持 SSH, 请下载安装 OpenSSH。
以下是配置 SSH 的无密码公钥认证的过程。首先,在 homer06 机器上执行命令,如代码清单 1 所示:
[root@master ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
a8:97:55:d3:95:d6:fe:f5:08:ca:4c:6e:24:62:b4:22 root@master
|
这个命令将为 master 上的当前用户 root 生成其密钥对,密钥对的保存路径使用缺省的
/root/.ssh/id_rsa, 要求输入 passphrase 的时候,直接回车。这样生成的证书以及公钥将存储在
/root/.ssh 目录,形成两个文件 id_rsa,id_rsa.pub。然后将 id_rsa.pub
文件的内容复制到每一台机器(包括本机 master)的
/root/.ssh/authorized_keys 文件的尾部,机器上不存在这个
/root/.ssh/authorized_keys 文件,可以自行创建一个。请注意 id_rsa.pub
文件的内容是长长的一行,复制时需注意,不要遗漏字符或混入了多余换行符。
接下来可以做一下 SSH 连接测试,从 master 分别向 master,slave1, slave2, slave3 发起 SSH 连接请求,确保不需要输入密码就能 SSH 连接成功。
注意第一次 SSH 连接时会出现如下提示信息:
The authenticity of host [homer06] can't be established.
The key fingerprint is: 74:32:91:f2:9c:dc:2e:80:48:73:d4:53:ab:e4:d3:1a
Are you sure you want to continue connecting (yes/no)?
请输入 yes, 这样 OpenSSH 会把连接过来的这台主机的信息自动加到 /root/.ssh/know_hosts 文件中去,第二次再连接时,就不会有这样的提示信息了。
二 安装部署Hadoop
1
我们首先在master主机上安装hadoop-0.18.2,安装在/opt目录下。自己下载jdk1.6 安装在/usr/local/jdk1.6.0_011.1 配置linux的java编译环境,使用刚安装的jdk1.6
现在用linux的朋友越来越多了,前几天就有两个朋友问我linux下怎么配置java环境,我想还有很多朋友想了解学习这方面的东西,就写一个完全一点的linux java环境配置吧,希望对大家有帮助。
一. 下载jdk5.0 for linux
到sun的主页 下载jdk安装文件jdk-1_5_0_05-linux-i586.bin
二. 解压安装jdk
在shell终端下进入jdk-1_5_0_05-linux-i586.bin文件所在目录,执行命令
./jdk-1_5_0_05-linux-i586.bin
这时会出现一段协议,连继敲回车,当询问是否同意的时候,输入yes,回车。之后会在当前目录下生成一个jdk-1.5.0_05目录,你可以将它复制到
任何一个目录下。
三. 需要配置的环境变量
1.
PATH环境变量。作用是指定命令搜索路径,在shell下面执行命令时,它会到PATH变量所指定的路径中查找看是否能找到相应的命令程序。我们需要把
jdk安装目录下的bin目录增加到现有的PATH变量中,bin目录中包含经常要用到的可执行文件如javac/java/javadoc等待,设置好
PATH变量后,就可以在任何目录下执行javac/java等工具了。
2.
CLASSPATH环境变量。作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,JVM就是通过CLASSPTH来寻找类的。我们
需要把jdk安装目录下的lib子目录中的dt.jar和tools.jar设置到CLASSPATH中,当然,当前目录“.”也必须加入到该变量中。
3. JAVA_HOME环境变量。它指向jdk的安装目录,Eclipse/NetBeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk。
四. 三种配置环境变量的方法
1. 修改/etc/profile文件
如果你的计算机仅仅作为开发使用时推荐使用这种方法,因为所有用户的shell都有权使用这些环境变量,可能会给系统带来安全性问题。
·用文本编辑器打开/etc/profile
·在profile文件末尾加入:
JAVA_HOME=/usr/share/jdk1.5.0_05
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
·重新登录
·注解
a. 你要将 /usr/share/jdk1.5.0_05jdk 改为你的jdk安装目录
b. linux下用冒号“:”来分隔路径
c. $PATH / $CLASSPATH / $JAVA_HOME 是用来引用原来的环境变量的值
在设置环境变量时特别要注意不能把原来的值给覆盖掉了,这是一种
常见的错误。
d. CLASSPATH中当前目录“.”不能丢,把当前目录丢掉也是常见的错误。
e. export是把这三个变量导出为全局变量。
f. 大小写必须严格区分。
2. 修改.bashrc文件
这种方法更为安全,它可以把使用这些环境变量的权限控制到用户级别,如果你需要给某个用户权限使用这些环境变量,你只需要修改其个人用户主目录下的.bashrc文件就可以了。
·用文本编辑器打开用户目录下的.bashrc文件
·在.bashrc文件末尾加入:
set JAVA_HOME=/usr/share/jdk1.5.0_05
export JAVA_HOME
set PATH=$JAVA_HOME/bin:$PATH
export PATH
set CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export CLASSPATH
·重新登录
3. 直接在shell下设置变量
不赞成使用这种方法,因为换个shell,你的设置就无效了,因此这种方法仅仅是临时使用,以后要使用的时候又要重新设置,比较麻烦。
只需在shell终端执行下列命令:
export JAVA_HOME=/usr/share/jdk1.5.0_05
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
五. 测试jdk
1. 用文本编辑器新建一个Test.java文件,在其中输入以下代码并保存:
public class test {
public static void main(String args[]) {
System.out.println("A new jdk test !");
}
}
2. 编译:在shell终端执行命令 javac Test.java
3. 运行:在shell终端执行命令 java Test
当shell下出现“A new jdk test !”字样则jdk运行正常。
六. 卸载jdk
·找到jdk安装目录的_uninst子目录
·在shell终端执行命令./uninstall.sh即可卸载jdk。
总结:我用的是修改/etc/profile文件的方法
1.2配置Hadoop的环境
1.2.1
在其中设置 JAVA_HOME 环境变量:export JAVA_HOME="/usr/local/jdk1.6.0_01".
1.2.2
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
<description>The name of the default file system. Either the literal string
"local" or a host:port for DFS.</description>
</property>
<property>
<name>mapred.job.tracker</name>
<value>hdfs://master:9001</value>
<description>The host and port that the MapReduce job tracker runs at. If
"local", then jobs are run in-process as a single map and reduce task.</description>
</property>
<name>dfs.name.dir</name>
<value>/opt/hadoopfs/name</value>
<description>Determines where on the local filesystem the DFS name node
should store the name table. If this is a comma-delimited list of directories
then the name table is replicated in all of the directories,
for redundancy. </description>
</property>
<property>
<name>dfs.data.dir</name>
<value>/opt/hadoopfs/data</value>
<description>Determines where on the local filesystem an DFS data node
should store its blocks. If this is a comma-delimited list of directories,
then data will be stored in all named directories, typically on different devices.
Directories that do not exist are ignored.</description>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
<description>Default block replication. The actual number of replications
can be specified when the file is created. The default is used if replication
is not specified in create time.</description>
</property>
</configuration>
|
参数 fs.default.name 指定 Name Node 的 IP 地址和端口号,此处我们将其设定为 master 及 9000
端口,参数 mapred.job.tracker 指定 JobTracker 的 IP 地址和端口号,此处我们将其设定为 master 及
9001 端口。 参数 dfs.name.dir 指定 Name Node 相关数据在本地文件系统上的存放位置, 此处我们将其设定为
/opt/hadoopfs/name ,参数 dfs.data.dir 指定 Data Node
相关数据在本地文件系统上的存放位置,此处我们将其设定为 /opt/hadoopfs/data 。注意, Hadoop
会自动创建这两个目录,无需事先创建。
1.2.3
修改 conf/masters 文件,将其中的 localhost 改为 master ,修改 conf/slaves 文件, 删掉其中的 localhost, 将我们的另三台机器 slave1, slave2,slave3 加入, 注意每个机器一行
至此, 我们已经在 homer06 上安装和配置好了 hadoop 和 jre, 现在需要将其部署到其它机器上去,通过 scp 命令即可完成,如代码清单3 所示:
[root@master hadoop-0.18.2]# scp -r . slave1:/opt/hadoop-0.18.2
[root@master hadoop-0.18.2]# scp -r /usr/local/jdk1.6.0_01/ slave1:/usr/local/jdk1.6.0_01
|
通过scp把jdk1.6.0_01发布到slave1上,但是这是还要在slave1上配置java的编译环境,方法如上,
修改/etc/profile文件末尾添加:
JAVA_HOME=/usr/local/jdk1.6.0_01
PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export JAVA_HOME
export PATH
export CLASSPATH
|
1.3
[root@master ~]# cd /opt/hadoop-0.18.2/bin/
[root@master bin]# ./hadoop namenode -format
|
1.4
[root@master bin]# cd /opt/hadoop-0.18.2/bin/
[root@master bin]# ./start-all.sh
|
启动完成之后,运行 ps -ef 命令应该可以看到 master上启动了 3 个新的 java 进程 (namenode,
secondary namenode, jobtracker), 同时,我们可以到 slave1, slave2,slave3 三台机器上用 ps
–ef 查看,这两台机器上应该已经自动启动了 2 个新的 java 进程 (datanode, tasktracker)
总结:到此环境搭建完成,应该可以启动了,可是这里面有几个问题,一定要重视,也是关系hadoop平台能不能运行起来,
第一个:防火墙一定要关闭,否则启动不起来datanode,(我可是忘了关闭master的防火墙,log报错为no route to host)
第二个:在slave镜像复制的时候,不能简单的拷贝,要用vmware的clone功能,我就是遇到了,单纯拷贝后,mac地址重复,网络出错的错误。
第三个:配置hadoop-site.xml文件时,第一项:
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
//
如果这里用主机名master,在有个小问题,就是别的机器使用web方式http://主机名:50070查看hadoop的运行状态时,出问题,所以这里最好用IP配置。第四个:一些关于hadoop配置使用的网址: