如何在 Ubuntu 13.10 上安装 Hadoop

2023-11-05

先决条件

本教程的唯一先决条件是 VPS乌班图 13.10 x64安装。

您需要从命令行执行命令,可以通过以下两种方式之一执行:

  1. 使用 SSH 访问 Droplet。

  2. 使用 Digital Ocean Droplet 管理面板中的“控制台访问”

什么是 Hadoop?

Hadoop是一个框架(由软件库组成),它简化了分布在服务器集群上的数据集的处理。 Hadoop 的两个主要组件是HDFS and 映射减少.

HDFS 是 Hadoop 用于存储所有数据的文件系统。该文件系统跨越 Hadoop 使用的所有节点。这些节点可以位于单个 VPS 上,也可以分布在大量虚拟服务器上。

MapReduce 是编排所有 Hadoop 活动的框架。它负责将工作分配给集群中的不同节点。

使用 Hadoop 的好处

Hadoop 的架构允许您根据需要扩展硬件。可以增量添加新节点,而不必担心数据格式的更改或文件系统上应用程序的处理。

Hadoop 最重要的功能之一是,它允许您通过用廉价的商品服务器替换昂贵的服务器来节省大量资金。这是可能的,因为 Hadoop 将容错的责任从硬件层转移到了应用层。

安装Hadoop

安装、启动并运行 Hadoop 非常简单。但是,由于此过程需要编辑多个配置和设置文件,因此请确保正确遵循每个步骤。

1.安装Java

Hadoop 需要安装 Java,所以我们首先安装 Java:

apt-get update
apt-get install default-jdk

这些命令将更新您的 VPS 上的软件包信息,然后安装 Java。执行完这些命令后,执行以下命令来验证Java是否已安装:

java -version

如果已安装 Java,则应显示版本详细信息,如下图所示:

Java Verification
Java Verification

2. 创建和设置 SSH 证书

Hadoop 使用 SSH(访问其节点),这通常要求用户输入密码。但是,可以通过使用以下命令创建和设置 SSH 证书来消除此要求:

ssh-keygen -t rsa -P ''
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

执行这两个命令中的第一个后,可能会要求您输入文件名。只需将其留空并按 Enter 键即可继续。第二个命令将新创建的密钥添加到授权密钥列表中,以便 Hadoop 可以使用 SSH,而无需提示输入密码。

Setup SSH Certificates
Setup SSH Certificates

3. 获取并安装 Hadoop

首先,我们使用以下命令从其中一个镜像获取 Hadoop:

wget http://www.motorlogy.com/apache/hadoop/common/current/hadoop-2.3.0.tar.gz

Note: 此命令使用 Hadoop 网站上列出的镜像之一的下载链接。可以找到镜像列表在这个链接上。如果您愿意,您可以选择任何其他镜子。要下载最新的稳定版本,请选择hadoop-X.Y.Z.tar.gz文件来自current or the current2您选择的镜像上的目录。

下载Hadoop包后,执行以下命令解压:

tar xfz hadoop-2.3.0.tar.gz

此命令将将此包中的所有文件提取到名为的目录中hadoop-2.3.0。对于本教程,Hadoop 安装将移至/usr/local/hadoop目录使用以下命令:

mv hadoop-2.3.0 /usr/local/hadoop 

Note: 解压文件夹的名称取决于您下载并解压的 Hadoop 版本。如果您的版本与本教程中使用的版本不同,请相应地更改上述命令。

4. 编辑和设置配置文件

要完成 Hadoop 的设置,必须修改以下文件:

  • ~/.bashrc
  • /usr/local/hadoop/etc/hadoop/hadoop-env.sh
  • /usr/local/hadoop/etc/hadoop/core-site.xml
  • /usr/local/hadoop/etc/hadoop/yarn-site.xml
  • /usr/local/hadoop/etc/hadoop/mapred-site.xml.template
  • /usr/local/hadoop/etc/hadoop/hdfs-site.xml

我。编辑~/.bashrc

