Hadoop: 单节点安装

目标

本文描述了如何安装和配置单机的 Hadoop,这样你可以使用 Hadoop MapReduce 和 Hadoop 分布式文件系统(HDFS)快速地尝试简单的操作。

前提

支持的平台

  • 支持 GNU/Linux 作为开发平台和生产环境。经实战检验,Hadoop 能运行在包含 2000 台 GNU/Linux 机器组成的集群上。
  • 同样支持 Windows,但后续步骤只适用于 Linux。要在 Windows 上安装 Hadoop,请查阅百科文档

需要的软件

Linux 平台需要的软件包括:

  1. Java 一定要安装。推荐的 Java 版本参见 Hadoop Java 版本
  2. 如果要执行 Hadoop 可选的启停脚本来管理远端的 Hadoop 守护进程,ssh 一定要安装。此外,推荐安装 pdsh 以更好地管理 ssh 资源。

安装软件

如果你的集群没有上述软件,你必须先安装它们。

在 Ubuntu Linux 上可执行:

 $ sudo apt-get install ssh
$ sudo apt-get install pdsh

下载

为了获得 Hadoop 发行包,请从 Apache 下载镜像中任意一家下载最近的稳定版本。

准备启动 Hadoop 集群

解压下载的 Hadoop 发行包,编辑文件 etc/hadoop/hadoop-env.sh 以定义如下的参数:

 # 给定 Java 安装的根目录
export JAVA_HOME=/usr/java/latest 

执行如下命令:

$ bin/hadoop

屏幕将显示 Hadoop 脚本的使用文档。

现在,你可以任选以下三种模式之一来启动你的 Hadoop 集群:

本地模式

默认情况,Hadoop 以一个 Java 进程的形态运行在非分布式模式下,这对于调试很有帮助。

以下示例复制解压后的配置目录作为输入,查询所有匹配正则表达式的文本,结果被写到给定的输出目录中。

