目录

最简单的Hadoop架构... 1

伪分布式搭建... 1

JDK的配置... 1

Hadoop下载与安装... 4

Windows系统的特殊点1. 10

Windows系统的特殊点2. 11

  1. Windows的注意事项主要就是在 10  11 页,其它步骤没有太大区别,个人建议在Linux搭建,避免更多问题发生,Hadoop的设计压根就没有考虑过Windows哦!
  2. 如果配置文件写好就可以直接进入到10 11 页查阅Windows的配置啦,配置文件在文中也有,但有一些简化,很多地方可能比较冗余,可以做一个参考

最简单的Hadoop架构

服务名称

作用

隶属服务

Name Node

处理用户进程,管理元数据,集群Web UI服务

HDFS

Data Node

保存与管理数据块

Secondary Name Node

帮助Name Node处理元数据合并工作

Resource Manager

分配与管理资源调度任务,管理Node Manager

Yarn

Node Manager

执行用户提交的job

伪分布式搭建

       伪分布式就是使用一台主机搭建一个只有一台主机可对外服务的Hadoop集群,对于我们来说,搭建一个伪分布式是最优选择,最大化的节约资源,搭建难度极低,耗费时间不多,本次的配置项针对一台主机,且配置文件仅仅需要更改参数便可立即使用

JDK的配置

JDK下载

Java Archive | Oracle

在JDK下载官网,可选择不同的版本,要注意,JDK在Linux与Windows中是不同的

Windows

hdfs 搭建单机_大数据

Linux

hdfs 搭建单机_hdfs 搭建单机_02

  • Windows环境变量配置
  • 通过设置或者直接进行搜索打开就行

hdfs 搭建单机_大数据_03

  • 配置JDK目录,为了防止有过多的异常情况,这里将JAVA_HOME也一并配置

hdfs 搭建单机_hdfs_04

  • JAVA_HOME配置好之后,继续通过Path,配置JDK的bin目录

hdfs 搭建单机_hdfs_05

  •  配置之后通过cmd命令窗口,执行java,如果没有报错“找不到命令”等情况,那么JDK安装就成功!

hdfs 搭建单机_hadoop_06

  • Linux环境变量配置
  • 将JDK包,上传至 linux 解压JDK之后,只需要将JDK的bin目录写到/etc/profile文件中,下面是具体的演示

hdfs 搭建单机_java_07

图表 1 JDK解压目录结构

  • 编辑profile文件

输入命令:vim /etc/profile 或 vi /etc/profile

hdfs 搭建单机_大数据_08

图表 2 profile环境变量配置

export JAVA_HOME=JDK的目录(具体见图1)

export PATH=$JAVA_HOME/bin:$PATH
  • 注意,配置好环境变量之后不要忘记保存 

hdfs 搭建单机_hadoop_09

  • Linux jdk环境变量验证
  • 与Windows的验证方式一样

hdfs 搭建单机_大数据_10

Hadoop下载与安装

  1. 官网

地址:Apache Hadoop

Hadoop在Apache基金会开源,这里就是下载地址,下载之后是一个压缩包,需要解压,并进行配置

hdfs 搭建单机_hdfs 搭建单机_11

图表 3 hadoop解压目录结构

  • 首先需要为bin目录配置环境变量,为了避免其它框架发生错误最好配置下,步骤和JDK配置差不多

hdfs 搭建单机_hdfs_12

export HADOOP_HOME=Hadoop的解压目录
export PATH=$HADOOP_HOME/bin:$PATH
  1. Windows环境变量

hdfs 搭建单机_hadoop_13

hdfs 搭建单机_hdfs_14

  • 为Hadoop的启动脚本,添加一些参数
  1. Windows:不需要配置
  2. Linux:vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh

hdfs 搭建单机_hdfs_15

  图表 4 hadoop-env.sh中的配置

       配置项写的有些冗余,因为我之前搭建过其它东西,不用担心,他们对于Hadoop并没有太大影响,这里的配置有利于使用hadoop的一键启动,不需要通过daemon方式启动,简便许多