在编辑之前.bashrc文件在你的主目录中,我们需要找到Java的安装路径来设置JAVA_HOME环境变量。让我们使用以下命令来执行此操作:

update-alternatives --config java

这将显示如下内容:

Get Java Path
Get Java Path

该命令显示的完整路径为:

/usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java

的价值JAVA_HOME是之前的一切/jre/bin/java在上面的路径中 - 在这种情况下,/usr/lib/jvm/java-7-openjdk-amd64。记下这一点,因为我们将在此步骤和其他步骤中使用该值。

Now use nano(或您喜欢的编辑器)使用以下命令编辑 ~/.bashrc:

nano ~/.bashrc

这将打开.bashrc文件在文本编辑器中。转到文件末尾并在其中粘贴/键入以下内容:

#HADOOP VARIABLES START
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export HADOOP_INSTALL=/usr/local/hadoop
export PATH=$PATH:$HADOOP_INSTALL/bin
export PATH=$PATH:$HADOOP_INSTALL/sbin
export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_HOME=$HADOOP_INSTALL
export HADOOP_HDFS_HOME=$HADOOP_INSTALL
export YARN_HOME=$HADOOP_INSTALL
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_INSTALL/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_INSTALL/lib"
#HADOOP VARIABLES END

Note 1: 如果值JAVA_HOME您的 VPS 上有所不同,请务必更改第一个export在上述内容中相应声明。

Note 2: 使用 nano 打开和编辑的文件可以使用以下命令保存Ctrl + X。在提示保存更改时,输入Y。如果要求您输入文件名,只需按 Enter 键即可。

的结束.bashrc文件应该看起来像这样:

.bashrc contents
.bashrc contens

保存并关闭后.bashrc文件中,执行以下命令,以便您的系统识别新创建的环境变量:

source ~/.bashrc

将以上内容放入.bashrc文件确保这些变量在您的 VPS 启动时始终可用。

二.编辑/usr/local/hadoop/etc/hadoop/hadoop-env.sh

打开/usr/local/hadoop/etc/hadoop/hadoop-env.sh使用以下命令使用 nano 文件:

nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh

在此文件中,找到导出JAVA_HOME多变的。将此行更改为以下内容:

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

Note: 如果值JAVA_HOME您的 VPS 上有所不同,请确保相应地更改此行。

The hadoop-env.sh文件应该看起来像这样:

hadoop-env.sh contents
hadoop-env.sh contents

保存并关闭该文件。将上面的语句添加到hadoop-env.sh文件确保的值JAVA_HOME每当 Hadoop 启动时,变量就可供 Hadoop 使用。

三.编辑/usr/local/hadoop/etc/hadoop/core-site.xml

The /usr/local/hadoop/etc/hadoop/core-site.xml文件包含 Hadoop 在启动时使用的配置属性。该文件可用于覆盖 Hadoop 启动时的默认设置。

使用以下命令使用 nano 打开此文件:

nano /usr/local/hadoop/etc/hadoop/core-site.xml

在此文件中,在之间输入以下内容<configuration></configuration> tag:

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

The core-site.xml文件应该看起来像这样:

core-site.xml contents
core-site.xml contents

保存并关闭该文件。

四.编辑/usr/local/hadoop/etc/hadoop/yarn-site.xml

The /usr/local/hadoop/etc/hadoop/yarn-site.xml文件包含 MapReduce 启动时使用的配置属性。该文件可用于覆盖 MapReduce 启动时的默认设置。

使用以下命令使用 nano 打开此文件:

nano /usr/local/hadoop/etc/hadoop/yarn-site.xml

在此文件中,在之间输入以下内容<configuration></configuration> tag:

<property>
   <name>yarn.nodemanager.aux-services</name>
   <value>mapreduce_shuffle</value>
</property>
<property>
   <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
   <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

The yarn-site.xml文件应该看起来像这样:

yarn-site.xml contents
yarn-site.xml contents

保存并关闭该文件。

v. 创建和编辑 /usr/local/hadoop/etc/hadoop/mapred-site.xml

默认情况下,/usr/local/hadoop/etc/hadoop/文件夹包含/usr/local/hadoop/etc/hadoop/mapred-site.xml.template必须使用该名称重命名/复制的文件mapred-site.xml。该文件用于指定 MapReduce 使用哪个框架。

这可以使用以下命令来完成:

cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml

完成此操作后,使用以下命令使用 nano 打开新创建的文件:

nano /usr/local/hadoop/etc/hadoop/mapred-site.xml

在此文件中,在之间输入以下内容<configuration></configuration> tag:

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

The mapred-site.xml文件应该看起来像这样:

mapred-site.xml contents
mapred-site.xml contents

保存并关闭该文件。

六.编辑/usr/local/hadoop/etc/hadoop/hdfs-site.xml

The /usr/local/hadoop/etc/hadoop/hdfs-site.xml必须为正在使用的集群中的每个主机进行配置。它用于指定将用作namenodedatanode在该主机上。

在编辑此文件之前,我们需要创建两个目录,其中包含namenodedatanode对于此 Hadoop 安装。这可以使用以下命令来完成:

mkdir -p /usr/local/hadoop_store/hdfs/namenode
mkdir -p /usr/local/hadoop_store/hdfs/datanode

Note: 您可以在不同位置创建这些目录,但请确保修改其中的内容hdfs-site.xml因此。

完成此操作后,打开/usr/local/hadoop/etc/hadoop/hdfs-site.xml使用以下命令使用 nano 文件:

nano /usr/local/hadoop/etc/hadoop/hdfs-site.xml

在此文件中,在之间输入以下内容<configuration></configuration> tag:

<property>
   <name>dfs.replication</name>
   <value>1</value>
 </property>
 <property>
   <name>dfs.namenode.name.dir</name>
   <value>file:/usr/local/hadoop_store/hdfs/namenode</value>
 </property>
 <property>
   <name>dfs.datanode.data.dir</name>
   <value>file:/usr/local/hadoop_store/hdfs/datanode</value>
 </property>

The hdfs-site.xml文件应该看起来像这样:

hdfs-site.xml contents
hdfs-site.xml contents

保存并关闭该文件。

格式化新的 Hadoop 文件系统

完成上述步骤中概述的所有配置后,需要格式化 Hadoop 文件系统才能开始使用。这是通过执行以下命令来完成的:

hdfs namenode -format

Note: 这只需在开始使用 Hadoop 之前完成一次。如果在使用Hadoop后再次执行该命令,将会破坏Hadoop文件系统上的所有数据。

启动Hadoop

剩下要做的就是启动新安装的单节点集群:

start-dfs.sh

执行此命令时,系统会提示您两次,并显示类似以下内容的消息:

您确定要继续连接吗(是/否)?

Type in yes对于这两个提示,然后按 Enter 键。完成后,执行以下命令:

start-yarn.sh

执行上述两个命令将使 Hadoop 启动并运行。您可以通过输入以下命令来验证这一点:

jps

执行此命令应该会显示类似于以下内容的内容:

jps command
jps command

如果您可以看到与上面的屏幕截图类似的结果,则意味着您现在在 VPS 上运行了 Hadoop 的功能实例。

下一步

如果您有一个设置为使用 Hadoop 的应用程序,则可以启动该应用程序并开始在新安装中使用它。另一方面,如果您只是尝试和探索 Hadoop,则可以从在新文件系统上添加/操作数据或文件开始,以感受它。

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

