目录

  • 测试环境
  • 创建hadoop用户
  • 更新apt
  • 安装SSH、配置SSH无密码登陆
  • 配置Java环境
  • 安装 Hadoop3.1.3
  • Hadoop部署方式介绍
  • Hadoop单机配置(非分布式)
  • Hadoop伪分布式配置
  • 运行Hadoop伪分布式实例

测试环境

Linux系统版本:ubuntukylin-20.04-pro
Hadoop版本:hadoop-3.1.3
Java版本:jdk-8u162-linux-x64


创建hadoop用户

如果你安装 Ubuntu 的时候不是用的 “hadoop” 用户,那么需要增加一个名为 hadoop 的用户。

首先按 ctrl+alt+t 打开终端窗口,输入如下命令创建新用户 :

sudo useradd -m hadoop -s /bin/bash

这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell。

接着使用如下命令设置密码,可简单设置为 hadoop,按提示输入两次密码:

sudo passwd hadoop

可为 hadoop 用户增加管理员权限,方便部署,避免一些对新手来说比较棘手的权限问题:

sudo adduser hadoop sudo

最后注销当前用户(点击屏幕右上角的齿轮,选择注销),返回登陆界面。在登陆界面中选择刚创建的 hadoop 用户进行登陆。


更新apt

用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了。按 ctrl+alt+t 打开终端窗口,执行如下命令:

sudo apt-get update

后续需要更改一些配置文件,用的是 vim(vi增强版,基本用法相同),建议安装一下:

sudo apt-get install vim

安装SSH、配置SSH无密码登陆

集群、单节点模式都需要用到 SSH 登陆(类似于远程登陆,你可以登录某台 Linux 主机,并且在上面运行命令),Ubuntu 默认已安装了 SSH client,此外还需要安装 SSH server:

sudo apt-get install openssh-server

安装后,可以使用如下命令登陆本机:

ssh localhost

此时会有如下提示(SSH首次登陆提示),输入 yes 。然后按提示输入密码 hadoop,这样就登陆到本机了。

但这样登陆是需要每次输入密码的,我们需要配置成SSH无密码登陆比较方便。

首先退出刚才的 ssh,就回到了我们原先的终端窗口,然后利用 ssh-keygen 生成密钥,并将密钥加入到授权中:

exit                           # 退出刚才的 ssh localhost
cd ~/.ssh/                     # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa              # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys  # 加入授权

此时再用 ssh localhost 命令,无需输入密码就可以直接登陆了,如下图所示。


配置Java环境

Linux系统下安装并配置Java环境


安装 Hadoop3.1.3

Hadoop安装文件,可以在Linux系统中到Hadoop官网下载hadoop-3.1.3.tar.gz,也可以使用终端模拟软件将文件从windows上传至Linux

 # 解压到/usr/local中
sudo tar -zxvf ./hadoop-3.1.3.tar.gz -C /usr/local# 切换至/usr/local目录
cd /usr/local/# 将文件夹名改为hadoop
sudo mv ./hadoop-3.1.3/ ./hadoop  # 修改文件权限
sudo chown -R hadoop ./hadoop

Hadoop 解压后即可使用。输入如下命令来检查 Hadoop 是否可用,成功则会显示 Hadoop 版本信息:

cd /usr/local/hadoop
./bin/hadoop version


Hadoop部署方式介绍

  Hadoop部署方式分三种:Standalone Mode(单机模式)、Pseudo-Distributed Mode(伪分布式模式)、Fully Distributed Mode(全分布式模式)

单机模式

  单机模式是Hadoop的默认模式。这种模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统。当首次解压Hadoop的源码包时,Hadoop无法了解硬件安装环境,便保守地选择了最小配置。在这种默认模式下所有3个XML文件均为空。当配置文件为空时,Hadoop会完全运行在本地。因为不需要与其他节点交互,单机模式就不使用HDFS,也不加载任何Hadoop的守护进程。该模式主要用于开发调试MapReduce程序的应用逻辑。

伪分布模式

  这种模式也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点伪分布模式在“单节点集群”上运行Hadoop,其中所有的守护进程都运行在同一台机器上。该模式在单机模式之上增加了代码调试功能,允许你检查内存使用情况,HDFS输入输出,以及其他的守护进程。

全分布模式
  Hadoop守护进程运行在一个集群上。


