美文网首页
Hadoop 的安装和配置

Hadoop 的安装和配置

作者: 再让你三行代码 | 来源:发表于2020-11-06 16:11 被阅读0次

    话说在前面,满满的干货点赞吧!
    如果还没有安装和设置虚拟机,参考文章 Ubuntu 安装和配置,这里默认服务器用户名为 hadoop,机器名称为 master,且把 master 的 IP 写入了 hosts 文件和配置 SSH 免密登录。这将介绍 Hadoop 的两种安装方式,并简单使用和操作 MapReduce 和 HDFS。

    主要内容:

    • Hadoop 伪分布安装
    • Hadoop 集群安装
    • 动态增加、删除节点

    1、必要软件的安装

    Hadoop 3 最低支持 Java 8,这里使用 Oracle 的 OpenJDK 8,可以提取下载好放到共享文件夹

    # 解压和创建链接文件
    sudo tar -xvf openjdk-XXX_XXX.tar.gz  /user/local
    sudo ln -s /user/local/openjdk-XXX_XXX  /user/local/openjdk-1.8
    # 将 JAVA_HOME 添加到环境变量
    sudo vim /etc/profile
    # 添加如下内容
    export JAVA_HOME=/user/local/openjdk-1.8
    export PATH=$JAVA_HOME/bin:$PATH
    # 测试
    java -version
    java version "1.8.0_XXX"
    # 安装 SSH pdsh
    sudo apt install ssh
    sudo apt install pdsh
    
    

    Hadoop 支持如下三种模式安装:

    • 本地独立模式

    • 单节点模式

    • 集群模式

    支持平台: 推荐 GNU/Linux,对于 Windows 平台这里不做介绍

    2、伪分布式安装

    2.1、下载和解压 Hadoop

    tar -xvf ./hadoop-3.X.X.tar.gz
    ln -s ./hadoop-3.X.X.tar.gz ./hadoop
    # 设置 Hadoop 安装目录添加 PATH
    vim .bashrc
    # 在文件后面添加如下内容
    export HADOOP_HOME=/home/hadoop/hadoop
    export HADOOP_MAPRED_HOME=/home/hadoop/hadoop
    # PDSH_RCMD_TYPE 解决 pdsh@master: master: ssh exited with exit code 1
    export PDSH_RCMD_TYPE=ssh
    export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    
    

    设置 Hadoop 的 Java Home 等参数

    vim $HADOOP_HOME/etc/hadoop/hadoop-env.sh
    # 找到 export JAVA_HOME 的位置,去掉注释修改为 JAVA_HOME 路径
    # The java implementation to use. By default, this environment
    # variable is REQUIRED on ALL platforms except OS X!
    export JAVA_HOME=/user/local/openjdk-1.8
    # 可选修改 Hadoop Home  HADOOP_CONF_DIR
    export HADOOP_HOME=/home/hadoop/hadoop
    export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
    # 可选 JVM Heap 堆,相当于 -Xms512m -Xmx1024m
    export HADOOP_HEAPSIZE_MAX=1024m
    export HADOOP_HEAPSIZE_MIN=512m
    
    

    查看 hadoop 命令

    hadoop version
    # 会看到如下输出
    Hadoop 3.X.X
    
    

    本地独立模式

    在默认情况下,Hadoop 被配置为非分布式模式作为单个 Java 进程运行,这对调试非常有用。

    cd $HADOOP_HOME
    mkdir input
    cp etc/hadoop/*.xml input
    # 正则表达式匹配所有 XML 文件中的单词
    bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input output 'dfs[a-z.]+'
    cat output/*
    # 可以看到如下输出
    1       dfsadmin
    
    

    2.2、伪分布模式

    首先需要配置好默认的 SSH 免密登录,如果已经配置则跳过:

    ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 0600 ~/.ssh/authorized_keys
    # 测试 
    ssh localhost
    
    

    在下面的命令中,默认切换到 hadoop 安装目录cd $HADOOP_HOME

    对于 vim 不熟悉可以使用 Visual Studio Remote 连接到 master 服务器,然后打开 Hadoop 的配置目录。参考 https://code.visualstudio.com/docs/remote/wsl

    文件 vim etc/hadoop/core-site.xml,将内容修改成如下

    <configuration>
        <property>
            <!-- NameNode URI -->
            <name>fs.defaultFS</name>
            <value>hdfs://localhost:9000</value>
        </property>
    </configuration>
    
    

    文件 vim etc/hadoop/hdfs-site.xml ,修改内容如下

    <configuration>
        <property>
            <!-- 数据块复制的份数-->
            <name>dfs.replication</name>
            <value>1</value>
        </property>
    </configuration>
    
    

    运行

    # 格式文件系统
    bin/hdfs namenode -format
    # 运行 DataNode 和 NameNode
    sbin/start-dfs.sh
    # 可以看到如下的输出
    Starting namenodes on [localhost]
    Starting datanodes
    Starting secondary namenodes [master]
    
    

    通过浏览器访问 http://master:9870/ ,master 替换为 Ubuntu 所在的 IP 或者写入主系统的 hosts.

    测试

    # 创建 HDFS 的目录,hadoop 是你的用户名 <username> 此相当于 Linux 的个人主目录
    bin/hdfs dfs -mkdir /user
    bin/hdfs dfs -mkdir /user/hadoop
    # 在 HDFS 的 /user/hadoop 下创建
    bin/hdfs dfs -mkdir input
    # 将文件上传到 HDFS
    bin/hdfs dfs -put etc/hadoop/*.xml input
    # 运行 Hadoop 的示例程序
    bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input output 'dfs[a-z.]+'
    # 将运行结果拿到本地
    bin/hdfs dfs -get output output
    cat output/* # 或者直接在 HDFS 看 : bin/hdfs dfs -cat output/*
    #同样可以看到如下的输出 跟本地独立模式不一样原因是修改了 hdfs-site.xml
    1       dfsadmin
    1       dfs.replication
    
    

    2.3、单节点的 Yarn

    文件配置:etc/hadoop/mapred-site.xml

    <configuration>
        <property>
            <!--使用 Yarn -->
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <property>
            <!-- 添加 class path,需要设置 HADOOP_MAPRED_HOME -->
            <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>
            <!-- reducer 附属服务是 mapreduce_shuffle 才可运行MapReduce程序 -->
            <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>
    
    

    查看运行着什么服务的命令是 jps ,可以将此时的 Hadoop 安装配置目录复制一份作为本地独立模式或伪分布模式的配置备份。

    关闭 hdfs 和 Yarn

    sbin/stop-yarn.sh
    sbin/stop-dfs.sh
    
    

    3、集群设置

    这里采用两台 VM 虚拟机(master、worker1)搭建,worker2 是用于下一小节,将新的节点添加到 Hadoop 集群的,理论上可以支持上千台的集群。

    关闭 hdfs 和 Yarn 后关闭当前的虚拟机,将虚拟机拷贝两份,命名为 worker1、worker2,一台一台的设置,因为先前的跟 master IP 地址一样会冲突,参考 Ubuntu Server 安装与设置 配置本地 IP 地址(例如 192.168.128.11、192.168.128.12),设置 hostname 为 worker1 、worker2,然后关机。

    启动 master、worker1 的虚拟机,登录 master,配置各个节点的 hosts sudo vim /etc/hosts

    # 各个节点的配置,替换为虚拟机实际的 ip
    192.168.128.10  master
    192.168.128.11  worker1
    192.168.128.12  worker2
    # 保存后通如下命令分发到 worker1、worker2等,需要启用 root 登录权限
    scp /etc/hosts root@worker1:/etc/hosts
    # 检查不同主机间是否可以免密登录
    # 分别在 master、worker1 等尝试 ssh username@master、ssh username@worker1
    ssh hadoop@worker1
    
    

    3.1、Hadoop 常用的配置

    常用的配置文件

    文件 格式 描述
    hadoop-env.sh bash脚本 Hadoop 运行的环境变量,会覆盖系统的设置
    mapred-env.sh bash脚本 MapReduce 运行用到的环境变量,会覆盖 hadoop-env.sh
    yarn-env.sh bash脚本 Yarn 运行用到的环境变量,会覆盖 mapred-env.sh
    core-site.xml xml配置 Hadoop Core 配置,配置 HDFS、MapReduce、Yarn 常用的 IO 设置
    hdfs-site.xml xml配置 HDFS 配置,namenode、datanode、secondary namenode等
    mapred-site.xml xml配置 MapReduce 守护进程配置,如 jobhistoryserver
    yarn-site.xml xml配置 Yarn 守护进程配置,如 ResourceManger、NodeManager、Web 应用代理服务等
    workers 纯文本 运行 datanode 的节点的机器,一行一个( hadoop 的名称是 slaves)
    log4j.properties Java属性 日志配置文件

    环境变量

    Hadoop 的环境变量通过 bash 脚本 设置。例如可以设置 JAVA_HOME,JVM 内存堆大小、日志存放目录等

    • JAVA_HOME : 必须指定,推荐使用 hadoop-env.sh 的方式,保证集群使用相同版本的 JDK
    • HADOOP_HEAPSIZE_MAX :最大 JVM 内存堆
    • HADOOP_HEAPSIZE_MIN:最小 JVM 内存堆
    • HADOOP_LOG_DIR: 日志存放目录
    • HADOOP_HOME: Hadoop 的根目录
    • HADOOP_MAPRED_HOME: MapReduce 的主目录

    3.1.2、Hadoop 配置

    文件etc/hadoop/core-site.xml

    <configuration>
      <property>
        <!-- URI 定义主机名称和 namenode 的 RPC 服务器工作的端口号 -->
        <!-- 运行 HDFS 需要指定一台机器为 namenode -->
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
      </property>
      <property>
        <!-- Hadoop 临时目录,默认是系统的临时目录下,/tmp/hadoop-${username} 下 -->
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoop/cluster</value>
      </property>
    </configuration>
    
    

    对于设置的临时目录等,需要确保运行 Hadoop 集群的用户有写入和读取的权限,这里使用用户主目录下的 cluster 文件夹,相关的目录不建议存放到 Hadoop 的安装目录下。

    文件 etc/hadoop/hdfs-site.xml

    <configuration>
      <property>
        <!-- DFS 拷贝的数量,根据 DataNode 的数量和实际情况设置,这里只有一个 worker -->
        <name>dfs.replication</name>
        <value>1</value>
      </property>
      <!-- 以下三个值默认在 Hadoop 临时目录 hadoop.tmp.dir 的 dfs 文件夹下 -->
      <property>
        <!-- namenode 存储永久元数据的目录,多个 value 用英文逗号 , 隔开 -->
        <!-- 支持 NFS 挂载的远程磁盘目录 TODO:试试 -->
        <name>dfs.namenode.name.dir</name>
        <value>/home/hadoop/cluster/dfs/name</value>
      </property>
      <property>
        <!-- datanode 存储数据块的目录,多个 value 用英文逗号 , 隔开 -->
        <name>dfs.datanode.name.dir</name>
        <value>/home/hadoop/cluster/dfs/data</value>
      </property>
      <property>
        <!-- Secondary Namenode 存储检查点的目录列表,多个 value 用英文逗号 , 隔开 -->
        <name>dfs.datanode.name.dir</name>
        <value>/home/hadoop/cluster/dfs/namesecondary</value>
      </property>
    </configuration>
    
    

    文件etc/hadoop/yarn-site.xml

    <configuration>   
        <property>
            <!-- reducer 附属服务是 mapreduce_shuffle 才可运行MapReduce程序 -->
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>
        <property>
             <!-- 环境变量白名单 TODO: 验证是否由于多个集群的环境变量不一致的时候,需要加上环境变量白名单 -->
            <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>    
    
    

    文件 etc/hadoop/mapred-site.xml

    <configuration>
        <property>
            <!--使用 Yarn -->
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>
        <property>
            <!-- 添加 class path,需要设置 HADOOP_MAPRED_HOME -->
            <name>mapreduce.application.classpath</name>
            <value>$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/*:$HADOOP_MAPRED_HOME/share/hadoop/mapreduce/lib/*</value>
        </property>
    </configuration>
    
    

    文件workers,设置运行 datanode 的主机,一行一个主机名

    worker1
    
    

    3.2、运行 Hadoop

    将 Hadoop 复制到 worker1 。

    # 复制 .bashrc 的一些环境变量,可选
    scp ~/.bashrc hadoop@worker1:~/.bashrc
    # 将 Hadoop 安装目录复制到 worker1,
    scp -r ~/hadoop  hadoop@worker1:~/hadoop
    
    

    格式化 HDFS

    # master 主机运行,只需要运行一次,第二次运行会报错
    hdfs namenode -format <集群名称>
    
    

    开启 namenode、datanode

    # master 运行
    hdfs --daemon start namenode
    # master 和每个 worker 分别运行
    hdfs --daemon start datanode
    # 配置好 ssh 免密登录后,只需要在 master 运行,等同于上面的两个命令(二选一)
    start-dfs.sh
    
    

    使用 jps 命令查看是否运行成功

    master 运行的服务:

    8436 ResourceManager
    8200 SecondaryNameNode
    11275 Jps
    10684 NameNode
    
    

    worker1 运行的服务:

    5267 Jps
    4966 DataNode
    5143 NodeManager
    
    

    通过浏览器访问 http://master:9870/dfshealth.html 可以看到有一个 datanode。(嘻嘻,截错图了)

    image

    启动 Yarn:

    # 在 ResourceManager 运行如下命令,我们这里设置为 master
    yarn --daemon start resourcemanager
    yarn --daemon start nodemanager
    # 脚本,等同于上面两个个命令(二选一)
    start-yarn.sh
    
    

    使用浏览器访问 http://master:8088/cluster

    image

    启动 JobHistory Server

    记录已经运行完的 MapReduce 作业放到 HDFS 目录,默认配置已经够用了,所以上面没有配置

    # master 下运行
    mapred --daemon start historyserver
    
    

    浏览器访问 http://master:19888/jobhistory

    image

    master 运行 start-all.sh 则会根据配置文件开启所有节点及其所配置的服务。

    测试

    # 创建 HDFS 的目录,hadoop 是你的用户名 <username> 此相当于 Linux 的个人主目录
    bin/hdfs dfs -mkdir /user
    bin/hdfs dfs -mkdir /user/hadoop
    # 在 HDFS 的 /user/hadoop 下创建
    bin/hdfs dfs -mkdir input
    # 将文件上传到 HDFS
    bin/hdfs dfs -put etc/hadoop/*.xml input
    # 运行 Hadoop 的示例程序
    bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.1.jar grep input output 'dfs[a-z.]+'
    # 将运行结果拿到本地
    bin/hdfs dfs -get output output
    cat output/* # 或者直接在 HDFS 看 : bin/hdfs dfs -cat output/*
    1       dfsadmin
    1       dfs.replication
    
    

    3.3、关闭 Hadoop

    关闭 namenode、datanode

    # master 运行
    hdfs --daemon stop namenode
    # master 和每个 worker 分别运行
    hdfs --daemon stop datanode
    # 配置好 ssh 免密登录后,只需要在 master 运行,等同于上面的两个命令(二选一)
    stop-dfs.sh
    
    

    关闭 Yarn:

    # 在 ResourceManager 运行如下命令,我们这里设置为 master
    yarn --daemon stop resourcemanager
    yarn --daemon stop nodemanager
    # 脚本,等同于上面两个个命令(二选一)
    stop-yarn.sh
    
    

    关闭 JobHistory Server

    # master 下运行
    mapred --daemon start historyserver
    
    

    master 执行 stop-all.sh 用于关闭集群所有节点的所有服务。

    4、动态增加、删除节点

    开启 worker2 虚拟机,虚拟机设置部分见,3、集群设置 ,开启 master、worker1 虚拟机。

    4.1、将 worker2 加入集群

    开启 master 和 worker1 的 Hadoop 集群:

    # master 主机上执行
    start-all.sh
    
    

    在 master 的 Hadoop 配置文件workers,添加 worker2 作为 datanode,修改完成后使用 scp 命令同步到 worker1 和 worker2。TODO:了解 zookeeper 相关配置实现配置文件同步。

    worker1
    worker2
    
    

    登录 worker2 ,

    # 在 worker2 单独启动 datanode,nodemanager
    # 对于其他功能节点,新加入的只需要在本地启动即可,不建议通过脚本的方式
    hdfs --daemon start datanode
    yarn --daemon start nodemanager
    
    
    # 刷新 datanode 和 yarn
    hdfs dfsadmin -refreshNodes
    yarn rmadmin -refreshNodes
    
    

    通过浏览器访问 http://master:9870/dfshealth.html ,可以看到 worker2 成功加入 集群。

    4.2、将 worker1 移出集群

    Hadoop 配置文件workers 的作用是 Hadoop 脚本如 start-all.sh、stop-all.sh 通过其配置向整个集群发出操作指令,如开启整个集群、关闭整个集群。Hadoop 的 namenode 守护进程是不使用的 workers 文件的。

    实际上允许连接到 namenode 的节点通过文件 hdfs-site.xml 配置。在没有配置的情况下,默认所有节点都可以连接。严格的来说,上面的配置都是不完整的,集群上所有的节点都应该明确管理。

    使用 stop-all.sh 关闭集群, 在 master 机器上,新建 hosts.includes 表示允许连接的节点配置,文件内容分别如下:

    worker1
    worker2
    
    

    文件 hdfs-site.xml 新增如下配置:

    <!-- 允许连接到 namenode 的节点 -->
    <property>
      <name>dfs.hosts</name>
      <value>/home/hadoop/hadoop-3.2.1/etc/hadoop/hosts.includes</value>
    </property>
    
    

    文件 yarn-site.xml

    <!-- 允许连接到 ResourceManager 的节点 -->
    <property>
      <name>yarn.resourcemanager.nodes.include-path</name>
      <value>/home/hadoop/hadoop-3.2.1/etc/hadoop/hosts.includes</value>
    </property>
    
    

    使用 scp 同步到 worker1、worker2,然后启动 Hadoop 集群。假设有 worker3 按照 4.1、将 worker2 加入集群 的方式加入集群,是不能连接到 namenode 的了,参考上面第一步将其加入 host.includes 文件即可再启动即可。

    cd ~/hadoop-3.2.1/etc/hadoop
    scp ./* xian@worker1:~/hadoop-3.2.1/etc/hadoop
    scp ./* xian@worker2:~/hadoop-3.2.1/etc/hadoop
    # 启动集群
    start-all.sh
    
    

    对于要将节点退出 Hadoop 集群,最简单的方式就是将这个节点直接关闭:

    # 错误示范
    hdfs --daemon stop datanode
    
    

    HDFS 具有容错性,在多个副本的集群直接关掉一两个节点还不会导致集群数据的丢失。然而这是不推荐的,就像在本文里,只有一个文件副本,直接关闭一个 datanode,那么该节点的数据会直接从集群消失。正确的做法是将需要退出的 datanode 告知 namenode,Hadoop 守护进程就会将该节点的数据复制到其他节点,然后需要移除的节点进入 Decommissioned 才可以移除。

    正确示例:

    第一步 : 告诉 Hadoop 我要移除某个节点了 移除节点的通过 exclude 文件控制,通过 dfs.hosts.exclude 和 yarn.resourcemanager.nodes.exclude -path 这两个属性配置。新建 hosts.excludes 文件,加入 worker1 ,表示要将 worker1 排除。

    worker1
    
    

    文件 hdfs-site.xml 新增如下配置:

    <!-- 从 namenode 排除的节点 -->
    <property>
      <name>dfs.hosts.exclude</name>
      <value>/home/hadoop/hadoop-3.2.1/etc/hadoop/hosts.excludes</value>
    </property>
    
    

    文件 yarn-site.xml

    <!-- 从 ResourceManager 移除的节点 -->
    <property>
      <name>yarn.resourcemanager.nodes.exclude-path</name>
      <value>/home/hadoop/hadoop-3.2.1/etc/hadoop/hosts.excludes</value>
    </property>
    
    

    使用 scp 同步到 worker1、worker2。

    第二步:更新 namenode 和 resourcemanager 将要移除的节点数据拷贝到其他节点,并更新 namenode 的元数据等

    hdfs dfsadmin -refreshNodes
    # Refresh nodes successful
    yarn rmadmin -refreshNodes
    # INFO client.RMProxy: Connecting to ResourceManager at master/192.168.128.10:8033
    # 数据平衡
    start-balancer.sh
    
    

    查看 datanode 是否已经移除:执行完成后执行 hdfs dfsadmin -report 或者 web 页面可以看到 worker 处于 Decommissioned 。

    Decommission Status : Decommissioned
    
    
    • In service:正常服务
    • Decommissioning:复制数据中
    • Decommissioned : 数据复制完成,可以移除该节点

    Web 页面:http://master:9870/dfshealth.html#tab-datanode ,刷新,找到 worker1

    image

    查看 Yarn 的 ResourceManager 是否已经移除: 执行命令 yarn node -list --all,查看 节点状态:

       worker1:44743         DECOMMISSIONED      worker1:8042                                  0
    
    
    • RUNNING :运行中
    • DECOMMISSIONED : 可以移除了

    web 页面刷新 :http://master:8088/cluster/nodes/decommissioned 也是显示 Decommissioned

    image

    可能遇到的错误 一个 master ,两个 worker 集群的时候, worker1 的 datanode 一直不显示 Decommissioned。 后面加多了两个 worker ,worker1 正常挂 Decommissioned 状态。一个 master ,两个 worker 集群的不成功原因分析:

    • dfs.replication : 属性先前我设置为 2,虽然后面改成了 1,但可能没有让其生效,退出 worker1 后 导致集群中 datanode 数量小于 2 ,datanode 运行中数量要大于 dfs.replication 的值才可以移除某个节点。TODO:补充刷新 dfs.replication 的命令。
    • HDFS 集群相关的设定,不允许移除 worker1 后只剩下一个 worker2 节点,TODO: 看源码。
    • 退出安全模式 hadoop dfsadmin -safemode <command> 不是这个原因hdfs dfsadmin -safemode enter/leave

    提示:对于数据量比较大的集群,Decommissioning 数据移动的状态会比较长的时间,可以把 dfs.replication 设置相对小点,减少数据量的拷贝。TODO 待实验

    第三步:从 hosts.includes、hosts.excludes、workers 删除需要移除的节点记录。同步配置文件,然后运行:

    hdfs dfsadmin -refreshNodes
    yarn rmadmin -refreshNodes
    # 数据平衡
    start-balancer.sh
    
    

    第四步:关闭 woker1

    hdfs --daemon stop datanode
    yarn --daemon stop nodemanager
    sudo poweroff
    
    

    通过 hdfs-site.xml 配置 hosts.includes、hosts.excludes 两个文件的情况下,第一二列表示节点是否出现在改文件中:引用「Hadoop 权威指南(中文版)」P.333

    includes excludes 解析
    节点无法连接
    节点无法连接
    节点可连接
    节点可连接,将被移除

    遇到的错误:

    ERROR org.apache.hadoop.hdfs.server.datanode.DataNode: RECEIVED SIGNAL 15: SIGTERM
    
    

    原因是把 master 和 worker1 都作为 worker 了,但成功启动,最后发现,master 还是还是不要加入 workers 文件作为 datanode。
    转自:https://my.oschina.net/RyenAng/blog/4486155

    相关文章

      网友评论

          本文标题:Hadoop 的安装和配置

          本文链接:https://www.haomeiwen.com/subject/anitbktx.html