如何在 Ubuntu 13.10 上安装 Hadoop 的相关文章

  • JavaMail Gmail 问题。 “准备启动 TLS”然后失败

    mailServerProperties System getProperties mailServerProperties put mail smtp port 587 mailServerProperties put mail smtp
  • 我需要在 Spring 中检查每个控制器中的有效会话吗? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 假设在 Spring Mvc 的 Web 应用程序中 我们是否需要检查每个控制器或 jsps 中的有效会话 我该如何解决 MVC 中的
  • CXF Swagger2功能添加安全定义

    我想使用 org apache cxf jaxrs swagger Swagger2Feature 将安全定义添加到我的其余服务中 但是我看不到任何相关方法或任何有关如何执行此操作的资源 下面是我想使用 swagger2feature 生成
  • 在数据流模板中调用 waitUntilFinish() 后可以运行代码吗?

    我有一个批处理 Apache Beam 作业 它从 GCS 获取文件作为输入 我的目标是根据执行后管道的状态将文件移动到两个 GCS 存储桶之一 如果管道执行成功 则将文件移动到存储桶 A 否则 如果管道在执行过程中出现任何未处理的异常 则
  • 在具有相同属性名称的不同数据类型上使用 ModelMapper

    我有两节课说Animal AnimalDto我想用ModelMapper将 Entity 转换为 DTO 反之亦然 但是对于具有相似名称的一些属性 这些类应该具有不同的数据类型 我该如何实现这一目标 动物 java public class
  • Java中接口作为方法参数

    前几天去面试 被问到了这样的问题 问 反转链表 给出以下代码 public class ReverseList interface NodeList int getItem NodeList nextNode void reverse No
  • 如何在 JFreeChart TimeSeries 图表上显示降雨指数和温度?

    目前 我的 TimeSeries 图表每 2 秒显示一个位置的温度 现在 如果我想每2秒显示一次降雨指数和温度 我该如何实现呢 这是我的代码 import testWeatherService TestWeatherTimeLapseSer
  • 使用 AWS Java SDK 为现有 S3 对象设置 Expires 标头

    我正在更新 Amazon S3 存储桶中的现有对象以设置一些元数据 我想设置 HTTPExpires每个对象的标头以更好地处理 HTTP 1 0 客户端 我们正在使用AWS Java SDK http aws amazon com sdkf
  • Java直接内存:在自定义类中使用sun.misc.Cleaner

    在 Java 中 NIO 直接缓冲区分配的内存通过以下方式释放 sun misc Cleaner实例 一些比对象终结更有效的特殊幻像引用 这种清洁器机制是否仅针对直接缓冲区子类硬编码在 JVM 中 或者是否也可以在自定义组件中使用清洁器 例
  • org.jdesktop.application 包不存在

    几天以来我一直在构建一个 Java 桌面应用程序 一切都很顺利 但是今天 当我打开Netbeans并编译文件时 出现以下编译错误 Compiling 9 source files to C Documents and Settings Ad
  • Tomcat 6找不到mysql驱动

    这里有一个类似的问题 但关于类路径 ClassNotFoundException com mysql jdbc Driver https stackoverflow com questions 1585811 classnotfoundex
  • 如何在 Maven 中显示消息

    如何在 Maven 中显示消息 在ant中 我们确实有 echo 来显示消息 但是在maven中 我该怎么做呢 您可以使用 antrun 插件
  • 运行 Jar 文件时出现问题

    我已将 java 项目编译成 Jar 文件 但运行它时遇到问题 当我跑步时 java jar myJar jar 我收到以下错误 Could not find the main class myClass 类文件不在 jar 的根目录中 因
  • Keycloak - 自定义 SPI 未出现在列表中

    我为我的 keycloak 服务器制作了一个自定义 SPI 现在我必须在管理控制台上配置它 我将 SPI 添加为模块 并手动安装 因此我将其放在 module package name main 中 并包含 module xml 我还将其放
  • 将 JTextArea 内容写入文件

    我在 Java Swing 中有一个 JTextArea 和一个 提交 按钮 需要将textarea的内容写入一个带有换行符的文件中 我得到的输出是这样的 它被写为文件中的一个字符串 try BufferedWriter fileOut n
  • 休眠以持久保存日期

    有没有办法告诉 Hibernate java util Date 应该持久保存 我需要这个来解决 MySQL 中缺少的毫秒分辨率问题 您能想到这种方法有什么缺点吗 您可以自己创建字段long 或者使用自定义的UserType 实施后User
  • com.jcraft.jsch.JSchException:身份验证失败

    当我从本地磁盘上传文件到远程服务器时 出现这样的异常 com jcraft jsch JSchException Auth fail at org apache tools ant taskdefs optional ssh Scp exe
  • 中断连接套接字

    我有一个 GUI 其中包含要连接的服务器列表 如果用户单击服务器 则会连接到该服务器 如果用户单击第二个服务器 它将断开第一个服务器的连接并连接到第二个服务器 每个新连接都在一个新线程中运行 以便程序可以执行其他任务 但是 如果用户在第一个
  • java8 Collectors.toMap() 限制?

    我正在尝试使用java8Collectors toMap on a Stream of ZipEntry 这可能不是最好的想法 因为在处理过程中可能会发生异常 但我想这应该是可能的 我现在收到一个我不明白的编译错误 我猜是类型推理引擎 这是
  • Jackson 将单个项目反序列化到列表中

    我正在尝试使用一项服务 该服务为我提供了一个带有数组字段的实体 id 23233 items name item 1 name item 2 但是 当数组包含单个项目时 将返回该项目本身 而不是包含一个元素的数组 id 43567 item

