文章目录

  • 一、搭建集群
  • 1.1 架构信息
  • 1.2 配置文件
  • 1.3 修改自定义配置文件
  • 1.4 分发配置文件
  • 二、启动hadoop集群
  • 2.1 启动hdfs
  • 2.1.1 添加workers节点
  • 2.1.2 格式化namenode
  • 2.1.3 启动集群
  • 2.2 启动yarn


一、搭建集群

1.1 架构信息

各组件和机器间的对应关系如下表

hadoop100

hadoop101

hadoop102

HDFS

NameNode DataNode

DataNode

SecondaryNameNode DataNode

YARN

NodeManager

Resource Manager NodeManager

NodeManager

原则上是NameNodeSecondaryNameNode不在一台机器上;而且ResourceManager消耗资源比较高,放在资源相对充足的hadoop101上。

  1. 3台机器上分别安装hadoop3.1.3,注意:首先要安装JDK
  2. 3台机器间配置免密登录(方便分发文件),创建一个分发文件的脚本xsync。这一步可以省略

1.2 配置文件

  • 默认配置文件
  • core-default.xml
  • hdfs-default.xml
  • yarn-default.xml
  • mapred-default.xml

官方建议不要在默认配置文件中修改,可以复制他的内容到自定义配置文件中,然后修改值。

  • 自定义配置文件
  • 自定义的配置文件都在hadoop-3.1.3/etc/hadoop/目录下
  • core-site.xml
  • hdfs-site.xml
  • yarn-site.xml
  • mapred-site.xml

1.3 修改自定义配置文件

  1. core-site.xml
<configuration>

        <property>
          <name>fs.defaultFS</name>
          <value>hdfs://hadoop100:8020</value>
          <description>The name of the default file system.  A URI whose
          scheme and authority determine the FileSystem implementation.  The
          uri's scheme determines the config property (fs.SCHEME.impl) naming
          the FileSystem implementation class.  The uri's authority is used to
          determine the host, port, etc. for a filesystem.</description>
        </property>
        <property>
          <name>hadoop.tmp.dir</name>
          <value>/usr/local/hadoop-3.1.3/data</value>
          <description>A base for other temporary directories.</description>
        </property>
        
</configuration>

修改如下:

hadoop api 兼容 s3 hadoop3.1.3配置_大数据


2. hdfs-site.xml

<configuration>

        <property>
          <name>dfs.namenode.http-address</name>
          <value>hadoop100:9870</value>
          <description>
            The address and the base port where the dfs namenode web ui will listen on.
          </description>
        </property>
        <property>
          <name>dfs.namenode.secondary.http-address</name>
          <value>hadoop102:9868</value>
          <description>
            The secondary namenode http server address and port.
          </description>
        </property>

</configuration>

hadoop api 兼容 s3 hadoop3.1.3配置_hadoop_02


3. yarn-site.xml

<configuration>

<!-- Site specific YARN configuration properties -->

  <property>
    <description>A comma separated list of services where service name should only
      contain a-zA-Z0-9_ and can not start with numbers</description>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
    <!--<value>mapreduce_shuffle</value>-->
  </property>
  <property>
    <description>The hostname of the RM.</description>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop101</value>
  </property>
  <property>
    <description>Environment variables that containers may override rather than use NodeManager's default.</description>
    <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>

hadoop api 兼容 s3 hadoop3.1.3配置_分布式_03


4. mapred-site.xml

<configuration>

        <property>
          <name>mapreduce.framework.name</name>
          <value>yarn</value>
          <description>The runtime framework for executing MapReduce jobs.
          Can be one of local, classic or yarn.
          </description>
        </property>

</configuration>

hadoop api 兼容 s3 hadoop3.1.3配置_hadoop api 兼容 s3_04

1.4 分发配置文件

  • 分发配置文件到另外两台机器上
  • 这里使用上节配置的分发脚本xsync,如果不使用xsync,则可以手动复制4个文件到另外两台机器上。
cd /usr/local/hadoop-3.1.3/etc/hadoop/
xsync core-site.xml hdfs-site.xml yarn-site.xml mapred-site.xml

二、启动hadoop集群

2.1 启动hdfs

2.1.1 添加workers节点

三台机器上修改workers文件,如下:

vi /usr/local/hadoop-3.1.3/etc/hadoop/workers
##和自定义配置文件在相同目录下
##添加集群节点,注意后面不能有空格或者空行
hadoop100
hadoop101
hadoop102

:如果不想在三台机器上同时修改,可以使用前面的xsync脚本来分发配置。

2.1.2 格式化namenode

  • 格式化namenode会产生新的集群ID。
  • 在namenode节点上执行hdfs namenode -format
hdfs namenode -format

会在namenode节点上生成一个data目录和logs目录

hadoop api 兼容 s3 hadoop3.1.3配置_分布式_05

2.1.3 启动集群

cd /usr/local/hadoop-3.1.3
sbin/start-dfs.sh

碰到问题,参考:root用户启动hadoop-3.1.3报错

hadoop api 兼容 s3 hadoop3.1.3配置_hdfs_06


启动成功

hdfs还提供了一个web访问方式

hadoop100:9870

hadoop api 兼容 s3 hadoop3.1.3配置_hdfs_07


如果在界面上Browse the file system,出现Failed to retrieve data from /webhdfs/v1/?op=LISTSTATUS: Server Error,大概率是因为JDK版本较高。参考Failed to retrieve data from /webhdfs/v1/?op=LISTSTATUS: Server Error解决。

2.2 启动yarn

在ResourceManager那台机器上启动