首先需要选择一个合适的操作系统。尽管Hadoop本身可以运行在Linux、Windows以及其他一些类 UNIX 系统 (如FreeBS、OpenBSD、Solaris 等)之上,但是 Hadoop 官方真正支持的作业平台只有 Linux。这就导致其他平台在运行 Hadoop 时,往往需要安装很多其他的宝来提供一些 Linux 操作系统的功能,以配合Hadoop的执行。例如,Windos 在运行 Hadoop 时,需要安装Cygwin等软件。我们这里选择Linux作为系统平台,来掩饰在计算机上如何安装 Hadoop ,运行程序并得最终结果。当然,其他平台仍然可以作为开发平台使用。对于正在使用Windows 操作系统的用户,可以通过在 Windos 操作系统中安装 Linux 虚拟机的方式完成实验。在Linux发行版的选择上,我们倾向于使用企业级的、稳定的操作系统作为实验的系统环境,同时,考虑到易用性以及是否免费等方面的问题,我们排除了 OpenSUSE 和RedHat 等发行版也可以用Ubuntu
Hadoop基本安装配置主要包括以下 5 个步骤。
(1)创建Hadoop 用户。
(2)安装Java
(3)设置SSH登陆权限
(4)单机安装配置
(5)为分布式安装配置(下一篇)
下面将分别介绍每个步骤的实现方法。
1.操作平台:
VMware里的Linux系统。可安装CentOS-6.5-x86_64-bin-DVD1.iso 点击连接进行下载centos6.5
2、用户要求
使用普通用户,进行解压、安装所需软件(权限问题,不到万不得已的情况下,坚决不要使用root身份)。
如:创建一个普通用户hyxy
useradd hyxy
passwd hyxy
使用hyxy这个普通用户进行一系列的操作
3、Java安装
由于 Hadoop 本身是使用 Java 语言编写的,因此 Hadoop 的开发和运行都需要 Java 的支持。一般要求Java 6或者更新的版本。
对于 Hadoop而言,采用更为广泛应用的 Oracle 公司的 Java版本,在功能上可能会更稳定一些。
4、必备软件:
jdk开发环境。选jdk1.8
ssh软件。CentOS - DVD1.iso内置的软件, 可运行指令串 rpm -qa | grep ssh 查看是否已安装。
rsync软件。CentOS - DVD1.iso内置的软件,可运行指令串 :rpm -qa | grep rsync 查看是否安装
5、SSH登录权限设置
对于Hadoop的为分布和伪分布而言,Hadoop 名称节点(NameNode)需要启动集群中所有机器的 Hadoop守护进程。这个过程可以通过SSH 登陆来实现。Hadoop并没有提供SSH输入密码登陆形式。因此,为了能够顺利登陆每台机器,需要将所有机器配置为名称节点可以登录他们。
6、安装单机Hadoop
以普通用户安装程序时,尽可能的将软件安装到自己的主目录下,如在主目录下创建一个apps目录,用于管理软件的安装路径。
home/hyxy/apps/ #所有软件的父目录
[hyxy@master apps]$ ls #查看apps目录下的软件包
hadoop-2.7.3.tar.gz jdk-7u80-linux-x64.tar.gz
这里使用的Hadoop 的版本为 2.7.3 。Hadoop-2.7.3.tar.gz 将该文件夹解压后,可以放置到自己喜欢的位置,如“/home/hyxy/apps”文件夹下。
7、课外小知识:
在window平台下,解压hadoop-2.7.3.tar.gz,(解压的位置路径不要有中文)将jar包和源码分离出来,以备以后方便查看。
新建文件夹_jars,搜索hadoop-2.7.3下的所有jar包,copy一份到_jars里
新建文件夹_sources,搜索_jars里的所有source.jar,剪切到_sources里
新建文件夹_test,搜索_sources里的所有test,剪切到_test里
新建文件夹_confs,搜索default.xml,将前四个copy到_confs里
安装详细步骤
第一步、安装JDK,配置环境变量
先查看虚拟机中是否安装了jdk,若有删除
[hyxy@master apps]$ rpm -qa | grep java
tzdata-java-2016c-1.el6.noarch
java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64
java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64
[hyxy@master apps]$ sudo rpm -e --nodeps tzdata-java-2016c-1.el6.noarch
[hyxy@master apps]$ sudo rpm -e --nodeps java-1.6.0-openjdk-1.6.0.38-1.13.10.4.el6.x86_64
[hyxy@master apps]$ sudo rpm -e --nodeps java-1.7.0-openjdk-1.7.0.99-2.6.5.1.el6.x86_64
将jdk文件上传到主目录下新建的apps文件夹中并解压
[hyxy@master ~]$ mkdir apps
[hyxy@master ~]$ cd apps/
[hyxy@master apps]$ ls
jdk-8u201-linux-i586.tar.gz
[hyxy@master apps]$ tar -zxv -f jdk-8u201-linux-i586.tar.gz
为jdk1.8创建一个软链接
[hyxy@master apps]$ ln -s jdk1.8.0_201 jdk
[hyxy@master apps]$ ls
jdk jdk1.8.0_201 jdk-8u201-linux-i586.tar.gz
在~/.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 env
JAVA_HOME=/home/jinge/apps/jdk
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
export PATH JAVA_HOME
~
使用source命令,重新加载~/.bash_profile
[jinge@master apps]$ source ~/.bash_profile
使用javac或java -version命令查看是否配置成功
[hyxy@master apps]$ java -version
java version "1.8.0_201"
Java(TM) SE Runtime Environment (build 1.8.0_201-b09)
Java HotSpot(TM) Client VM (build 25.201-b09, mixed mode)
解压hadoop,配置环境变量
解压hadoop,创建软链接
[hyxy@master apps]$ ls
hadoop-2.7.3.tar.gz jdk jdk1.8.0_201
[hyxy@master apps]$ tar -zxv -f hadoop-2.7.3.tar.gz
[hyxy@master apps]$ ln -s hadoop-2.7.3 hadoop
[hyxy@master apps]$ ls
hadoop hadoop-2.7.3 hadoop-2.7.3.tar.gz jdk jdk1.8.0_201
同样在~/.bash_profile中配置环境变量
...
#hadoop env
HADOOP_HOME=/home/hyxy/apps/hadoop
PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH HADOOP_HOME
然后重新加载此文件,并查看是否成功配置
[hyxy@master apps]$ source ~/.bash_profile
[hyxy@master apps]$ hadoop
Usage: hadoop [--config confdir] [COMMAND | CLASSNAME]
CLASSNAME run the class named CLASSNAME
or
where COMMAND is one of:
fs run a generic filesystem user client
version print the version
jar <jar> run a jar file
note: please use "yarn jar" to launch
YARN applications, not this command.
checknative [-a|-h] check native hadoop and compression libraries availability
distcp <srcurl> <desturl> copy file or directories recursively
archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
classpath prints the class path needed to get the
credential interact with credential providers
Hadoop jar and the required libraries
daemonlog get/set the log level for each daemon
trace view and modify Hadoop tracing settings
Most commands print help when invoked w/o parameters.