随机推荐

  • 如何在 Debian 10 上安装 Memcached

    Memcached 是一个免费开源的高性能内存键值数据存储 它通常用于通过缓存 API 和数据库调用结果中的各种对象来加速应用程序 本文介绍如何在 Debian 10 上安装和配置 Memcached 先决条件 您需要以以下身份登录具有 s
  • Linux 中的剪切命令

    Linux 和 Unix 系统中有许多实用程序可让您处理和过滤文本文件 cut是一个命令行实用程序 允许您从指定文件或管道数据中剪切部分行并将结果打印到标准输出 它可用于按分隔符 字节位置和字符来剪切行的各个部分 在本文中 我们将向您展示如
  • 如何在 Ubuntu 12.04 x64 上安装 iRedMail

    Status 已弃用 本文介绍不再受支持的 Ubuntu 版本 如果您当前运行的服务器运行 Ubuntu 12 04 我们强烈建议您升级或迁移到受支持的 Ubuntu 版本 升级到Ubuntu 14 04 从 Ubuntu 14 04 升级
  • Spring框架

    Spring 框架是最流行的 Java EE 框架之一 在本文中 我们将了解以下内容 Spring框架架构 Spring的核心组件 spring 框架下的各种项目 我查看了 Spring Framework Servlet JSP 和 JS
  • 如何在 Ubuntu 16.04 上使用 uWSGI 和 Nginx 为 Django 应用程序提供服务

    介绍 Django 是一个功能强大的 Web 框架 可以帮助您启动 Python 应用程序或网站 Django 包含一个简化的开发服务器 用于在本地测试代码 但对于任何与生产稍微相关的事情 都需要更安全 更强大的 Web 服务器 在本指南中
  • ThreadPoolExecutor - Java 线程池示例

    Java线程池管理工作线程池 它包含一个队列 使任务等待执行 我们可以用ThreadPoolExecutor在Java中创建线程池 Java线程池管理Runnable线程的集合 工作线程执行队列中的可运行线程 java util concu
  • 使用 Docker Compose 将 Node.js 应用程序容器化以进行开发

    介绍 如果您正在积极开发应用程序 请使用Docker可以简化您的工作流程以及将应用程序部署到生产的过程 在开发中使用容器可以带来以下好处 环境是一致的 这意味着您可以为项目选择所需的语言和依赖项 而不必担心系统冲突 环境是隔离的 可以更轻松
  • 在 JavaScript 中使用位运算符

    介绍 虽然 Javascript 中的按位运算符几乎没有受到任何关注 但它们实际上非常强大并且用途广泛 它们被认为可以更快地进行数值计算和转换 我们可以利用它们来替代某些复杂的编码场景 并使我们的代码更具可读性 在本教程结束时 您将基本了解
  • 命令设计模式

    命令模式是行为设计 模式之一 命令设计模式用于实现松耦合在请求 响应模型中 命令模式 In command pattern the request is send to the invoker and invoker pass it to
  • 如何在 CentOS 6 上设置 Apache 虚拟主机

    Status 已弃用 本文介绍不再受支持的 CentOS 版本 如果您当前运行的服务器运行 CentOS 6 我们强烈建议您升级或迁移到受支持的 CentOS 版本 Reason CentOS 6 于 2020 年 11 月 30 日达到生
  • 如何在 Ubuntu 18.04 上安装 Anaconda [快速入门]

    介绍 Anaconda 专为数据科学和机器学习工作流程而设计 是一款开源包管理器 环境管理器以及 Python 和 R 编程语言的分发版 本教程将指导您在 Ubuntu 18 04 服务器上安装 Anaconda 有关本教程的更详细版本以及
  • 如何在 Ubuntu 14.04 上安装和配置 OSSEC 安全通知

    介绍 您如何跟踪服务器上的授权和未经授权的活动 OSSEC 是一种可以安装在服务器上以跟踪其活动的工具 OSSEC 是一种开源 基于主机的入侵检测系统 HIDS 它执行日志分析 完整性检查 Windows 注册表监控 rootkit 检测
  • 如何在 Ubuntu 22.04 上安装和保护 Grafana

    介绍 Grafana是一种开源数据可视化和监控工具 可与来自以下来源的复杂数据集成普罗米修斯 InfluxDB Graphite and 弹性搜索 Grafana 允许您为数据创建警报 通知和临时过滤器 同时还可以通过内置共享功能更轻松地与
  • 如何在 Ubuntu 12.10 上使用 Nginx 设置 HTTP 身份验证

    什么是Red Means 用户需要输入或自定义的行将位于red在本教程中 其余的大部分应该是可复制和粘贴的 关于 Nginx Nginx 发音为 engine x 是一个 HTTP 和反向代理服务器 以及邮件代理服务器 由 Igor Sys
  • 如何在零停机的情况下将 WordPress 从共享主机迁移到云服务器

    Status 已弃用 本文介绍不再受支持的 Ubuntu 版本 如果您当前运行的服务器运行 Ubuntu 12 04 我们强烈建议您升级或迁移到受支持的 Ubuntu 版本 升级到Ubuntu 14 04 从 Ubuntu 14 04 升级
  • 如何在 Ubuntu 22.04 上使用 apt 安装 Java

    介绍 许多软件都需要 Java 和 JVM Java 虚拟机 包括Tomcat Jetty 玻璃鱼 卡桑德拉 and Jenkins 在本指南中 您将使用以下命令安装各种版本的 Java 运行时环境 JRE 和 Java 开发人员工具包 J
  • 如何在 Ubuntu 16.04 上使用 GitLab CI 设置持续集成管道

    介绍 GitLab 社区版是一个自托管的 Git 存储库提供商 具有帮助项目管理和软件开发的附加功能 GitLab 提供的最有价值的功能之一是内置的持续集成和交付工具 称为亚搏体育appGitLab持续集成 在本指南中 我们将演示如何设置
  • Linux 中的导出命令

    在本指南中 我们将了解 Linux 中的导出命令 Export 是 Bash shell 的内置命令 它用于标记要传递给子进程的变量和函数 基本上 变量将包含在子进程环境中 而不会影响其他环境 为了更清楚地了解我们正在讨论的内容 让我们深入
  • 如何在 Ubuntu 20.04 上安装 Node.js

    介绍 Node js是用于服务器端编程的 JavaScript 运行时 它允许开发人员使用 JavaScript 创建可扩展的后端功能 这是许多人在基于浏览器的 Web 开发中已经熟悉的语言 在本指南中 我们将向您展示在 Ubuntu 20
  • 如何在 Ubuntu 13.10 上安装 Hadoop

    先决条件 本教程的唯一先决条件是 VPS乌班图 13 10 x64安装 您需要从命令行执行命令 可以通过以下两种方式之一执行 使用 SSH 访问 Droplet 使用 Digital Ocean Droplet 管理面板中的 控制台访问 什