zoukankan      html  css  js  c++  java
  • 在Windows 10 环境下安装 Hadoop3.1.2

    分布式系统本来是一组计算机,系统里有多个节点,我们如果装在本机,则代表只有一台服务器,所以这次安装的其实只是单节点集群Hadoop,所有的节点和功能都配在同一台机器上,包括NameNode、 Secondary NameNode、 DataNode, 以及MapReduce(YARN)的Resource Manager、Node Managder。

    这里分五个步骤来记录Hadoop安装步骤,以及启动和运行Hadoop。

    一是安装Java运行环境,二是安装Hadoop,三是修改Hadoop安装目录下的配置文件,四是启动Hadoop,五是运行一个Hadoop自带的mapreduce的实例。

    Windows 10

    JDK 1.8.0_73

    Hadoop 3.1.2

    【第一步】

    Hadoop是一个分布式处理大数据的软件框架,是基于java编写的;在下载使用前,需要有Java的编译环境(JRE)或Java的开发工具(JDK)。

    因为JDK已经包含了JRE,所以这里我装的是jdk1.8.0_73;安装之后配置环境变量。 

    点击 我的电脑 → 属性 → 高级系统设置 → 环境变量, 添加

    变量名:JAVA_HOME

    变量值:C:\Program Files\Java\jdk1.8.0_73 (这里写的是你自己电脑上JDK的安装路径)

    如果查看本机是否已经有Java运行环境了呢?在windows自带的Command Prompt (CMD)里输入:java -version

    显示如下,则证明已经装好。
      java version "1.8.0_73"
      Java(TM) SE Runtime Environment (build 1.8.0_73-b02)
      Java HotSpot(TM) 64-Bit Server VM (build 25.73-b02, mixed mode)

    如果没有的话,则点击 我的电脑 → 属性 → 高级系统设置 → 环境变量, 添加

    变量名:JAVA_HOME

    变量值:C:\Program Files\Java\jdk1.8.0_73 (这里写的是你自己电脑上JDK的安装路径)

    【第二步】

    从Apache官网下载Hadoop,地址是 https://hadoop.apache.org/releases.html ,选择binary 版本,下载下来的文件名是 hadoop-3.1.2.tar.gz 。

    (备注:binary表示已编译好的二进制包文件包,即解压缩后可直接使用;source表示源代码版本,需要通过计算机编译才能执行安装)

    在本地解压安装包到自定义的地址,比如我的安装路径是 D:\MyFolder\Hadoop\hadoop-3.1.2 。

    然后为Hadoop配置windows环境变量。点击 我的电脑 → 属性 → 高级系统设置 → 环境变量:

    新添加一个变量名 HADOOP_HOME, 变量值 D:\MyFolder\Hadoop\hadoop-3.1.2 (这里使用你自己的安装路径);

    在已有变量名Path(如果没有就新添加一个变量名Path)下,加上两个变量值 %HADOOP_HOME%\bin 和 %HADOOP_HOME%\sbin。

    在windows自带的Command Prompt (CMD)里输入: hadoop version

    显示如下,则证明Hadoop环境变量已经配好。

      Hadoop 3.1.2
      Source code repository https://github.com/apache/hadoop.git -r 1019dde65bcf12e05ef48ac71e84550d589e5d9a
      Compiled by sunilg on 2019-01-29T01:39Z
      Compiled with protoc 2.5.0
      From source with checksum 64b8bdd4ca6e77cce75a93eb09ab2a9
      This command was run using /D:/MyFolder/Hadoop/hadoop-3.1.2/share/hadoop/common/hadoop-common-3.1.2.jar

    【第三步】

    这一步需要对Hadoop安装目录下的配置文件进行一些修改,这些修改决定了我们能否启动Hadoop。

    配置hadoop,主要是配置以下三个配置文件(在%HADOOP_HOME%\etc\hadoop\下面):
    core-site.xml, -- 是全局配置
    hdfs-site.xml, --hdfs的局部配置。
    mapred-site.xml -- mapred的局部配置。

    刚解压后,这些配置文件都是空的,没有任何configuration,类似这样:
    <configuration>
    </configuration>

    其实他们这些文件的默认配置分别在这三个文件中:
    core-default.xml,
    hdfs-default.xml,
    mapred-default.xml

    在前面给出的官网文章链接中,可以找到这三个default文件的配置详情;要注意官网上标识的Hadoop版本,比如现在我看到的是Version: 2.9.2,也就是说是属于这个版本的默认配置。

    现在说如何配置。

    coresite.xml下的配置:

    添加

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

    如果了解HDFS的话,就会知道,如果文件进入到这个系统里,会有属于自己的一个目录,和我们理解的操作系统磁盘的绝对路径是不一样的。比如一个文件a被放到HDFS的根目录下的test目录下,那么它的HDFS路径就是 /test/a,这就是Hadoop服务器本地的绝对路径(它在我们电脑的操作系统里肯定不是相同的绝对路径,具体是哪个路径,我们没必要知道,只需HDFS知道就好了)。除了用/test/a访问这个文件,我们如果还想也想通过hdfs://localhost:9000/test/a 的方式访问 ,就需要加上这个配置内容。

    启动服务后(一会儿的步骤会讲到如何启动服务),
    输入 hdfs dfs -ls /
    输入 hdfs dfs -ls hdfs://localhost:9000/
    输入 hdfs dfs -ls hdfs://10.118.145.33:9000/ (用IP地址是我没试过的,我猜测应该可以成功)
    得到的是同样的结果,即Hadoop文件系统(注意:这里指的不是操作系统的文件系统)的根目录下的内容。

    或者输入hdfs dfs -df -h

    查看磁盘空间,如下是我的空间:

    Filesystem Size Used Available Use%
    hdfs://localhost:9000 159.7 G 1.1 M 138.7 G 0%

    hdfs-site.xml下的配置:

    添加

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

    然后在Hadoop3.1.2的安装目录下建个目录/data,再在这个目录下建两个目录,一个叫namenode,一个叫datanode,把两个目录的路径添加到这个配置文件里:

    <property>
    <name>dfs.namenode.name.dir</name>
    <value>/D:/MyFolder/Hadoop/hadoop-3.1.2/data/namenode</value> 
    </property>
    <property>
    <name>dfs.datanode.data.dir</name>
    <value>/D:/MyFolder/Hadoop/hadoop-3.1.2/data/datanode</value> 
    </property>

    yarn-site.xml下的配置:

    添加

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

    【第四步】

    在windows下找到Hadoop的安装目录,进入sbin目录,找到一个文件start-all.cmd

    用管理员模式运行它,等待ResourceManager,NameNode和DataNode的启动。

    检查Hadoop是否已经启动成功,只需cmd窗口输入:jps

    如显示以下五个进程名称,则证明成功。

      109824 Jps
      29780 ResourceManager
      107300 DataNode
      107112 NameNode
      40316 NodeManager

     如果想停止这几个进程,就在同目录下找这个文件stop-all.cmd,然后运行。

    其实对于start all 和stop all是不推荐的。更好的做法是先启动start-dfs.cmd,再启动start-yarn.cmd。

    刚刚说到的几个命令,如 hdfs dfs -ls hdfs://localhost:9000/,也可以在这个时候查看了。

    访问管理GUI

     记得先不要关闭那几个cmd窗口,如果启动成功,还可以在浏览器输入

    http://localhost:8088 ——查看应用管理界面ResourceManager

    http://localhost:9870 ——NameNode界面

    这两个端口都是Hadoop支持的默认服务端口。要注意的是,3.0以上和2.0的默认端口有部分是不一样的。

    【第五步】

    Hadoop是一个分布式文件系统,是用来处理文件/数据的。它自带了用mapreduce处理数据的jar包,如hadoop-mapreduce-examples-3.1.2.jar,所以我们就在此运行一个例子,观察Hadoop如何处理????

    【结语】

    其实,Apache官网也有介绍GNU/Linux环境安装的文章,想看的请直接戳这里。

    Single Node Setup for first-time users. (这篇里面还有个链接,专门介绍在Windows下的安装,但是打不开)
    Cluster Setup for large, distributed clusters.

  • 相关阅读:
    利用docker搭建rtmp服务器(1)
    ES6转换为ES5
    一些乱七八糟的东西
    xss攻击和sq注入
    python asyncio笔记
    图解密码技术一些笔记
    做网页前端遇到的一些问题
    错误处理的一些想法
    吐槽下国内的云笔记
    python的编码问题
  • 原文地址:https://www.cnblogs.com/happyliusiyi/p/11076188.html
Copyright © 2011-2022 走看看