作为一个初学者,当初安装Hadoop费了老劲,翻看各种教程查阅各种文档才勉强成功。现把安装步骤写在这里,供有缘人翻看。

(Linux版本:Ubuntu18.04.1桌面版64位操作系统)

安装步骤:

  • 如果是一个崭新的Ubuntu系统,很有可能还没有安装过Vim或者SSH。那么可以先做这些准备工作:




启动hadoop时zkfc无法启动 hadoop启动不了_hadoop启动后没有namenode


安装Vim

启动hadoop时zkfc无法启动 hadoop启动不了_hadoop启动没有namenode_02

安装 SSH Server


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop启动后没有namenode_03

设置SSH为无密码登陆

启动hadoop时zkfc无法启动 hadoop启动不了_hadoop启动没有namenode_04

SSH localhost登陆

  • 安装Java环境

进入Java JDK的下载主页并选择Linux x64版本的后缀为.tar.gz的压缩包进行下载


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop启动后没有namenode_05

下载Linux x64版本的后缀为.tar.gz的压缩包

将下载后的压缩包解压


启动hadoop时zkfc无法启动 hadoop启动不了_启动hadoop时zkfc无法启动_06

解压下载的安装包

  • 配置Java环境变量

修改文件/etc/profile


vim /etc/profile


在该文件最下方加入如下配置:

下面配置中的路径可能与我的不一样,根据自己情况修改即可。


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop启动没有namenode_07

新加配置

输入以下命令让系统配置文件立即生效:


source /etc/profile


此时(如果安装成功),可以查看到Java的版本号:


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop启动没有namenode_08

查看Java版本号

  • 安装Hadoop2

通过 http://mirror.bit.edu.cn/apache/hadoop/common/下载 “stable” 下的 "hadoop-2.x.y.tar.gz"


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop启动没有namenode_09

下载hadoop-2.x.y.tar.gz

将下载后的压缩文件解压到/usr/local/ 中


启动hadoop时zkfc无法启动 hadoop启动不了_启动hadoop时zkfc无法启动_10

解压

将解压后的文件夹更名并修改权限


启动hadoop时zkfc无法启动 hadoop启动不了_启动hadoop时zkfc无法启动_11

更名并修改权限

查看Hadoop的版本信息来验证是否可用


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop namenode启动不了_12

查看Hadoop的版本信息

Hadoop单机配置(非分布式)

Hadoop默认模式为非分布式模式,无需进行其他配置即可运行。非分布式即单Java进程,方便进行调试。

  • 选择运行grep例子,将input文件夹中的所有文件作为输入,筛选当中符合正则表达式dfs[a-z.]+的单词并统计出现的次数,最后输出结果到 output 文件夹中


启动hadoop时zkfc无法启动 hadoop启动不了_启动hadoop时zkfc无法启动_13

运行grep示例

查看输出结果


启动hadoop时zkfc无法启动 hadoop启动不了_启动hadoop时zkfc无法启动_14

查看输出结果

Hadoop默认不会覆盖结果文件,因此再次运行上面实例会提示出错,需要先将./output删除


rm -r ./output/


Hadoop伪分布式配置

Hadoop可以在单节点上以伪分布式的方式运行。Hadoop进程以分离的Java进程来运行,节点既作为NameNode也作为DataNode,同时,读取的是HDFS中的文件。

Hadoop 的配置文件位于/usr/local/hadoop/etc/hadoop/中,伪分布式需要修改2个配置文件,即core-site.xmlhdfs-site.xml。

  • 修改配置文件core-site.xml为如图所示


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop启动没有namenode_15

修改配置文件core-site.xml

  • 修改配置文件hdfs-site.xml为如图所示


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop 安装_16

修改配置文件hdfs-site.xml

在运行Hadoop的时候会读取配置文件,因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。

在上面的配置中,如果没有配置hadoop.tmp.dir参数,Hadoop会使用默认的临时目录(/tmp/hadoo-hadoop),而这个目录在重启时有可能被系统清理掉,导致必须重新执行format才行。所以需要进行设置,同时也指定了dfs.namenode.name.dir以及dfs.datanode.data.dir

  • 执行NameNode的格式化


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop 安装_17

格式化NameNode

  • 开启NameNode和DataNode守护进程


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop启动后没有namenode_18

开启守护进程

  • 成功启动后,通过http://localhost:50070查看NameNode和Datanode的信息,还可以在线查看HDFS中的文件


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop namenode启动不了_19

http://localhost:50070


运行Hadoop伪分布式实例

单机模式中的grep例子读取的是本地数据,伪分布式读取的则是HDFS上的数据

  • 在HDFS中创建用户目录


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop启动后没有namenode_20

在HDFS中创建用户目录

  • 将./etc/hadoop中的xml文件作为输入文件复制到分布式文件系统中


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop namenode启动不了_21

将xml文件复制到分布式文件系统中

  • 查看文件列表


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop启动没有namenode_22

查看文件列表

  • 伪分布式运行MapReduce作业


启动hadoop时zkfc无法启动 hadoop启动不了_启动hadoop时zkfc无法启动_23

运行MapReduce作业

运行MapReduce作业

  • 查看运行结果


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop 安装_24

运行结果

  • 将运行结果取回到本地


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop启动没有namenode_25

取回运行结果

  • 关闭Hadoop


启动hadoop时zkfc无法启动 hadoop启动不了_启动hadoop时zkfc无法启动_26

关闭Hadoop

启动YARN

YARN是 MapReduce中分离出来的,负责资源管理与任务调度。YARN运行于MapReduce之上,提供了高可用性、高扩展性

  • 重命名配置文件mapred-site.xml


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop namenode启动不了_27

重命名mapred-site.xml

  • 修改配置文件mapred-site.xml为如图所示


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop启动没有namenode_28

修改配置文件mapred-site.xml

  • 修改配置文件yarn-site.xml为如图所示


启动hadoop时zkfc无法启动 hadoop启动不了_启动hadoop时zkfc无法启动_29

修改配置文件yarn-site.xml

  • 启动YARN


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop启动后没有namenode_30

启动YARN

  • 通过jps查看启动情况


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop namenode启动不了_31

查看YARN的启动情况

  • 访问http://localhost:8088/cluster查看任务的运行情况


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop 安装_32

查看任务的运行情况

  • 关闭YARN


启动hadoop时zkfc无法启动 hadoop启动不了_hadoop 安装_33

关闭YARN