下面为Hadoop 1.x(以Hadoop 1.2.1 为例)单机模式的部署过程。
1、目录说明
a) /opt 父目录
b) /opt/modules 存放软件的安装目录
c) /opt/softwares 存放软件包
d) /opt/tools 存放工具目录,如开发IDE
e) /opt/data 存放测试数据
f) /home/hadoop 存放工具盒测试目录
2、添加用户/组
a) 创建组hadoop:groupadd hadoop
b) 添加用户hadoop到组hadoop中:useradd hadoop –g hadoop
c) 设置hadoop用户无密码sudo权限
i. 首先:chmod u+w /etc/sudoers
ii. 其次编辑:vim /etc/sudoers,添加如下内容:hadoop ALL=(roor)NOPASSWD:ALL
iii. 重新编辑权限:chmod u-w /etc/sudoers
iv. 切换用户hadoop:su hadoop
v. 测试:service iptables status
vi. 测试2:sudo serviceiptables status,看是否需要密码。
注意,经过上述步骤,如果切换到用户hadoop后界面显示bash,则按照如下步骤进行可以切换到用户名主机显示界面:
在root账户下,cp -a /etc/skel/. /home/hadoop/
3、JDK的安装
安装的jdk版本为jdk-6u45-linux-x64.bin
a) 把上述包拷贝到/opt/softwares目录下
b) 赋予可执行权限,chmod 777 jdk…
c) 执行 ./jdk…bin
d) 移动目录:mv 源目录到/modules下
e) 配置环境变量,vi /etc/profile,加入下属内容:
export JAVA_HOME=/opt/modules/jdk1.6.0_45
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
f) 立即生效 source /etc/profile
g) 测试 java –version等
4、Hadoop的安装
安装的Hadoop的版本为hadoop1.2.1
a) 解压:tar –zxvf hadoop-1.2.1.tar.gz
b) 移动到 /opt/modules 下
c) 配置环境变量,编辑 /etc/profile 文件,添加如下内容
export HADOOP_HOME=/opt/modules/hadoop-1.2.1
export PATH=$PATH:/opt/modules/hadoop-1.2.1/bin
d) 立即失效 source /etc/profile
e) 测试,执行命令:hadoop,如果出现下属警告
Warning:$HADOOP_HOME is deprecated.
则在/etc/profile中添加如下内容:
export JAVA_HOME=/opt/modules/jdk1.6.0_45
生效后重新测试即可。
当然,也可以直接把HADOOP_HOME注释掉。
产生上述现象的原因为:在脚本$HADOOP_HOME/bin/hadoop-config.sh脚本中,有如下内容:
if [ "$HADOOP_HOME_WARN_SUPPRESS" = "" ] && [ "$HADOOP_HOME" != "" ]; then
echo "Warning: \$HADOOP_HOME is deprecated." 1>&2
echo 1>&2
因此,解决方案是根据上述代码进行修改的。
f) 配置hadoop的jdk
i. 进入目录/opt/modules/hadoop-1.2.1/conf
ii. 编辑vim hadoop-env.sh,设置如下内容
export HADOOP_HOME_WARN_SUPPRESS=1
g) 测试MapReduce程序
i. 创建目录,进入目录opt/data后:mkdir input
ii. 拷贝文件,cp /opt/modules/hadoop-1.2.1/conf/*.xml /opt/data/input/
iii. 进入opt/modules/hadoop-1.2.1目录后,执行下属命令:
hadoop jarhadoop-examples-1.2.1.jar grep /opt/data/input/ /opt/data/output/ 'dfs[a-z.]+'
如下图结果所示:
进入output目录下,会显示如下内容: