Hadoop安装--完全分布式运行模式

目录

一、Hadoop部署

1.集群部署规划

2.解压

3.配置环境变量

二、配置集群

1.配置core-site.xml

2.配置hdfs-site.xml

3.配置mapred-site.xml

4.配置yarn-site.xml

5.配置workers

6.分发hadoop

7.群起集群

 8.编写一键启动脚本


一、Hadoop部署

1.集群部署规划

         NameNode和SecondaryNameNode不要安装在同一台服务器,ResourceManager也很消耗内存,不要和NameNode、SecondaryNameNode配置在同一台机器上。

linux01linux02linux03
HDFS

NameNode

DataNode

DataNode

SecondaryNameNode

DataNode

YARNNodeManager

ResourceManager

NodeManager

NodeManager

2.解压

# tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
# mv /opt/module/hadoop-3.1.3 /opt/module/hadoop

3.配置环境变量

# sudo vim /etc/profile.d/my_env.sh
## 末位添加
export HADOOP_HOME=/opt/module/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
# source /etc/profile.d/my_env.sh

注意:三台机器都需要修改,或者修改一份分发过去

二、配置集群

hadoop的配置文件在HADOOP_HOME下的etc/hadoop中

# cd /opt/module/hadoop/etc/hadoop/

1.配置core-site.xml

	<!-- 指定NameNode的地址 -->
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://linux01:8020</value>
    </property>

    <!-- 指定hadoop数据的存储目录 -->
    <property>
            <name>hadoop.tmp.dir</name>
            <value>/opt/module/hadoop/data</value>
    </property> 

    <!-- 配置HDFS网页登录使用的静态用户为admin -->
    <property>
            <name>hadoop.http.staticuser.user</name>
            <value>admin</value>
    </property>
    
    <!-- 配置该admin(superUser)允许通过代理访问的主机节点 -->
    <property>
            <name>hadoop.proxyuser.admin.hosts</name>
            <value>*</value>
    </property>

    <!-- 配置该admin(superUser)允许通过代理用户所属组 -->
    <property>
            <name>hadoop.proxyuser.admin.groups</name>
            <value>*</value>
    </property>
    
    <!-- 配置该admin(superUser)允许通过代理的用户-->
    <property>
            <name>hadoop.proxyuser.admin.users</name>
            <value>*</value>
    </property>

2.配置hdfs-site.xml

    <!-- nn web端访问地址-->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>linux01:9870</value>
    </property>
    
    <!-- 2nn web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>linux03:9868</value>
    </property>
    
    <!-- 测试环境指定HDFS副本的数量1 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

3.配置mapred-site.xml

    <!-- 指定MapReduce程序运行在Yarn上 -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
    <!-- 历史服务器端地址 -->
    <property>
      <name>mapreduce.jobhistory.address</name>
      <value>linux01:10020</value>
    </property>

    <!-- 历史服务器web端地址 -->
    <property>
      <name>mapreduce.jobhistory.webapp.address</name>
      <value>linux01:19888</value>
    </property>

4.配置yarn-site.xml

    <!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    
    <!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>linux02</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>
    
    <!--yarn单个容器允许分配的最大最小内存 -->
    <property>
        <name>yarn.scheduler.minimum-allocation-mb</name>
        <value>512</value>
    </property>
    <property>
        <name>yarn.scheduler.maximum-allocation-mb</name>
        <value>6144</value>
    </property>
    
    <!-- yarn容器允许管理的物理内存大小 -->
    <property>
        <name>yarn.nodemanager.resource.memory-mb</name>
        <value>6144</value>
    </property>
    
    <!-- 关闭yarn对虚拟内存的限制检查 -->
    <property>
        <name>yarn.nodemanager.pmem-check-enabled</name>
        <value>true</value>
    </property>
    <property>
        <name>yarn.nodemanager.vmem-check-enabled</name>
        <value>false</value>
    </property>

    <!-- 开启日志聚集功能 -->
    <property>
        <name>yarn.log-aggregation-enable</name>
        <value>true</value>
    </property>
    
    <!-- 设置日志聚集服务器地址 -->
    <property>  
        <name>yarn.log.server.url</name>  
        <value>http://linux01:19888/jobhistory/logs</value>
    </property>
    
    <!-- 设置日志保留时间为7天 -->
    <property>
        <name>yarn.log-aggregation.retain-seconds</name>
        <value>604800</value>
    </property>

5.配置workers

linux01
linux02
linux03

6.分发hadoop

[admin@linux01 hadoop]$ cd /opt/module/
[admin@linux01 module]$ scp -r hadoop/ admin@linux02:/opt/module
[admin@linux01 module]$ scp -r hadoop/ admin@linux03:/opt/module

7.群起集群

(1)如果集群是第一次启动,需要在linux01节点格式化NameNode(注意格式化之前,一定要先停止上次启动的所有namenodedatanode进程,然后再删除datalog数据)

[admin@linux01 module]$ hdfs namenode -format

2)启动HDFS

[admin@linux01 module]$ start-dfs.sh

(3)在配置了ResourceManager的节点(linux02启动YARN

[admin@linux01 module]$ start-yarn.sh

 8.编写一键启动脚本

#!/bin/bash
if [ $# -lt 1 ]
then
    echo "No Args Input..."
    exit ;
fi
case $1 in
"start")
        echo " =================== 启动 hadoop集群 ==================="

        echo " --------------- 启动 hdfs ---------------"
        ssh linux01 "/opt/module/hadoop/sbin/start-dfs.sh"
        echo " --------------- 启动 yarn ---------------"
        ssh linux02 "/opt/module/hadoop/sbin/start-yarn.sh"
        echo " --------------- 启动 historyserver ---------------"
        ssh linux01 "/opt/module/hadoop/bin/mapred --daemon start historyserver"
;;
"stop")
        echo " =================== 关闭 hadoop集群 ==================="

        echo " --------------- 关闭 historyserver ---------------"
        ssh linux01 "/opt/module/hadoop/bin/mapred --daemon stop historyserver"
        echo " --------------- 关闭 yarn ---------------"
        ssh linux02 "/opt/module/hadoop/sbin/stop-yarn.sh"
        echo " --------------- 关闭 hdfs ---------------"
        ssh linux01 "/opt/module/hadoop/sbin/stop-dfs.sh"
;;
*)
    echo "Input Args Error..."
;;
esac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值