单机hadoop安装

启动Hadoop支持三种模式操作,分别是单机模式操作、伪分布模式操作和全分布模式操作。

单机模式操作是Hadoop的默认操作模式,当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,会保守地选择最小配置,即单机模式。该模式主要用于开发调试MapReduce程序的应用逻辑,而不会和守护进程交互,避免增加额外的复杂性。

伪分布模式操作是指在“单节点集群”上运行Hadoop,其中所有的守护进程都运行在同一台机器上。该模式在单机模式操作之上多了代码调试功能,可以查阅内存的使用情况、HDFS的输入输出以及守护进程之间的交互。

全分布模式操作是指一种实际意义上的Hadoop集群,其规模可从几个节点的小集群到成百上千个节点的大集群,甚至是成千上万的超大集群。

单机模式操作和伪分布模式操作均用于开发与调试的目的。真实的Hadoop 集群是全分布模式操作。

安装思路。一、搭建系统环境,配置ip,主机名,设置ssh无密码登录;二、配置jdk环境;三、安装部署hadoop

 

  1. 创建hadoop用户和hadoop组

(1)系统中已经存在了名为hadoop的用户与用户组,如果不是这样,root用户登录并使用如下命令将其创建:

#useradd  -d /home/hadoop –m hadoop

(2)为hadoop用户设置密码

#passwd  hadoop

输入2次密码,这里输入hadoop1234

(3)将hadoop添加为sudo的成员,使其具备管理员权限,以免后续操作遇到权限不足问题

#adduser hadoop sudo  不是使用useradd

单机hadoop安装

用如下命令可以从sudo中删去成员:

#deluser hadoop sudo

单机hadoop安装

  1. 更新apt程序

apt-get是什么?ubuntu下一款好用的软件安装管理工具,首先需要更新一下apt,否则后续使用apt安装软件时有可能无法安装。更新apt的命令为:

$sudo apt-get update

 

  1. 安装ssh并使sshd运行

Hadoopssh通信,因此ssh必须安装且sshd服务必须处于启动状态。前边章节已经介绍了ssh的安装与检测方法,恕不赘述。  apt-get install openssh-server  ps-e|grep ssh

  1. 配置ssh免密码登录

Hadoop要通过ssh(安全shell协议)远程登录,来启动Slave列表中各台机器的守护进程,但是节点之间每次访问都将要求输入密码确实太不方便,为此配置ssh为免密码登录,即ssh到其他机器无需密码即可执行指令。

SSH无密码原理:masternamenode/jobtrack)作为客户端,要实现无密码公钥认证,连接到服务器slavedatanode/tasktracker)上时,需要在master上生成一个公钥对,包括一个公钥和一个私钥,而后将公钥复制到所有的slave上。当master通过SSH连接slave时,slave就会生成一个随机数并用master的公钥对随机数进行加密,并发送给masterMaster收到**加密数之后再用私钥解密,并将解密数回传给slaveslave确认解密数无误后就允许master进行连接了。这就是一个公钥认证的过程,期间不需要用户手工输入密码。重要过程是将客户端master复制到slave上。

 

配置步骤:

(1)进入.ssh目录

$cd  ~/.ssh

如果提示无此目录,则先执行一次ssh localhost并exit。

(2)生成秘钥

$ssh-****** -t rsa 

过程如下图所示,其中有几次提示,直接回车即可。

单机hadoop安装

此时,~/.ssh/下生成了两个文件:id_rsaid_rsa.pub,这两个文件是成对出现的前者为私钥,后者为公钥。

(3)将公钥id_rsa.pub追加到authorized_keys授权文件中

$cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys

authorized_keys 用于保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容,开始时该文件是不存在的。

至此免密码登录配置完毕,之后再用ssh localhost,发现不需输入密码即可登录。

  1. 安装java环境

Hadoop是用Java语言编写的,因此安装Hadoop之前,必须安装Java环境。Java环境包括两个组件JdkJre

Java环境既可以选择 Oracle JDK,也可选择 OpenJDK,这里选用后者,并且为了兼容性考虑,建议选用1.7或更高版本。

(1)安装

安装命令如下,安装过程如下图所示。

$sudo apt-get install openjdk-7-jre openjdk-7-jdk

单机hadoop安装

安装完毕,可以如下命令来检查安装结果,如图所示。

$java -version

