折腾hadoop好久,期间几次完全推到重来,现在在这里写下来备份。本文不是写给别人作为教程,而是给我自己作提醒的,如果你碰巧看到了本文,那你可能需要一些linux基本知识才能正确理解。

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就可以使用了。