购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3
Hadoop伪分布式安装

经过上面的环境设置,我们已经可以正式安装Hadoop伪分布式了。在安装之前,请确定你已经安装了JDK1.8,并正确配置了JAVA_HOME、PATH环境变量。

在磁盘根目录下,创建一个app目录,并授权给hadoop用户。我们将会把Hadoop安装到此目录下。先切换到根目录下:

 
    [hadoop@server201 ~]$ cd /

添加sudo前缀使用mkdir创建/app目录:

 
    [hadoop@server201 /]$ sudo mkdir /app

将此目录的所有权授予给hadoop用户和hadoop组:

 
    [hadoop@server201 /]$ sudo chown hadoop:hadoop /app

切换进入/app目录:

 
    [hadoop@server201 /]$ cd /app/

使用ll -d命令查看本目录的详细信息,可看到此目录已经属于hadoop用户:

 
    [hadoop@server201 app]$ ll -d
    drwxr-xr-x 2 hadoop hadoop 6 3月  9 21:35 .

将Hadoop的压缩包上传到/app目录下,并解压。

使用ll命令查看本目录,可以看到已经存在hadoop-3.2.2.tar.gz文件:

 
    [hadoop@server201 app]$ ll
    总用量 386184
    -rw-rw-r-- 1 hadoop hadoop 395448622 3月  9 21:40 hadoop-3.2.2.tar.gz

使用tar命令-zxvf参数解压此文件:

 
    [hadoop@server201 app]$ tar -zxvf hadoop-3.2.2.tar.gz

解压后,将看到一个目录hadoop-3.2.2,此时可以删除tar.gz文件,此文件已经不再需要。

查看/app目录下,已经多出hadoop-3.2.2目录:

 
    [hadoop@server201 app]$ ll
    总用量 386184
    drwxr-xr-x 9 hadoop hadoop       149 1月  3 18:11 hadoop-3.2.2
    -rw-rw-r-- 1 hadoop hadoop 395448622 3月  9 21:40 hadoop-3.2.2.tar.gz

删除hadoop-3.2.2.tar.gz文件,此文件已经不再需要:

 
    [hadoop@server201 app]$ rm -rf hadoop-3.2.2.tar.gz

以下开始配置Hadoop。Hadoop的所有配置文件都在hadoop-3.2.2/etc/hadoop目录下。首先切换到此目录下,然后开始配置:

 
    [hadoop@server201 hadoop-3.2.2]$ cd /app/hadoop-3.2.2/etc/hadoop/

在Hadoop的官网上,有关于伪分布式配置的完成教程,地址为https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-common/SingleCluster.xhtml#Configuration。

大家也可以根据此教程进行伪分布式的配置学习。

步骤01 配置hadoop-env.sh文件。

hadoop-env.sh文件是Hadoop的环境文件,在此文件中需要配置JAVA_HOME变量。在此文件的第55行输入以下配置,然后按Esc键,再输入:wq保存退出即可:

 
    export JAVA_HOME=/usr/java/jdk1.8.0_281

步骤02 配置core-site.xml文件。

core-site.xml文件是HDFS的核心配置文件,用于配置HDFS的协议、端口号和地址。

注意: Hadoop 3.0以后HDFS的端口号建议为8020,但如果查看Hadoop的官网示例,依然延续使用的是Hadoop 2之前的端口9000,以下配置我们将使用8020端口,只要保证配置的端口没有被占用即可。配置时,需要注意大小写。

使用vim打开core-site.xml文件,进入编辑模式:

 
    [hadoop@server201 hadoop]$ vim core-site.xml

在<configuration></configuration>两个标签之间输入以下内容:

 
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://server201:8020</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/datas/hadoop</value>
    </property>

配置说明:

● fs.defaultFS:用于配置HDFS的主协议,默认为file:///。

● hadoop.tmp.dir:用于指定NameNode日志及数据的存储目录,默认为/tmp。

步骤03 配置hdfs-site.xml文件。

