如何在 Ubuntu、CentOS 和 Fedora 上设置 Hadoop 2.6.5(单节点集群)

2023-10-25

阿帕奇Hadoop 2.6.5与之前的稳定 2.X.Y 版本相比有显着改进。该版本在HDFS和MapReduce方面有很多改进。本操作指南将帮助您在 CentOS/RHEL 7/6/5、Ubuntu 和其他基于 Debian 的操作系统上安装 Hadoop 2.6。本文不包括设置 Hadoop 的整体配置,我们只有开始使用 Hadoop 所需的基本配置。

第 1 步:安装 Java

Java 是在任何系统上设置 Hadoop 的主要要求,因此请确保使用以下命令在系统上安装了 Java。


# java -version 

java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.131-b11, mixed mode)
  

如果您的系统上尚未安装 Java,请先使用以下链接之一进行安装。

在 CentOS/RHEL 7/6/5 上安装 Java 8
在 Ubuntu 上安装 Java 8

第2步:创建Hadoop用户

我们建议为 Hadoop 工作创建一个普通(非 root)帐户。因此,使用以下命令创建一个系统帐户。


# adduser hadoop
# passwd hadoop
  

创建帐户后,还需要为自己的帐户设置基于密钥的 ssh。为此,请执行以下命令。


# su - hadoop
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
  

让我们验证基于密钥的登录。下面的命令不应要求输入密码,但第一次会提示将 RSA 添加到已知主机列表中。


$ ssh localhost
$ exit
  

步骤3.下载Hadoop 2.6.5

现在使用以下命令下载 hadoop 2.6.0 源存档文件。您还可以选择备用下载镜像以提高下载速度。


$ cd ~
$ wget http://www-eu.apache.org/dist/hadoop/common/hadoop-2.6.5/hadoop-2.6.5.tar.gz 
$ tar xzf hadoop-2.6.5.tar.gz 
$ mv hadoop-2.6.5 hadoop
  

步骤4.配置Hadoop伪分布式模式

4.1.设置 Hadoop 环境变量

首先,我们需要设置Hadoop使用的环境变量。编辑~/.bashrc文件并在文件末尾附加以下值。


export HADOOP_HOME=/home/hadoop/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
  

现在将更改应用到当前运行环境中


$ source ~/.bashrc
  

现在编辑$HADOOP_HOME/etc/hadoop/hadoop-env.sh文件并设置JAVA_HOME环境变量。根据系统上的安装更改 JAVA 路径。


export JAVA_HOME=/opt/jdk1.8.0_131/
  

4.2.编辑配置文件

Hadoop有很多配置文件,需要根据需求进行配置以设置Hadoop基础设施。让我们从基本 Hadoop 单节点集群设置的配置开始。首先,导航到以下位置


$ cd $HADOOP_HOME/etc/hadoop
  

编辑 core-site.xml


<configuration>
<property>
  <name>fs.default.name</name>
    <value>hdfs://localhost:9000</value>
</property>
</configuration>
  

编辑 hdfs-site.xml


<configuration>
<property>
 <name>dfs.replication</name>
 <value>1</value>
</property>

<property>
  <name>dfs.name.dir</name>
    <value>file:///home/hadoop/hadoopdata/hdfs/namenode</value>
</property>

<property>
  <name>dfs.data.dir</name>
    <value>file:///home/hadoop/hadoopdata/hdfs/datanode</value>
</property>
</configuration>
  

编辑mapred-site.xml


<configuration>
 <property>
  <name>mapreduce.framework.name</name>
   <value>yarn</value>
 </property>
</configuration>
  

编辑yarn-site.xml


<configuration>
 <property>
  <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
 </property>
</configuration>
  

4.3.格式化名称节点

现在使用以下命令格式化名称节点,确保存储目录是


$ hdfs namenode -format
  

示例输出:


15/02/04 09:58:43 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = svr1.tecadmin.net/192.168.1.133
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 2.6.5
...
...
15/02/04 09:58:57 INFO common.Storage: Storage directory /home/hadoop/hadoopdata/hdfs/namenode has been successfully formatted.
15/02/04 09:58:57 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
15/02/04 09:58:57 INFO util.ExitUtil: Exiting with status 0
15/02/04 09:58:57 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at svr1.tecadmin.net/192.168.1.133
************************************************************/
  

步骤5.启动Hadoop集群

现在使用 Hadoop 提供的脚本启动 Hadoop 集群。只需导航到 Hadoop sbin 目录并一一执行脚本即可。


$ cd $HADOOP_HOME/sbin/
  

Now run 启动dfs.sh script.


$ start-dfs.sh
  

示例输出:


15/02/04 10:00:34 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting namenodes on [localhost]
localhost: starting namenode, logging to /home/hadoop/hadoop/logs/hadoop-hadoop-namenode-svr1.tecadmin.net.out
localhost: starting datanode, logging to /home/hadoop/hadoop/logs/hadoop-hadoop-datanode-svr1.tecadmin.net.out
Starting secondary namenodes [0.0.0.0]
The authenticity of host '0.0.0.0 (0.0.0.0)' can't be established.
RSA key fingerprint is 3c:c4:f6:f1:72:d9:84:f9:71:73:4a:0d:55:2c:f9:43.
Are you sure you want to continue connecting (yes/no)? yes
0.0.0.0: Warning: Permanently added '0.0.0.0' (RSA) to the list of known hosts.
0.0.0.0: starting secondarynamenode, logging to /home/hadoop/hadoop/logs/hadoop-hadoop-secondarynamenode-svr1.tecadmin.net.out
15/02/04 10:01:15 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
  

Now run 启动yarn.sh script.


$ start-yarn.sh
  

示例输出:


starting yarn daemons
starting resourcemanager, logging to /home/hadoop/hadoop/logs/yarn-hadoop-resourcemanager-svr1.tecadmin.net.out
localhost: starting nodemanager, logging to /home/hadoop/hadoop/logs/yarn-hadoop-nodemanager-svr1.tecadmin.net.out
  

步骤 6. 在浏览器中访问 Hadoop 服务

Hadoop NameNode 默认在端口 50070 上启动。在您最喜欢的网络浏览器中通过端口 50070 访问您的服务器。


http://svr1.tecadmin.net:50070/
  

现在访问8088端口以获取有关集群和所有应用程序的信息


http://svr1.tecadmin.net:8088/
  

访问端口 50090 以获取有关辅助名称节点的详细信息。


http://svr1.tecadmin.net:50090/
  

访问50075端口,获取DataNode详细信息


http://svr1.tecadmin.net:50075/
  

步骤 7. 测试 Hadoop 单节点设置

7.1 –使用以下命令创建所需的 HDFS 目录。


$ bin/hdfs dfs -mkdir /user
$ bin/hdfs dfs -mkdir /user/hadoop
  

7.2 –现在使用以下命令将所有文件从本地文件系统 /var/log/httpd 复制到 hadoop 分布式文件系统


$ bin/hdfs dfs -put /var/log/httpd logs
  

7.3 –现在通过在浏览器中打开以下网址来浏览 hadoop 分布式文件系统。


 http://svr1.tecadmin.net:50070/explorer.html#/user/hadoop/logs
  

7.4 –现在将hadoop分布式文件系统的日志目录复制到本地文件系统。


$ bin/hdfs dfs -get logs /tmp/logs
$ ls -l /tmp/logs/
  

您还可以检查本教程使用命令行运行 wordcount mapreduce 作业示例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Ubuntu、CentOS 和 Fedora 上设置 Hadoop 2.6.5(单节点集群) 的相关文章

