注:此处都使用root权限
一、安装centos6.X,我用的是6.4版本,简易安装即可,如果是用虚拟机的话,要配置成NAT网络模式,别忘了配置静态IP和DNS,总之不仅要能相互ping通,还要试试能不能访问外网
注:有些啰嗦,但是这些错误是我犯过的,没有设置DNS,结果不能访问外网,使用桥接后hadoop网页的 browse the filesystem 链接打不开
二、关闭防火墙,主机关闭就可以
临时关闭:service iptables stop
永久关闭:chkconfig iptables off
检查防火墙是否开启:service iptables status
三、安装jdk
1、下载jdk-7u79-linux-x64.tar.gz并修改权限:
chmod 777 jdk-7u79-linux-x64.tar.gz
注:权限增加一个可执行就行,由实际情况而定,后面的权限问题都会是777
2、上传到linux服务器root目录下
3、解压tar包:
tar -zxvf jdk-7u79-linux-x64.tar.gz
4、配置环境变量:vi /etc/profile
将下面一段放到文件中:
export JAVA_HOME=/root/jdk1.7.0_79
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
5、令profile文件立即生效:
source /etc/profile
6、验证结果:javac
注:NameNode和DataNode都
要配置jdk
四、设置hosts
vi /etc/hosts
将下面的内容添加到文件中
192.168.248.201 hadoop1
192.168.248.202 hadoop2
192.168.248.203 hadoop3
ip地址和名字根据实际情况而定,后面都要用HostName设置hadoop,否则会导致 browse the filesystem 链接失效
另外介绍下,我的hadoop1为NameNode,hadoop2为DataNode和SecondNameNode,hadoop3为DataNode
五、安装ssh
1、检查时候能够连接外网
ping www.baidu.com
能ping通则证明可以连接外网
2、安装ssh
即使centos是最小化安装ssh服务也是安装好的,只不过客户端没有安装而已
安装ssh:
yum install ssh
安装ssh客户端:
yum install openssh-clients
一般情况只需要安装客户端就可以了
六、配置免密码登录
1、生成本机的公钥和私钥(NameNode和DataNode都要执行)
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
默认在 ~/.ssh目录生成两个文件, id_rsa:私钥,id_rsa.pub:公钥
2、导入公钥到认证文件,更改权限(NameNode和DataNode都要执行)
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
此时,可以用在ssh hadoop1,ssh hadoop2,ssh hadoop3在对应的服务器上测试一下,是否已经实现本地免密码登录
3、将NameNode上的公钥文件拷贝到从机上,我的DataNode的HostName是hadoop2和hadoop3(也可以用工具上传下载的方式):
scp ~/.ssh/id_rsa.pub hadoop2@host:/home/id_rsa.pub
scp ~/.ssh/id_rsa.pub hadoop3@host:/home/id_rsa.pub
4、将公钥导入到认证文件(DataNode都要执行)
cat /home/id_rsa.pub >> ~/.ssh/authorized_keys
此时,免密码登录就配置好了。
5、测试一下,在NameNode上执行命令:
ssh hadoop2
你会发现已经不许要输入密码就可以登录到hadoop2机器上了,想回到hadoop1上就执行 exit 命令
七、安装hadoop
1、下载hadoop-1.2.1安装包
http://apache.fayea.com/hadoop/common/hadoop-1.2.1/hadoop-1.2.1.tar.gz
放到 /root/ 目录下
2、修改权限:
chmod -R 777 hadoop-1.2.1.tar.gz
3、解压hadoop-1.2.1.tar.gz :
tar -zxvf hadoop-1.2.1.tar.gz
4、创建一个快捷方式:
ln -sf /root/hadoop-1.2.1 /home/hadoop-1.2.1
5、进入 /home/ 目录,修改快捷方式的权限:
chmod -R 777 hadoop-1.2.1/
八、修改/home/hadoop-1.2.1/conf/下的配置文件
1、core-site.xml:
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://hadoop1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop-1.2</value>
</property>
</configuration>
fs.default.name属性是指定hadoop的NameNode的主机,最好是用HostName,用ip会导致 browse the filesystem 链接失效(详见步骤四),另外提一句,9000端口是rpc协议,要和http协议区分开
hadoop.tmp.dir属性是hadoop文件系统依赖的基础配置,很多路径都依赖它。它默认的位置是在/tmp/{$user}下面,但是在/tmp路径下的存储是不安全的,因为linux一次重启,文件就可能被删除。
2、hadoop-env.sh:
export JAVA_HOME=/root/jdk1.7.0_79
为hadoop配置JAVA_HOME变量,这个变量大概在第9行,被注释了,放开注释,修改变量值即可
3、hdfs-site.xml:
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
</configuration>
dfs.replication属性是指定副本数,默认值为3,一般来说,副本数不应该比从机的数目多,我的从机数是2,所以我这里配置的是2
4、masters
hadoop2
masters文件是配置SecondNameNode的地址,我的SecondNameNode配置在了hadoop2上面了
5、slaves
hadoop2
hadoop3
slave是配置从机 DataNode 地址的
注:NameNode和DataNode的配置一样,可以解压之后在 /home/hadoop-1.2.1/conf/ 目录下执行命令替换/home/hadoop-1.2.1/conf/下的配置文件
scp ./* root@hadoop2:/home/hadoop-1.2.1/conf/
scp ./* root@hadoop3:/home/hadoop-1.2.1/conf/
也可以用工具上传下载的方式
九、启动hadoop
1、格式化hadoop的NameNode,在 /home/hadoop-1.2.1/bin 目录下执行命令
./hadoop namenode -format
2、启动dfs,执行命令
./start-dfs.sh
3、检查,在hadoop1,hadoop2,hadoop3上执行命令
jps
他会提示hadoop1启动了NameNode,hadoop2启动了DataNode和SecondNameNode,hadoop3启动了DataNode
4、修改实体机的hosts文件
回到熟悉的windows系统了,到 C:\Windows\System32\drivers\etc 目录下修改hosts文件,增加下面一段
192.168.248.201 hadoop1
192.168.248.202 hadoop2
192.168.248.203 hadoop3
5、打开浏览器访问一下吧
http://hadoop1:50070
点击Browse the filesystem链接