$ mkdir input
$ cp etc/hadoop/*.xml input
$ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar grep input output 'dfs[a-z.]+'
$ cat output/*

伪分布式模式

Hadoop 同样可以在单机上以伪分布式模式运行,此时每个 Hadoop 守护进程是一个独立的 Java 进程。

配置

修改文件内容如下:

etc/hadoop/core-site.xml

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

etc/hadoop/hdfs-site.xml

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

etc/hadoop/hadoop-env.sh

# 添加如下环境变量
export HDFS_DATANODE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

配置免密码的 ssh

现在,检查你是否可以 ssh 登录到本机而无需密码:

$ ssh localhost

如果无法免密登录,请执行如下命令:

$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys

执行

执行后续命令以本地运行一个 MapReduce 作业。如果你想在 Yarn 上执行一个作业,请参阅单机运行 Yarn

  1. 格式化文件系统:

    $ bin/hdfs namenode -format
  2. 启动 NameNode 守护进程和 DataNode 守护进程:

    $ sbin/start-dfs.sh

    Hadoop 守护进程的日志输出目录是 $HADOOP_LOG_DIR,其默认值是 $HADOOP_HOME/logs。

  3. 浏览 NameNode 的网页,地址默认是:

    • NameNode - http://localhost:9870/
  4. 创建运行 MapReduce 作业必需的 HDFS 目录:

    $ bin/hdfs dfs -mkdir /user
    $ bin/hdfs dfs -mkdir /user/<username>
  5. 复制输入文件到分布式文件系统中:

    $ bin/hdfs dfs -mkdir input
    $ bin/hdfs dfs -put etc/hadoop/*.xml input
  6. 运行提供的示例程序:

    $ bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.1.jar grep input output 'dfs[a-z.]+'
  7. 从分布式文件系统中复制文件到本地文件系统,验证输出的结果:

    $ bin/hdfs dfs -get output output
    $ cat output/*

    或者直接查看分布式文件系统的输出文件:

    $ bin/hdfs dfs -cat output/*
  8. 完成以上步骤后,执行一下命令来停止所有的守护进程:

    $ sbin/stop-dfs.sh

单机运行 Yarn

在伪分布式模式中,只需设定很少的参数,你就可以用 Yarn 运行一个 MapReduce 作业,并激活 ResourceManager 守护进程和 NodeManager 守护进程。

后续指令假定上述指令的第 1 ~ 4 步已被执行:

  1. 如下配置参数:

    etc/hadoop/mapred-site.xml

    <configuration>
    <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
    </property>
    </configuration> <configuration>
    <property>
    <name>mapreduce.application.classpath</name>
    <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
    </property>
    </configuration>

    etc/hadoop/yarn-site.xml

    <configuration>
    <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    </property>
    <property>
    <name>yarn.nodemanager.env-whitelist</name>
    <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
    </property>
    </configuration>
  2. 启动 ResourceManager 守护进程和 NodeManager 守护进程:

    $ sbin/start-yarn.sh
  3. 浏览 ResourceManager 的网页,地址默认是:

    • ResourceManager - http://localhost:8088/
  4. 运行一个 MapReduce 作业。

  5. 完成以上步骤后,执行一下命令来停止所有的守护进程:

    $ sbin/stop-yarn.sh

完全分布式模式

如果想要安装完全分布式的、非试验性的集群,请参阅文档集群安装

Hadoop 3.1.1 - 概述 - 单节点安装的更多相关文章

  1. Hadoop介绍及最新稳定版Hadoop 2.4.1下载地址及单节点安装

     Hadoop介绍 Hadoop是一个能对大量数据进行分布式处理的软件框架.其基本的组成包括hdfs分布式文件系统和可以运行在hdfs文件系统上的MapReduce编程模型,以及基于hdfs和MapR ...

  2. 【大数据系列】hadoop单节点安装官方文档翻译

    Hadoop: Setting up a Single Node Cluster. HADOOP:建立单节点集群 Purpose Prerequisites Supported Platforms R ...

  3. 一、hadoop单节点安装测试

    一.hadoop简介 相信你或多或少都听过hadoop这个名字,hadoop是一个开源的.分布式软件平台.它主要解决了分布式存储(hdfs)和分布式计算(mapReduce)两个大数据的痛点问题,在h ...

  4. Flume 学习笔记之 Flume NG概述及单节点安装

    Flume NG概述: Flume NG是一个分布式,高可用,可靠的系统,它能将不同的海量数据收集,移动并存储到一个数据存储系统中.轻量,配置简单,适用于各种日志收集,并支持 Failover和负载均 ...

  5. 二、hdfs单节点安装

    一.准备环境 在配置hdfs之前,我们需要先安装好hadoop的配置,本文主要讲述hdfs单节点的安装配置. hadoop的单节点安装配置请参考:https://www.cnblogs.com/lay ...

  6. Hadoop 3.1.1 - 概述 - 集群安装

    Hadoop 集群安装 目标 本文描述了如何从少数节点到包含上千节点的大规模集群上安装和配置 Hadoop 集群.如果只是为了尝试,你可以先从单台机器上安装开始(参阅单节点安装). 本文并不包含诸如安 ...

  7. hbase伪分布式安装(单节点安装)

    hbase伪分布式安装(单节点安装) http://hbase.apache.org/book.html#quickstart   1.    前提配置好java,环境java变量     上传jdk ...

  8. vertica单节点安装教程

    [准备] 1.CentOS 7.6的镜像盘(下载地址:官网) 2.vertica-9.1.0-0.x86_64.RHEL6(下载地址:https://pan.baidu.com/s/1IjWBUTku ...

  9. Centos7 单节点安装 FastDFS + FastDHT服务

    Centos7 单节点安装 FastDFS + FastDHT服务 1.安装gcc(编译时需要) FastDFS是C语言开发,安装FastDFS需要先将官网下载的源码进行编译,编译依赖gcc环境,如果 ...

随机推荐

  1. leetcode1141 N*3矩阵。阿里笔试no.1

    你有一个 n x 3 的网格图 grid ,你需要用 红,黄,绿 三种颜色之一给每一个格子上色,且确保相邻格子颜色不同(也就是有相同水平边或者垂直边的格子颜色不同). 给你网格图的行数 n . 请你返 ...

  2. 京东 Vue3 组件库支持小程序开发啦!

    源码抢先看: https://github.com/jdf2e/nutui NutUI 3.0 官网:https://nutui.jd.com/3x/#/ 小程序多端适配 设计初衷 在跨端小程序的开发 ...

  3. vs联合halcon——采集图像(实时采集与单次采集)

    摘要 在对vs进行环境配置好以后,就可以开始与halcon联合进行实战.本篇就对图像的采集进行总结.通过构建采集相机GrabImage类的三个方法实现图像的采集: open() 打开相机 grabim ...

  4. 环境安装——MySQL安装

    @ 目录 一文教会你安装与卸载MySQL 1. 官网下载 2. 文件下载 3. 卸载步骤 4. 安装步骤 5. MySQL配置 6. 安装出现的问题 6.1 如果出现了最后一步卡死的状态的话,不要慌: ...

  5. Kubernetes通过downwardAPI传递元数据

    应用往往需要获取所运行环境的一些信息,包括应用自身以及集群中其他组件的信息.Kubernetes可以通过环境变量以及DNS进行服务发现,但其他信息如何处理呢?下面将介绍特定pod和容器元数据如何被传递 ...

  6. 线上BUG:MySQL死锁分析实战

    原文链接:线上BUG:MySQL死锁分析实战 1 线上告警 我们不需要关注截图中得其他信息,只要能看到打印得org.springframework.dao.DeadlockLoserDataAcces ...

  7. 31、服务器磁盘、内存、cpu使用率监控

    31.1.监控磁盘: #!/bin/sh diskspace="`df -hT`" IFS="\n" disk_value="80" ech ...

  8. 包机制与javaDOC文档

    包机制 包的本质就是个文件夹: 一般利用公司域名倒置作为包名:com.kuangstudy.biog javaDOC文档 package com.kuang.base; /** * @author K ...

  9. 并发王者课-铂金10:能工巧匠-ThreadLocal如何为线程打造私有数据空间

    欢迎来到<并发王者课>,本文是该系列文章中的第23篇,铂金中的第10篇. 说起ThreadLocal,相信你对它的名字一定不陌生.在并发编程中,它有着较高的出场率,并且也是面试中的高频面试 ...

  10. hdu 2093 成绩排名

    思路: 没啥思路,就是定义结构体,跟题目,走,当时没想到对那个括号的处理,后面看了题解,才知道用个getchar直接判断 算是一个值得思考的点. 代码: #include<bits/stdc++ ...