本教程基于 Hadoop 2.4.1,但对于 Hadoop 2.x 版本应该都是适用的。
创建hadoop用户如果你安装Ubuntu的时候不是用的hadoop用户,那么需要增加一个名为hadoop的用户,并将密码设置为hadoop。
创建用户
sudo useradd hadoop修改密码为hadoop,按提示输入两次密码
sudo passwd hadoop给hadoop用户创建目录,方可登陆
sudo mkdir /home/hadoop sudo chown hadoop /home/hadoop可考虑为 hadoop 用户增加管理员权限,方便部署,避免一些权限不足的问题:
sudo adduser hadoop sudo最后注销当前用户,使用hadoop用户进行登陆。
安装SSH server、配置SSH无密码登陆Ubuntu默认安装了SSH client,还需要安装SSH server。
sudo apt-get install openssh-server集群、单节点模式都需要用到SSH无密码登陆,首先设置SSH无密码登陆本机。
输入命令
ssh localhost会有如下提示(SSH首次登陆提示),输入yes。
SSH首次登陆提示
然后按提示输入密码hadoop,这样就登陆到本机了。但这样的登陆是需要密码的,需要配置成无密码登陆。
先退出刚才的ssh,然后生成ssh证书:
exit # 退出 ssh localhost cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost ssh-keygen -t rsa # 一直按回车就可以 cp id_rsa.pub authorized_keys此时再用ssh localhost命令,就可以直接登陆了,如下图所示。
SSH无密码登陆
安装Java环境以前的教程都是建议安装Oracle的JDK,不建议使用OpenJDK,不过按中说的,新版本在OpenJDK 1.7下是没问题的。通过命令安装OpenJDK 7。
sudo apt-get install openjdk-7-jre openjdk-7-jdk默认的安装位置为: /usr/lib/jvm/java-7-openjdk-amd64 (可以通过命令dpkg -L openjdk-7-jdk看到)。安装完后就可以使用了,可以用java -version检查一下。
需要配置一下 JAVA_HOME 环境变量,这个环境变量很多地方都会用到,在 /etc/environment 中配置:
sudo vim /etc/environment在文件末尾添加一行:
JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"保存,最后需要注销然后再次登陆,或重启一下,才能保证 JAVA_HOME 在新打开的终端窗口中都能使用(注销、重启后,新打开一个终端窗口,输入 echo $JAVA_HOME 检验)。
安装Hadoop 2.4.1CentOS安装和配置Hadoop2.2.0
Ubuntu 12.10 +Hadoop 1.2.1版本集群配置
搭建Hadoop环境(在Winodws环境下用虚拟机虚拟两个Ubuntu系统进行搭建)
下载后,解压到/usr/local/中。
sudo tar -zxvf ~/下载/hadoop-2.4.1.tar.gz -C /usr/local # 解压到/usr/local中 sudo mv /usr/local/hadoop-2.4.1/ /usr/local/hadoop # 将文件名改为hadoop sudo chown -R hadoop:hadoop /usr/local/hadoop # 修改文件权限Hadoop解压后即可使用。输入如下命令Hadoop检查是否可用,成功则会显示命令行的用法:
/usr/local/hadoop/bin/hadoop Hadoop单机配置Hadoop默认配置是以非分布式模式运行,即单Java进程,方便进行调试。可以执行附带的例子WordCount来感受下Hadoop的运行。例子将Hadoop的配置文件作为输入文件,统计符合正则表达式dfs[a-z.]+的单词的出现次数。
cd /usr/local/hadoop mkdir input cp etc/hadoop/*.xml input bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.1.jar grep input output 'dfs[a-z.]+' cat ./output/*执行成功后如下所示,输出了作业的相关信息,输出的结果是符合正则的单词dfsadmin出现了1次
Hadoop单机WordCount输出结果再次运行会提示出错,需要将./output删除。
rm -R ./output Hadoop伪分布式配置