hdfs-site.xml文件用于配置HDFS的存储信息。使用vim打开hdfs-site.xml文件,并在<configuration></configuration>标签中输入以下内容:

 
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <property>
        <name>dfs.permissions.enabled</name>
        <value>false</value>
    </property>

配置说明:

● dfs.replication:用于指定文件块的副本数量。HDFS特别适合于存储大文件,它会将大文件切分成每128MB一块,存储到不同的DataNode节点上,且默认会每一块备份2份,共3份,即此配置的默认值为3,最大为512。由于我们只有一个DataNode,所以这儿将文件副本数量修改为1。

● dfs.permissions.enabled:访问时,是否检查安全,默认为true。为了方便访问,暂时把它修改为false。

步骤04 配置mapred-site.xml文件。

通过名称可见,此文件是用于配置MapReduce的配置文件。通过vim打开此文件,并在<configuration>标签中输入以下配置:

 
    $ vim mapred-site.xml
    <property>
       <name>mapreduce.framework.name</name>
       <value>yarn</value>
    </property>

配置说明:

● mapreduce.framework.name:用于指定调试方式。这里指定使用YARN作为任务调用方式。

步骤05 配置yarn-site.xml文件。

由于上面指定了使用YARN作为任务调度,所以这里需要配置YARN的配置信息,同样,使用vim编辑yarn-site.xml文件,并在<configuration>标签中输入以下内容:

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

通过hadoop classpath命令获取所有classpath的目录,然后配置到上述文件中。

由于没有配置Hadoop的环境变量,所以这里需要输入完整的Hadoop运行目录,命令如下:

 
    [hadoop@server201 hadoop]$ /app/hadoop-3.2.2/bin/hadoop classpath

输入完成后,将显示所有classpath信息:

 
    /home/hadoop/program/hadoop-3.2.2/etc/hadoop:/home/hadoop/program/hadoop-3.
