在《Hadoop》之"踽踽独行"(五)这一篇中,我们对Hadoop进行了简单的概述。接下来,我们就来了解一下Hadoop集群的安装。而Hadoop的安装模式有以下三种,我们一一来了解一下
VMware里的Linux系统。可安装CentOS-6.5-x86_64-bin-DVD1.iso 点击连接进行下载centos6.5
使用普通用户,进行解压、安装所需软件(权限问题,不到万不得已的情况下,坚决不要使用root身份)。
如:创建一个普通用户hyxy
useradd hyxy
passwd hyxy
使用hyxy这个普通用户进行一系列的操作
jdk开发环境。可选jdk1.7,点击查看jdk的下载链接地址
ssh软件。CentOS - DVD1.iso内置的软件, 可运行指令串 rpm -qa | grep ssh 查看是否已安装。
rsync软件。CentOS - DVD1.iso内置的软件,可运行指令串 :rpm -qa | grep rsync 查看是否安装
以Hadoop2.7.3版本为例进行安装。点击查看hadoop的下载链接地址。
以普通用户安装程序时,尽可能的将软件安装到自己的主目录下,如在主目录下创建一个apps目录,用于管理软件的安装路径。
/home/hyxy/apps/ #所有软件的父目录
[hyxy@master apps]$ ls #查看apps目录下的软件包
hadoop-2.7.3.tar.gz jdk-7u80-linux-x64.tar.gz
local(standalone) mode,即安装在单节点(一台主机)的本地模式,也叫独立模式。所有程序都在单个JVM上执行。使用本地文件系统,而不是分布式文件系统。无需运行任何守护进程(daemon),hadoop不会启动NameNode、DataNode等守护进程,Map()和Reduce()任务作为同一个进程的不同部分来执行的。
用于对MapReduce程序的逻辑进行调试,确保程序的正确。由于在本地模式下测试和调试MapReduce程序较为方便,因此,这种模式适宜用在开发阶段。
第一步、安装JDK,配置环境变量
将jdk-7u80-linux-x64.tar.gz上传到apps目录下,然后使用tar指令解压到apps目录下,后删除软件包:
[hyxy@master apps ]$ tar -zxv -f jdk-7u80-linux-x64.tar.gz。
[hyxy@master apps]$ rm jdk-7u80-linux-x64.tar.gz #解压后删除软件包,节省空间
再给jdk1.7 创建一个软链接jdk.soft
[hyxy@master apps]$ ln -s jdk1.7.0_80/ jdk.soft #软链接叫jdk.soft
我们在~/.bash_profile配置文件内,配置jdk的环境变量。
[hyxy@master apps]$ vim ~/.bash_profile
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
PATH=$PATH:$HOME/bin #可要可不要
# jdk environment
JAVA_HOME=/home/hyxy/apps/jdk.soft #配置环境变量JAVA_HOME
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH #千万别忘记拼接$PATH
export PATH JAVA_HOME
然后使用source命令,重新加载~/.bash_profile,后检查是否配置成功:java -version 。javac
[hyxy@master apps]$ source ~/.bash_profile
[hyxy@master apps]$ java -version #检测jdk版本
java version "1.7.0_80"
Java(TM) SE Runtime Environment (build 1.7.0_80-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode)
[hyxy@master apps]$ javac #测试javac命令
第二步、解压hadoop。
[hyxy@master apps]$ tar -zxv -f hadoop-2.7.3.tar.gz #1.解压软件包
[hyxy@master apps]$ rm hadoop-2.7.3.tar.gz #2.删除软件包
[hyxy@master apps]$ ln -s hadoop-2.7.3/ hadoop.soft #3.创建软链接hadoop.soft
[hyxy@master apps]$ ll
drwxr-xr-x. 9 hyxy hyxy 4096 8月 18 2016 hadoop-2.7.3
lrwxrwxrwx. 1 hyxy hyxy 13 1月 8 11:04 hadoop.soft -> hadoop-2.7.3/
drwxr-xr-x. 8 hyxy hyxy 4096 4月 11 2015 jdk1.7.0_80
lrwxrwxrwx. 1 hyxy hyxy 12 1月 8 10:45 jdk.soft -> jdk1.7.0_80/
上述步骤完成后,再配置hadoop的环境变量
[hyxy@master apps]$ vim ~/.bash_profile
...............
...............
# hadoop environment #追加hadoop环境变量
HADOOP_HOME=/home/hyxy/apps/hadoop.soft #配置HADOOP_HOME
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH #配置path,千万别忘记拼接$PATH
export PATH HADOOP_HOME
然后,再重新加载~/.bash_profile,测试hadoop命令
[hyxy@master apps]$ source ~/.bash_profile #重新加载配置文件
[hyxy@master apps]$ hadoop version #测试hadoop命令
Hadoop 2.7.3
当完成上述两大步骤,local(standalone) mode,就已经完美收官,是不是超级简单呀。不过我们可以进行下面的程序测试环节哦。
我们在hadoop的本地模式下,来测试一个mapreduce程序:统计符合正则表达式 'dfs[a-z.]+' 的单词,并输出到指定目录下。
第一步:在hadoop.soft目录下,创建目录input
[hyxy@master apps]$ cd hadoop.soft/
[hyxy@master hadoop.soft]$ mkdir input #创建目录input
第二步:将hadoop的etc/hadoop/下的所有xml文件复制到input下
[hyxy@master hadoop.soft]$ cp etc/hadoop/*.xml input/
第三步:使用hadoop自带的mapreduce程序进行统计符合增则表达式的单词,并输出到指定目录下
[hyxy@master hadoop.soft]$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep input output 'dfs[a-z.]+'
ps:如果有以下错误:Caused by: java.net.UnknownHostException: master。请在/etc/hosts里进行主机名和ip绑定操作
第四步:查看目录output下的内容
[hyxy@master hadoop.soft]$ cat output/part-r-00000
1 dfsadmin #正则表达式就匹配到一个单词
到此为止,本地模式的安装与程序测试,就彻底结束了。
如果感兴趣的,也可以参考hadoop官网的测试:https://hadoop.apache.org/docs/r2.7.3/hadoop-project-dist/hadoop-common/SingleCluster.html
--------------------------------------------------------------------------