Fy J
CS专业扫雷学深造学者互联网冲浪一级选手
FRIENDS
jhn

Ubuntu16.04虚拟机+Hadoop:伪分布式

05-28-2021 14:17:20 Hadoop
Word count: 1.2k | Reading time: 4min

原创文章,转载、引用请注明出处!


介绍

Hadoop是一个由Apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

Hadoop实现了一个分布式文件系统(Distributed File System),其中一个组件是HDFS(Hadoop Distributed File System)。HDFS有高容错性的特点,并且设计用来部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)来访问应用程序的数据,适合那些有着超大数据集(large data set)的应用程序。HDFS放宽了(relax)POSIX的要求,可以以流的形式访问(streaming access)文件系统中的数据。

Hadoop的框架最核心的设计就是:HDFS和MapReduce。HDFS为海量的数据提供了存储,而MapReduce则为海量的数据提供了计算。

Hadoop一共有三种部署方式,分别是本地部署、伪分布部署、集群部署。Hadoop默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。非分布式即单Java进程,方便进行调试。而Hadoop伪分布模式的工作原理和集群模式的工作原理一样。

Hadoop伪分布式

使用64位的Ubuntu 16.04虚拟机以及Hadoop 2.7.2 (stable)版本进行Hadoop伪分布式配置和测试。

创建hadoop用户

需要使用名为hadoop的用户来进行接下来的步骤。

在原用户的terminal中进行如下操作:

SSH

切换到新用户hadoop,准备工作就是做一下apt-get的更新以及需要用到的文本编辑器的安装。

集群、单节点模式都需要用到SSH登陆,需要安装SSH server:

SSH server安装完成后,使用ssh localhost即可登录本机。但这样登陆需要每次输入密码。再将SSH配置成无密码登陆:

进行上图命令之前,需要先登陆一次本地SSH,exit后再操作。

Java环境

Hadoop需要Java环境。使用如下命令安装JDK:

JDK安装结束以后,需要配置JAVA_HOME环境变量:

更新环境变量之后,检验Java环境:

上图中信息证明JDK已成功安装。

Hadoop安装及非分布式实例测试

在官网中选择需要的版本进行Hadoop下载,为压缩文件格式:

Hadoop解压后即可使用。检查Hadoop环境:

上图中成功输出了Hadoop版本信息,说明Hadoop安装成功。

Hadoop附带了丰富的例子,见命令./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar

选择运行grep例子来测试Hadoop非分布式,步骤如下:

  • 给出input目录;

  • 复制hadoop配置文件至input目录,用作grep例子的输入;

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

  • 执行成功后,查看结果:

可见,执行成功后,输出的结果是符合正则的单词dfsadmin,该词出现了1次。

伪分布式配置及实例测试

Hadoop的配置文件是xml格式,每个配置以声明property的name和value的方式来实现,位于/usr/local/hadoop/etc/hadoop/中。

伪分布式需要修改2个配置文件core-site.xmlhdfs-site.xml

修改完配置文件之后,进行NameNode格式化:

successfully formattedExitting with status 0证明NameNode格式化操作成功。

然后开启NameNode和DataNode守护进程。可以使用jps命令和Web界面http://localhost:50070检查是否成功:

按照如下步骤进行Hadoop伪分布式实例测试:

  • 单机模式的grep例子读取的是本地数据,伪分布式读取的则是HDFS上的数据,使用HDFS需要在HDFS中创建用户目录;

  • 给出input目录;

  • 将./etc/hadoop中的xml文件作为输入文件复制到分布式文件系统中,即将/usr/local/hadoop/etc/hadoop复制到分布式文件系统中的/user/hadoop/input中;

  • 同样将input中的所有文件作为输入,筛选当中符合正则表达式dfs[a-z.]+的单词并统计出现的次数,最后输出结果到output文件夹中(伪分布式运行 MapReduce 作业的方式跟单机模式相同,区别在于伪分布式读取的是HDFS中的文件);

  • 查看位于HDFS中的输出结果:

输出结果有4条内容。因为修改了配置文件,所以这里的运行结果与本地模式下的运行结果不同。


参考

Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0(2.7.1)/Ubuntu14.04(16.04)
http://dblab.xmu.edu.cn/blog/install-hadoop/

< PreviousPost
论文研读:AdderNet/AdderSR
NextPost >
社会媒体计算:知乎问答信息挖掘
CATALOG
  1. 1. 介绍
  2. 2. Hadoop伪分布式
    1. 2.1. 创建hadoop用户
    2. 2.2. SSH
    3. 2.3. Java环境
    4. 2.4. Hadoop安装及非分布式实例测试
    5. 2.5. 伪分布式配置及实例测试
  3. 3. 参考