2.2/share/hadoop/common/lib/*:/home/hadoop/program/hadoop-3.2.2/share/hadoop/co
mmon/*:/home/hadoop/program/hadoop-3.2.2/share/hadoop/hdfs:/home/hadoop/program
/hadoop-3.2.2/share/hadoop/hdfs/lib/*:/home/hadoop/program/hadoop-3.2.2/share/h
adoop/hdfs/*:/home/hadoop/program/hadoop-3.2.2/share/hadoop/mapreduce/lib/*:/ho
me/hadoop/program/hadoop-3.2.2/share/hadoop/mapreduce/*:/home/hadoop/program/ha
doop-3.2.2/share/hadoop/yarn:/home/hadoop/program/hadoop-3.2.2/share/hadoop/yar
n/lib/*:/home/hadoop/program/hadoop-3.2.2/share/hadoop/yarn/*

然后将上述的信息复制一下,并配置到yarn-site.xml文件中:

 
    <property>
        <name>yarn.application.classpath</name>
        <value>
    /home/hadoop/program/hadoop-3.2.2/etc/hadoop:/home/hadoop/program/hadoop-3.
2.2/share/hadoop/common/lib/*:/home/hadoop/program/hadoop-3.2.2/share/hadoop/co
mmon/*:/home/hadoop/program/hadoop-3.2.2/share/hadoop/hdfs:/home/hadoop/program
/hadoop-3.2.2/share/hadoop/hdfs/lib/*:/home/hadoop/program/hadoop-3.2.2/share/h
adoop/hdfs/*:/home/hadoop/program/hadoop-3.2.2/share/hadoop/mapreduce/lib/*:/ho
me/hadoop/program/hadoop-3.2.2/share/hadoop/mapreduce/*:/home/hadoop/program/ha
doop-3.2.2/share/hadoop/yarn:/home/hadoop/program/hadoop-3.2.2/share/hadoop/yar
n/lib/*:/home/hadoop/program/hadoop-3.2.2/share/hadoop/yarn/*
        </value>
    </property>

配置说明:

● yarn.resourcemanager.hostname:用于指定ResourceManger的运行主机,默认为0.0.0.0,即本机。

● yarn.nodemanager.aux-services:用于指定执行计算的方式为mapreduce_shuffle。

● yarn.application.classpath:用于指定运算时的类加载目录。

步骤06 配置workers文件。

这个文件在之前的版本叫作slaves,但功能一样。主要用于在启动时启动DataNode和NodeManager。

编辑workers文件,并输入本地名称:

 
    server201

步骤07 配置Hadoop环境变量。

编辑/etc/profile文件:

 
    $ sudo vim /etc/profile

并在里面添加以下内容:

 
    export HADOOP_HOME=/app/hadoop-3.2.2
    export PATH=$PATH:$HADOOP_HOME/bin

使用source命令,让环境变量生效:

 
    $ source /etc/profile

然后使用hdfs version查看命令环境变量是否生效,如果配置成功,则会显示Hadoop的版本:

 
    [hadoop@server201 hadoop]$ hdfs version
    Hadoop 3.2.2
    Source code repository Unknown -r 7a3bc90b05f257c8ace2f76d74264906f0f7a932
    Compiled by hexiaoqiao on 2021-01-03T09:26Z
    Compiled with protoc 2.5.0
    From source with checksum 5a8f564f46624254b27f6a33126ff4
    This command was run using /app/hadoop-3.2.2/share/hadoop/common/hadoop-comm
on-3.2.2.jar

步骤08 初始化Hadoop的文件系统。

Hadoop在使用之前,必须先初始化HDFS文件系统,初始化的文件系统将会生成在hadoop.tmp.dir配置的目录下,即上面配置的/app/datas/hadoop目录下。

 
    $ hdfs namenode -format

在执行命令完成以后,请在输出的日志中找到以下这句话,即为初始化成功:

 
    Storage? directory /opt/hadoop_tmp_dir/dfs/name has been successfully formatt
ed.

步骤09 启动HDFS和YARN。

启动和停止HDFS及YARN的脚本在$HADOOP_HOME/sbin目录下。其中start-dfs.sh为启动HDFS的脚本,start-yarn.sh为启动ResourceManager的脚本。以下命令分别启动HDFS和YARN:

 
    [hadoop@server201 /]$ /app/hadoop-3.2.2/sbin/start-dfs.sh
    [hadoop@server201 /]$ /app/hadoop-3.2.2/sbin/start-yarn.sh

启动完成以后,通过jps来查看Java进程快照,你会发现有5个进程正在运行:

 
    [hadoop@server201 /]$ jps
    12369 NodeManager
    12247 ResourceManager
    11704 NameNode
    12025 SecondaryNameNode
    12686 Jps
    11839 DataNode

其中:NameNode、SecondaryNameNode、DataNode是通过start-dfs.sh脚本启动的。ResourceManager和NodeManager是通过start-yarn.sh脚本启动的。

启动成功以后,也可以通过http://server201:9870查看NameNode的信息,如图2-2所示。

图2-2

可以通过http://server201:8088页面查看MapReduce的信息,如图2-3所示。

图2-3

步骤10 关闭。

关闭HDFS的YARN可以分别执行stop-dfs.sh和stop-yarn.sh脚本:

 
    [hadoop@server201 /]$ /app/hadoop-3.2.2/sbin/stop-yarn.sh
    Stopping nodemanagers
    Stopping resourcemanager
    [hadoop@server201 /]$ /app/hadoop-3.2.2/sbin/stop-dfs.sh
    Stopping namenodes on [server201]
    Stopping datanodes
    Stopping secondary namenodes [server201]

至此,Hadoop单机即伪分布式模式安装和配置成功。下一节将学习使用Hadoop的hdfs命令操作Hadoop的HDFS文件系统。 f8mCBKhqPl8UG5mJ1mgYKzGMDSx5NliKI05/ze+dG4AYLxDR3ABLjsiG8+1qt6C5

点击中间区域
呼出菜单
上一章
目录
下一章
×