实践环境:
2.用户名:sa,环境:UBUNTU9.10,IP:192.168.0.103,作用:datanode,slave,tasktracker
2.安装SSH,实现SSH无密码登陆。
3.关闭防火墙
4.安装JDK,Hadoop
5.配置hadoop
1.修改主机名:
在/etc/hosts文件里面修改:
sa@sa:~$ cd ..
127.0.0.1 localhost.localdomain localhost
192.168.0.102 sa
192.168.0.103 ubuntu
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
/*
所有机器都改完,对应好之后,可是ping一下,看看是否成功:
PING ubuntu (192.168.0.103) 56(84) bytes of data.
64 bytes from ubuntu (192.168.0.103): icmp_seq=1 ttl=64 time=0.393 ms
64 bytes from ubuntu (192.168.0.103): icmp_seq=2 ttl=64 time=0.374 ms
64 bytes from ubuntu (192.168.0.103): icmp_seq=3 ttl=64 time=0.373 ms
^C
--- ubuntu ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.373/0.380/0.393/0.009 ms
2.安装SSH,实现SSH无密码登陆
2.1 安装SSH:sudo apt-get install openssh-server
2.2 实现SSH无密码登录:
非常详尽。摘录如下:
*************************
服务器之间建立信任关系,对于监控服务器管理很必要。这里介绍ssh的无密码登陆。
本机ip:192.168.1.6
[root@codfei ~]# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y (以为我是第2次建立关系所以此处覆盖原来的文件)
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:
04:37:13:2a:4b:10:af:c1:2b:03:3f:6b:27:ce:b9:62 root@codfei
[root@codfei ~]# cd .ssh/
[root@codfei .ssh]# ll
-rw------- 1 root root 883 Apr 25 17:51 id_rsa
-rw-r--r-- 1 root root 221 Apr 25 17:51 id_rsa.pub
-rw-r--r-- 1 root root 442 Apr 25 17:37 known_hosts
id_rsa是密钥文件,id_rsa.pub是公钥文件。
[root@codfei .ssh]# scp id_rsa.pub192.168.1.4:/root/.ssh/192.168.1.6
root@192.168.1.4's password:
id_rsa.pub 100% 221 0.2KB/s 00:00
这里把公钥文件取名为本机的ip地址就是为了以后和更多的机器建立信任关系不发生混淆。
现在登陆到192.168.1.4机器
[root@codfei ~]# cd .ssh/
[root@codfei .ssh]# cat 192.168.1.6 >> authorized_keys
然后回到192.168.1.6机器直接
[root@codfei .ssh]# ssh 192.168.1.4
Last login: Wed Aug 8 12:14:42 2007 from 192.168.1.6
这样就可以了,里面偶尔涉及到权限问题。一般./ssh文件夹是755 authorized_keys为600或者644
*************************
****************************************************
3.关闭防火墙
sa@sa:~$ sudo ufw disable
****************************************************
分别到官网下载tar.gz文件,解压缩至sa文件夹下。两台机子文件目录保持一样,以免不必要都麻烦。我都机器分别下载的是jdk.1.6.0_21和hadoop-0.20.2。
之后将下列语句添加至etc/profile文件中:
export JAVA_HOME=/home/sa/jdk1.6.0_21
sa@sa:/etc$ java -version
2.运行java程序
在/home/sa下建立一个hello.java都文件,输入以下内容:
public class hello
4.执行:java hello
sa@sa:~$ javac hello.java
5.配置hadoop
此处参考www.hadoopor.com网站制作的《Hadoop 开发者入门专刊》
***************************
hadoop 的主要配置都在 hadoop-0.20.2/conf 下。
$ gedit hadoop-env.sh
$ export JAVA_HOME=/home/sa/jdk1.6.0_21
masters: sa(只在 namenode 上配置)
slaves:(只在 datanode 做)
sa
(3)配置 conf/core-site.xml, conf/hdfs-site.xml 及 conf/mapred-site.xml(以下内容namenode 与 datanode 都做)
core-site.xml:
<configuration>
<!--- global properties -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/sa/tmp</value>
<description>A base for other temporary directories.</description>
</property>
<!-- file system properties -->
<property>
<name>fs.default.name</name>
<value>hdfs://sa:9000</value>
</property>
</configuration>
*******************
hdfs-site.xml:( replication 默认为 3,如果不修改,datanode 少于三台就会报错)
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
*******************
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>sa:9001</value>
</property>
</configuration>
*******************
运行hadoop:(以下命令在hadoop-0.20.2/bin下进行)
进入 hadoop-0.20.2/bin,首先格式化文件系统:$ hadoop namenode –format
启动 Hadoop:$ start-all.sh
Hadoop 的 web 方式查看:http://sa:50070