1,安装linux
本文假设从裸机开始,所以要先装linux。本人是ubuntu对支持者,所以装的是ubuntu,废话没有,很容易就装好了。在安装过程中,要注意所有节点对主机名应该有规律,比如node0, node1, node2 ...
2,准备
下面对软件对安装,全都使用了apt,这个软件需要互联网链接,如果你对网速极慢,或者根本链接不到外部网络(这个现象在教育网内很常见),可以从一个能上网对ubuntu电脑上的/var/cache/apt/archives文件夹里deb文件出来安装(什么?你问我这个文件夹里为什么没有想要的包,这个文件夹是apt对缓存文件夹,想要里面有你想要对东西,不用我提醒你应该怎么办了吧)。
ubuntu默认已经装好了openssh-client,需要安装openssh-server。命令如下:
sudo apt-get install openssh-server
然后是jdk:
sudo apt-get install default-jdk
3,配置网络
如果你的节点们可以通过dhcp服务器获得ip,我个人建议,这样做,原因是简单,不用怎么配置就搞定了。或者可以使用静态ip,作为一个牛b的linux大牛,应该可以通过一行命令来设置静态ip,但是我不会。我通常都是在gnome提供的网络管理器来设ip对。如果你用对linux里没有图形界面,那样请google。
设置好了ip地址之后,记忆在/etc/hosts文件中给每个节点起个名字,最好就是各自对主机名,这样有利于下面对配置和管理。
hadoop要求各节点间可以不需要输入密码就能用ssh互相登录。我使用了比官方方法简单一点方法来设置,但是据说安全性有点儿问题。下面是方法:
在某个节点上执行如下命令:
rm -rf ~/.ssh
ssh-keygen -t rsa
这个命令之后需要多按几次回车,知道再次出现命令提示符。当然,这个做法也不是很安全,里面有个输入key的地方,官方的建议是,输入一首歌的歌词,呵呵,这个建议很搞笑。当然在我的步骤中,这个key就是空值了。
cat ~/.ssh/id_rsa.pub >> authorized_keys
然后把整个.ssh文件夹考到所有对节点上,具体方法可以使用scp命令,具体命令由于和具体环境有关,下面不写。
这样网络就设置对差不多了。
4,安装hadoop
解压,这个比较简单,命令不写。解压对位置最好每个hadoop都一样,不一样有什么后果,我没试过。
之后要进行一些配置,首先进入解压后目录对conf文件夹,要修改对配置文件包括hadoop-env.sh hadoop-site.xml masters slaves
hadoop-env.sh中要uncomment下面一行:
export JAVA_HOME=/home/hadoop/jdk1.6.0_16/
当然具体的值,也要根据具体情况进行更改。
接下来是hadoop-site.xml,下面是我的文件内容。
configuration>
property>
name>fs.default.name/name>
value>hdfs://node0:6000/value>
/property>
property>
name>mapred.job.tracker/name>
value>node0:6001/value>
/property>
/configuratiron>
这个例子很直白,不解释。
masters里面是jobtracker和namenode所在节点的主机名或者ip地址,我的masters文件里只有一行,当然如果你想要设置多个节点作为主节点,也可以。
slaves里面是所有tasktracker和datanode对主机名或ip地址。
5,运行
先进入hadoop安装文件夹。然后依次运行如下命令:
bin/hadoop namenode -format
bin/start-all.sh
不出意外的话,现在hadoop就可以使用了。
Hadoop是一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储。Hadoop实现了一个分布式文件系统(Hadoop Distributed File System),简称HDFS。HDFS有着高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上。而且它提供高传输率(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求(requirements)这样可以流的形式访问(streaming access)文件系统中的数据。