export JAVA_HOME=/liming_zhao/java_1.8
export DHFS_NAMENODE_USER="root"
export DHFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"
export HDFS_JOURNALNODE_USER="root"
export HDFS_ZKFC_USER="root"
  1. 为Hadoop的core进行一些配置
  2. Windows:进入到hadoop目录去找文件
  3. Linux:vim $HADOOP_HOME/etc/hadoop/core-site.xml

hdfs 搭建单机_大数据_16

图表 5 core-site.xml配置文件

<configuration>
    <property>
        <name>fs.defaut.name</name>
        <value>hdfs://127.0.0.1:9000</value>
    </property>
</configuration>
  1. 配置HDFS
  2. Windows:进入到hadoop目录去找文件
  3. Linux:vim $HADOOP_HOME/etc/hadoop/hdfs-site.xml

hdfs 搭建单机_hdfs_17

图表 6 hdfs-site.xml 

<configuration>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>file:///data/nndir</value>
    </property>
    <property>
        <name>dfs.datanode.data.dir</name>
        <value>file:///data/dndir</value>
    </property>
</configuration>
  1. 配置yarn
  2. Windows:进入到hadoop目录去找文件
  3. Linux:vim $HADOOP_HOME/etc/hadoop/yarn-site.xml

hdfs 搭建单机_大数据_18

<configuration>
<!--    rm的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>127.0.0.1</value>
    </property>

<!--    指定reduce的方式 这里是MR的Shuffle-->
    <property>
        <name>yarn.resoucemanager.aux-service</name>
        <value>mapreduce_shuffle</value>
    </property>

<!--    指定yarn的rm数据本地存储目录-->
    <property>
        <name>yarn.resourcemanager.local-dirs</name>
        <value>file:///data/rmdir</value>
    </property>
</configuration>
  1. 配置下MapReduce的运行环境,如果使用不到就不需要配
  2. vim $HADOOP_HOME/etc/hadoop/mapred-site.xml

hdfs 搭建单机_hadoop_19

<configuration>
      <!-- 指定分布式计算使用的模式是yarn  local是本地模式 -->
        <property>
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>

        <!--Map App Master环境变量-->
        <property>
                 <name>yarn.app.mapreduce.am.env</name>
                 <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
        </property>


        <!--MR MapTask环境变量-->
        <property>
                 <name>mapreduce.map.env</name>
                 <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
        </property>


        <!--Map ReduceTask环境变量-->
        <property>
                 <name>mapreduce.reduce.env</name>
                 <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
        </property>
</configuration>
  1. 格式化 hdfs 的 namenode
  1. Windows也是如此 hdfs namenode -format

hdfs 搭建单机_hdfs 搭建单机_20

hdfs 搭建单机_hdfs_21

Windows系统的特殊点1

       Windows的文件系统与Linux的文件系统相差过大,因此直接在搭建好hadoop之后很可能不会成功运行,报错如下

hdfs 搭建单机_java_22

  • 解决方案(不能保证百分之百成功,如果没有成功,还是要去Linux搭建啦!)
  • bin目录下有这俩个文件,如果没有可以去网上下载下,很简单就可以搜索到哦!
  • 将这两个文件复制到 C:\Windows\System32 文件夹下

hdfs 搭建单机_hdfs_23

Windows系统的特殊点2

       Window中的jdk环境与Linux中稍有不同,有可能会因为内存问题导致发生如下错误

 

hdfs 搭建单机_hdfs_24

  1. 解决方案
  1. 编辑hadoop-env.cmd脚本文件,减少预制空间
  2. set HADOOP_HEAPSIZE=200

hdfs 搭建单机_java_25

         本次的介绍就到这里啦,希望大家可以有好的开始!!伪分布式搭建Hadoop是比较方便的一种方式,作为大数据的基础功夫,加油!