Hadoop单机配置(非分布式)

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

  现在我们可以执行例子来感受下 Hadoop 的运行。Hadoop 附带了丰富的例子(运行 ./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar 可以看到所有例子),包括 wordcount、terasort、join、grep 等。

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

cd /usr/local/hadoop
mkdir ./input
cp ./etc/hadoop/*.xml ./input   # 将配置文件作为输入文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/*          # 查看运行结果

  执行成功后如下所示,输出了作业的相关信息,输出的结果是符合正则的单词 dfsadmin 出现了1次

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

rm -r ./output

Hadoop伪分布式配置

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

  Hadoop 的配置文件位于 /usr/local/hadoop/etc/hadoop/ 中,伪分布式需要修改2个配置文件 core-site.xml 和 hdfs-site.xml 。Hadoop的配置文件是 xml 格式,每个配置以声明 property 的 name 和 value 的方式来实现。

修改配置文件 core-site.xml

vim core-site.xml

进入文件中,将其中<configuration>的内容进行修改:

<configuration><property><name>hadoop.tmp.dir</name><value>file:/usr/local/hadoop/tmp</value><description>Abase for other temporary directories.</description></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
</configuration>

修改完后,按Esc退出修改,输入 :wq 保存退出,如图:


同样的,修改配置文件 hdfs-site.xml:

<configuration><property><name>dfs.replication</name><value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:/usr/local/hadoop/tmp/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/usr/local/hadoop/tmp/dfs/data</value></property>
</configuration>


配置完成后,执行 NameNode 的格式化:

cd /usr/local/hadoop
./bin/hdfs namenode -format

成功的话,会看到 “successfully formatted” 的提示,如下:
接着开启 NameNode 和 DataNode 守护进程。

cd /usr/local/hadoop
./sbin/start-dfs.sh  #start-dfs.sh是个完整的可执行文件,中间没有空格

启动完成后,可以通过命令 jps 来判断是否成功启动

jps

  若成功启动则会列出如下进程: “NameNode”、”DataNode” 和 “SecondaryNameNode”(如果 SecondaryNameNode 没有启动,请运行 sbin/stop-dfs.sh 关闭进程,然后再次尝试启动尝试)。如果没有 NameNode 或 DataNode ,那就是配置不成功,请仔细检查之前步骤,或通过查看启动日志排查原因。


运行Hadoop伪分布式实例

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

./bin/hdfs dfs -mkdir -p /user/hadoop

  接着将 ./etc/hadoop 中的 xml 文件作为输入文件复制到分布式文件系统中,即将 /usr/local/hadoop/etc/hadoop 复制到分布式文件系统中的/user/hadoop/input 中。我们使用的是 hadoop 用户,并且已创建相应的用户目录 /user/hadoop ,因此在命令中就可以使用相对路径如 input,其对应的绝对路径就是 /user/hadoop/input:

./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input

复制完成后,可以通过如下命令查看文件列表:

./bin/hdfs dfs -ls input

  伪分布式运行 MapReduce 作业的方式跟单机模式相同,区别在于伪分布式读取的是HDFS中的文件(可以将单机步骤中创建的本地 input 文件夹,输出结果 output 文件夹都删掉来验证这一点)。

./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar grep input output 'dfs[a-z.]+'

查看运行结果的命令(查看的是位于 HDFS 中的输出结果):

./bin/hdfs dfs -cat output/*

结果如下,注意到刚才我们已经更改了配置文件,所以运行结果不同。

  Hadoop 运行程序时,输出目录不能存在,否则会提示错误“org.apache.hadoop.mapred.FileAlreadyExistsException: Output directory hdfs://localhost:9000/user/hadoop/output already exists” ,因此若要再次执行,需要执行如下命令删除 output 文件夹:

./bin/hdfs dfs -rm -r output    # 删除 output 文件夹


若要关闭 Hadoop,则运行

./sbin/stop-dfs.sh

Hadoop安装教程_单机/伪分布式配置相关推荐

  1. Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04

    给力星 追逐内心的平和 首页 笔记 搜藏 代码 音乐 关于 Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.04 2014-08-09 (updated: 2016 ...

  2. Hadoop安装教程_单机/伪分布式配置_CentOS6.4/Hadoop2.6.0

    本 Hadoop 教程由厦门大学数据库实验室出品,转载请注明.本教程适合于在 CentOS 6.x 系统中安装原生 Hadoop 2,适用于Hadoop 2.7.1, Hadoop 2.6.0 等版本 ...

  3. Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu16.04

    转自http://dblab.xmu.edu.cn/blog/install-hadoop/ 创建hadoop用户 创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell, ...

  4. Hadoop安装教程_单机伪分布式配置_Hadoop2.6.0(2.7.1)Ubuntu14.04(16.04)

    本教程适合于原生 Hadoop 2,包括 Hadoop 2.6.0, Hadoop 2.7.1 等版本,主要参考了官方安装教程,步骤详细,辅以适当说明,相信按照步骤来,都能顺利安装并运行Hadoop. ...

  5. Ubuntu16.04/Hadoop3.1.3安装教程_单机/伪分布式配置

    Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu16.04.6 为了方便学习本教程,请读者们利用Linux系统中自带的firefox浏览器打开本指南进行学习. ...

  6. Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)

    厦门大学(林子雨老师)Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04)

  7. ubuntu 安装java_Hadoop3.1.3安装教程_单机/伪分布式配置

    环境: 本教程使用 Ubuntu 18.04 64位 作为系统环境(或者Ubuntu 14.04,Ubuntu16.04 也行,32位.64位均可),请自行安装系统 装好了 Ubuntu 系统之后,在 ...

  8. Hadoop2.6.0安装教程_单机/伪分布式配置

    创建hadoop用户 如果你安装 Ubuntu 的时候不是用的 "hadoop" 用户,那么需要增加一个名为 hadoop 的用户. 输入如下命令创建新用户 : sudo user ...

  9. Hadoop安装教4程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.0

    Hadoop安装教4程_单机/伪分布式配置_Hadoop2.6.0/Ubuntu14.0 当开始着手实践 Hadoop 时,安装 Hadoop 往往会成为新手的一道门槛.尽管安装其实很简单,书上有写到 ...

  10. Hadoop安装教程_伪分布式配置-Ubuntu-CentOS6(究极详细、厦门大学数据库实验室)

    Hadoop安装教程_伪分布式配置_CentOS6.4/Hadoop2.6.0 Hadoop安装教程_单机/伪分布式配置_Hadoop2.6.0(2.7.1)/Ubuntu14.04(16.04) 林 ...

最新文章

  1. Python超过R,成为数据科学和机器学习的首选语言!
  2. 我的java开发规范
  3. 利用Spring的Aop实现项目的日志监控
  4. 奥特曼系列ol光元在哪个服务器,奥特曼系列ol光元怎么合理使用
  5. 超标量、超级流水线、超长指令字、向量机 SIMD
  6. nssl1335-蛋糕切割【数论,GCD】
  7. 【JSP】web.xml配置JavaWeb项目首页
  8. 容器、微服务和互联网架构浅谈
  9. android tablelayout 点击,Android Design之TableLayout选项卡
  10. linux 卸载docker 离线_Linux环境安装、卸载Docker
  11. Observer模式(观察者设计模式)
  12. linux 下使用 tc 模拟网络延迟和丢包-使用 linux 模拟广域网延迟 - Emulating wide area network delays with Linux...
  13. linux终端用什么颜色好,linux 终端输出颜色
  14. VBA中Sheets(String)和Sheets(Long)的速度
  15. 【深浅拷贝的实现方式】
  16. 如何快速找出一个数组中最大数和第二大数
  17. 《大唐豪侠》架构开发纪实
  18. libevent 使用流程
  19. 俄罗斯开发者赢得Facebook Hacker Cup大赛 楼天成获季军
  20. 挤牛奶洛谷uasco

热门文章

  1. 【JSP简单实现购物车(书本案例代码)】
  2. 数据库-创建数据库-创建数据表
  3. hmcl手机版_hmcl启动器手机版
  4. 12864c与语言字符显示,12864液晶显示C语言程序设计实例
  5. HeadFirstJava——1_基本概念
  6. silverlight自定义安装客户端插件
  7. php 随机经纬度,随机像mariadb插入10万数据,包括经纬度以及调用百度map API获取...
  8. NDS –无法加载数据(解决方案)–如何更新R4内核
  9. 各大组织大马默认密码
  10. 物理学步入禅境,缘起性空