随机推荐

  • Linux 中的正常运行时间命令

    在本教程中 我们将介绍uptime命令 顾名思义 uptime命令显示系统已经运行了多长时间 它还显示当前时间 登录用户数以及过去 1 5 和 15 分钟的系统负载平均值 如何使用正常运行时间命令 uptime 命令的语法如下 uptime
  • 如何在 CentOS 7 上使用 VSFTPD 设置 FTP 服务器

    FTP 文件传输协议 是一种标准的客户端 服务器网络协议 允许用户在远程网络之间传输文件 有多种可用于 Linux 的开源 FTP 服务器 最流行和最广泛使用的是PureFTPd ProFTPD and vsftpd 在本教程中 我们将在
  • Python while 循环

    循环是编程语言的基本概念之一 当您想要多次重复特定的代码块直到满足给定条件时 循环会很方便 Python中有两种基本的循环结构 for and while loops 本教程涵盖了以下基础知识whilePython 中的循环 我们还将向您展
  • NumPy loadtxt 教程(从文件加载数据)

    在之前的教程中 我们讨论过NumPy 数组 我们看到了它如何使读取 解析和对数字数据执行操作的过程变得轻而易举 在本教程中 我们将讨论 NumPy loadtxt 方法 该方法用于解析文本文件中的数据并将其存储在 n 维 NumPy 数组中
  • Linux Bash 脚本编写第 3 部分 – 参数和选项

    到目前为止 您已经了解了如何编写无需用户输入即可完成工作的 Linux bash 脚本 今天我们将继续我们的 Linux bash 脚本系列 如果您想了解我们在谈论什么 我建议您查看之前的帖子 Bash 脚本基础知识 Bash 脚本 For
  • Pythonnamedtuple(将元组提升到一个新的水平)

    在本教程中 我们将深入研究命名元组 它们是什么 如何创建和操作它们 以及何时使用它们 或不使用它们 命名元组是Python内置的一部分收藏模块 并且它们提供了一种将数据捆绑在一个名称下的便捷方法 它们是 Python 内置元组数据类型的子类
  • 使用 Python 处理 CSV:综合教程

    CSV 逗号分隔值 文件是存储和共享表格数据的最常见方法之一 这些文件由行和列组成 其中每行代表一个记录 列包含由分隔符 通常是逗号 分隔的值 Python 提供了多种内置方法来处理 CSV 文件 使您可以高效地读取 写入和操作数据 本教程
  • Linux Bash 脚本编写第 5 部分 – 信号和作业

    在上一篇文章中 我们谈到了输入 输出和重定向在 bash 脚本中 今天我们将学习如何在Linux系统上运行和控制它们 到目前为止 我们只能从命令行界面运行脚本 但这并不是运行 Linux bash 脚本的唯一方法 这篇文章描述了控制 Lin
  • 使用curl命令的SSL/TLS:安全连接指南

    卷曲命令是一种发出网络请求的工具 它在通过 HTTPS 与安全服务器通信时使用 SSL TLS 默认情况下 curl尝试在可用时使用安全连接 但了解如何控制和诊断这些连接至关重要 目录 hide 1 使用客户端证书 2 指定证书类型 3 使
  • 如何使用 tqdm 创建 Python 终端进度条?

    进度条是估算和显示任务所需时间的宝贵工具 这些也可以添加到您的 Python 脚本或代码块中 以指示代码执行所需的时间 Python 中有多种可用的库 例如progressbar and tqdm可以用于此目的 目录 hide 1 什么是
  • 使用 Linux curl 命令管理 Cookie

    与 Web 应用程序交互时 您会遇到处理 cookie 和会话的需要 在本教程中 您将学习如何使用卷曲命令发送 接收和管理 cookie 目录 hide 1 手动发送 Cookie 标头 2 存储从服务器接收到的 Cookie 3 通过请求
  • 正确理解 Linux 运行级别

    您可以将 Linux 运行级别视为操作系统运行的不同 模式 每种模式或运行级别都有其打开或关闭的进程和服务列表 从 Linux 启动时起 它就始终处于某个运行级别 当您继续使用计算机时 此运行级别可能会发生变化 具体取决于操作系统需要访问的
  • Linux PS1 提示定制终极指南

    PS1 或提示字符串 1 是主要提示变量 它定义 Linux shell 环境中命令行提示的外观和元素 它提供了多个自定义选项 使您的命令提示符信息更丰富且更具视觉吸引力 本教程将讨论这些细节 增强您的命令行界面体验 目录 hide 1 查
  • 11 个令人惊叹的 NumPy Shuffle 示例

    蟒蛇的NumPy包提供了各种用于执行涉及随机性的操作的方法 例如从给定的数字列表中随机选择一个或多个数字的方法 或者生成给定范围内的随机数的方法 或者从给定分布 所有这些方法均在randomNumPy 包的模块 其中一种方法是numpy r
  • 使用 pyenv 管理多个 Python 版本

    pyenv 是一个简单而强大的工具 用于管理多个Python版本 作为一名 Python 开发人员 您可能面临过不同项目需要不同 Python 版本的情况 pyenv 为这个问题提供了一个优雅的解决方案 本质上 pyenv 是一个 Pyth
  • 如何在Ubuntu 20.04上安装Netdata监控工具

    Netdata是一款专为实时系统性能监控解决方案而设计的开源工具 它收集系统活动的实时指标 如 CPU 使用 内存使用 带宽使用和磁盘活动等 并通过图形图表在 Web 界面上显示信息 Netdata官方团队建议安装netdata监控工具使用
  • 用于删除重复数组元素的 JavaScript 程序

    数组是包含一组元素的数据结构 通常这些元素都是相同的数据类型 例如整数或字符串 但在 JavaScript 中 我们可以存储不同类型的元素 使用数组 您可以组织数据 以便可以轻松地对一组相关值进行排序或搜索 本教程向您介绍了如何使用 Jav
  • 如何在 Debian 9 上安装 Python 3.9

    Python 是一种面向对象的高级编程语言 它是一个拥有大型社区的开源软件 Python 被 Google 等顶级科技公司用作关键语言 Python 3 9 稳定版本已发布 包含多项改进和安全更新 它包括多个新模块 改进的现有模块和许多其他
  • 如何在 Debian11 上安装和保护 Apache

    Apache HTTP Web 服务器是广泛使用的 Web 服务器之一 尤其是在 Linux 发行版上 它是一种免费的跨平台 被互联网上的大量网站使用 Apache Web 服务器使用 HTTP 来处理请求并接收 Web 信息 Apache
  • 如何在 Ubuntu、CentOS 和 Fedora 上设置 Hadoop 2.6.5(单节点集群)

    阿帕奇Hadoop 2 6 5与之前的稳定 2 X Y 版本相比有显着改进 该版本在HDFS和MapReduce方面有很多改进 本操作指南将帮助您在 CentOS RHEL 7 6 5 Ubuntu 和其他基于 Debian 的操作系统上安