Hadoop集群极简入门基础配置教程

集群规划

  • 首先进行 集群规划 ,文件中的某些配置需要基于对集群的规划,进行配置之前,需要先计划好Hadoop中的各个组件服务器应该搭载在哪台主机上,实现 负载均衡,避免由于宕机而造成不可逆损失,集群规划 是搭建分布式环境之前的最重要步骤之一,本次实验中具体规划如下:
hadoop101 hadoop102 hadoop103
HDFS NameNode
DateNode
DateNode DateNode
SecondaryNameNode
YARN NodeManager ResourceManager
NodeManager
NodeManager
  • 操作系统:CentOS-7-x86_64
  • Hadoop版本:hadoop-2.7.7

1. 核心配置文件

  • 配置文件在 /hadoop-2.7.7/etc/hadoop 路径下
  • 注意:在进行配置之前需要在 /etc/hosts 文件中建立IP到主机名的映射

(1)配置core-site.xml

  • 编辑 core-site.xml 文件,在configuration中插入配置信息,具体配置如下所示:
<configuration>
	<!-- 指定HDFS中NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://hadoop101:9000</value>
    </property>
    
    <!-- 指定Hadoop运行时产生文件的存储目录 -->
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/opt/module/hadoop-2.7.7/data/tmp</value>
    </property>
</configuration>

2. HDFS配置文件

  • 配置文件路径同上

(1)配置hadoop-env.sh

  • 编辑 hadoop-env.sh 文件,将其中的 JAVA_HOME 环境变量修改为本机Java实际安装路径,如:
# 修改前:export JAVA_HOME=${JAVA_HOME},修改后:
export JAVA_HOME=/opt/module/jdk1.8.0_221/

(2)配置hdfs-site.xml

  • 编辑 hdfs-site.xml 文件,在configuration中插入配置信息,具体配置如下所示:
<configuration>
    <!-- 指定HDFS副本因子数-->
    <!--由于实验主机磁盘空间不足,本次实验中设置为1,一般需要设置为3 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

    <!-- 指定Hadoop辅助节点SecondaryNameNode主机配置 -->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop103:50090</value>
    </property>
</configuration>

3. YARN配置文件

  • 配置文件路径同上

(1)配置yarn-env.sh

  • 编辑 yarn-env.sh 文件,将其中的 JAVA_HOME 环境变量修改为本机Java实际安装路径,如:
# 修改前:# export JAVA_HOME=/home/y/libexec/jdk1.6.0/,修改后:
export JAVA_HOME=/opt/module/jdk1.8.0_221/

(2)配置yarn-site.xml

  • 编辑 yarn-site.xml 文件,在configuration中插入配置信息,具体配置如下所示:
<configuration>

    <!-- Site specific YARN configuration properties -->
    
    <!-- 设置Reducer获取数据的方式 -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <!-- 指定YARN的ResourceManager的地址 -->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop102</value>
    </property>
    
    <!--此参数指的是nodemanager的可用内存大小,单位为Mb,设置为主机内存大小-->
    <!--本次实验主机内存大小为2GB,此参数根据各机器分配的物理内存大小设置-->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>2048</value>
    </property>
</configuration>

4. MapReduce配置文件

  • 配置文件路径同上
  • (1)配置mapred-env.sh

# 修改前:# export JAVA_HOME=/home/y/libexec/jdk1.6.0/,修改后:
export JAVA_HOME=/opt/module/jdk1.8.0_221/
  • (2)配置mapred-site.xml

  • mapred-site.xml.template 文件复制一份名为 mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
  • 编辑 mapred-site.xml 文件,在configuration中插入配置信息,具体配置如下所示:
<!-- Put site-specific property overrides in this file. -->

<configuration>
    <!-- 指定MR运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

4. slaves配置文件

  • 配置文件路径同上
  • (1)配置slaves文件

  • 此文件内容主要是用于作为后续集群脚本启动时的参数,此文件中声明的主机共同组成集群,
  • 注意:文件中内容必须一行一个hostname,不允许有任何多余空格,使用主机名配置此文件之前,应该事先在 /etc/hosts 文件中设置好主机IP到主机名的映射,具体配置如下所示:
hadoop101
hadoop102
hadoop103

5. 同步集群配置

  • 同步集群中各个主机的配置文件
  • 至此核心配置文件、HDFS、YARN、MapReduce、slaves共8个文件都已经配置完成,后续可在此基础上增加配置

6. 启动集群测试

  • 启动集群之前最好设置 ssh免密登录,避免启动过程中需要频繁输入密码
    实现主机之间ssh免密登录
  • (1)格式化NameNode节点

  • 如果是第一次启动,记得使用hdfs命令格式化NameNode节点。如果不是第一次记得先删除data和logs文件夹(都在hadoop文件夹内)。格式化命令如下:
[tomandersen@hadoop101 hadoop]$ hdfs namenode -format
  • (2)启动HDFS集群

  • 注意:在哪台主机上配置的NameNode,哪台主机就是HDFS的客户端,只能在那台主机上启动HDFS集群,否则将无法正常启动NameNode,在其他节点上启动HDFS会将其作为DataNode启动,导致集群缺少ResourceManager(关闭时也应如此)。这也是“start-all.sh”等工具被弃用的重要原因之一
[tomandersen@hadoop101 hadoop]$ start-dfs.sh
  • (3)启动YARN集群

  • 注意:在哪台主机上配置的ResourceManager,哪台主机就是YARN的客户端,只能在那台主机上启动YARN集群,否则将无法正常启动ResourceManager,在其他节点上启动YARN会将其作为NodeManager启动,导致集群缺少ResourceManager(关闭时也应如此)
[tomandersen@hadoop102 hadoop]$ start-yarn.sh
  • (4)在各个节点上查看Java进程

  • 使用 jps命令 查看Java进程,观察进程角色是否和之前的集群规划相匹配,本次实验中各节点进程状态如下:
  • hadoop101:
[tomandersen@hadoop101 hadoop]$ jps
23505 NodeManager
23915 NameNode
24270 Jps
  • hadoop102:
[tomandersen@hadoop102 hadoop]$ jps
26327 Jps
25784 NodeManager
25631 ResourceManager
  • hadoop103:
[tomandersen@hadoop103 hadoop]$ jps
18177 Jps
17699 NodeManager
18093 SecondaryNameNode
  • 最后也可以使用Hadoop自带的例子测试运行,此程序是用于计算圆周率
 hadoop jar /opt/module/hadoop-2.7.7/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar pi 10 10

End~


发布了15 篇原创文章 · 获赞 5 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/TomAndersen/article/details/104220449