单机hadoop安装

 

图中结果显示了“java version "1.7.0_131"”字样,表明安装成功。

如下方法可以查看到java的安装目录:

$sudo find / -name java

单机hadoop安装

从上图可以看出,java安装的位置是/usr/lib/jvm/java-7-openjdk-amd64

(2)配置 JAVA_HOME等环境变量

本知识:设置 Linux 环境变量可以通过Shell export 实现,也可以通过修改几个文件来实现,但是export 方式只适合设置一些临时变量,因为变量只对当前终端 Shell 有效,而JAVA_HOME这样的环境变量通过文件来配置更加合适。下表给出了环境变量有关的几个文件对比。

  环境配置文件一览表

文件名称

适用范围

读取时机

备注

/etc/profile

系统变量文件,用于设置所有用户使用的全局变量

用户登录时

 

/etc/bashrc

每次新打开一个终端 shell

 

~/.profile

用户变量文件,只对单个用户生效

该用户登录时

其他linux中,文件名称有的是~/.bash_profile

~/.bashrc

当登录以及每次打开新的 shell

 

 

本教程以~/.bashrc为例,来配置JAVA的环境变量。步骤是:

1)打开hadoop用户的~/.bashrc文件,在其尾部添加如下几行,如图所示:

export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

单机hadoop安装

(2)使变量立即生效

$source  ~/.bashrc

输入如下两条命令,对比其执行结果,若结果相同(如图所示)则表明变量正确,已经生效。

$java –version

$$JAVA_HOME/bin/java –version

单机hadoop安装

 

  1. 下载hadoop-2.0-cdh5.11.0.tar.gz

下载地址:http://archive.cloudera.com/cdh5/cdh/5/,包大小约314M,该包是2017-4-12日刚发布的。可以从Windows下载然后上传,也可以直接在linux下输入命令“wget http://archive.cloudera.com/cdh5/cdh/5/hadoop-2.6.0-cdh5.11.0.tar.gz” 直接下载到/tmp目录下,如图所示。

单机hadoop安装

 

  1. 开始安装hadoop

我们选择将hadoop安装在/apps下

(1)建立子目录apps

$sudo mkdir /apps

(2)将得到的hadoop-2.6.0-cdh5.11.0.tar.gz包解压到/apps中,注意必须sudo,否则无权限

$sudo tar -xzvf /tmp/hadoop-2.6.0-cdh5.11.0.tar.gz -C /apps

解压完毕,在/apps下将生成一个名为“hadoop-2.6.0-cdh5.11.0”的目录,如图所示。

单机hadoop安装

(3)为了操作方便,将解压后的目录重命名,改为hadoop

$cd /apps

$sudo mv hadoop-2.6.0-cdh5.11.0 hadoop

(4)要确保所有的操作都是在用户hadoop下完成的,所以将该hadoop目录的属主用户和所属组均改为hadoop

$sudo chown -R hadoop:hadoop hadoop

操作过程如图所示。

单机hadoop安装

Hadoop解压后即可使用,如下命令可用于检查hadoop是否可用,如图所示。

$cd /apps/hadoop/bin

$./hadoop version

 

单机hadoop安装

 

 

接下来在hadoop上运行一个程序,程序功能是对某个文本文件中每个单词出现的频次进行统计,步骤:

(1)在/apps/hadoop目录中建立子目录input

(2)在input目录新建一个文本文件test.txt,其内容如下:

hello students

big data class 01 hello

big data class 02 hello

hello

welcome

(3)运行hadoop提供的样例程序来统计各单词的出现频次

[email protected]:/apps/hadoop$./bin/hadoop jar

./share/hadoop/mapreduce2/hadoop-mapreduce-examples-2.6.0-cdh5.11.0.jar wordcount ./input/test.txt ./output

其中,output是个目录,之前不存在,运行程序之后会自动生成。命令及执行过程如图所示。

 

单机hadoop安装

单机hadoop安装

 

(4)统计结果查看

统计的结果将存放于output目录中,如图所示。

单机hadoop安装

 

 

 

至此,单机模式hadoop已经安装完毕,也进行了相应的验证。可以看出,这种模式其实只是解压了hadoop的安装包,根本没有做hadoop的任何配置,就可以使用了,此时,hadoop使用的是linux本地系统存储,hadoop也没有启动任何自己的守护进程。