Hadoop3.x入门

版本3.1.3

环境搭建   

虚拟机配置JDK后解压hadoop压缩包即可,踩坑:虚拟机网络配置完后,windows能ping通,远程登录拒绝。关闭虚拟机后仍然可以ping通,发现虚拟机设置的是windows中已经存在的ip,修改虚拟机ip后重试登录成功

Hadoop目录

(1)bin目录:存放对Hadoop相关服务(hdfs,yarn,mapred)进行操作的脚本

(2)etc目录:Hadoop的配置文件目录,存放Hadoop的配置文件

(3)lib目录:存放Hadoop的本地库(对数据进行压缩解压缩功能)

(4)sbin目录:存放启动或停止Hadoop相关服务的脚本

(5)share目录:存放Hadoop的依赖jar包、文档、和官方案例

Hadoop3.x组成

HDFS数据存储

        1.NameNode 存储文件的元数据,如文件名、目录结构、文件属性,以及每个文件的块列表和所在块的DataNode等,类似于数据库索引

        2.DataNode 存储文件块数据,块数据的校验和

        3.Secondary NameNode(2nn) 每隔一段时间对NameNode元数据进行备份

Yarn资源调度

        1.ResourceManager 整个集群资源的管理者

        2.ApplicationMaster 单个任务运行管理者

        3.NodeManager 单个节点服务器资源管理者

        4.Container 容器,相当于一台服务器,类似docker

MapReduce计算

        1.Map阶段并行处理数据输入

        2.Reduce阶段对Map阶段结果进行汇总

Common辅助工具

关系总结(暂时的认知可能不对,后续学习后会更新):比如3台服务器,对于YARN首先每台服务器都有自己的NodeManager,然后ResourceManager在其中一台服务器上用于管理整个集群资源。HDFS每台服务器都有自己的DataNode用于存放实际的数据,然后有一个NameNode存在于一台服务器上用于充当索引的角色,还有一个服务器运行着2nn用于备份NameNode的元数据。

基本流程线(暂时的认知可能不对,后续学习后会更新):客户端请求进入后首先到达ResourceManager,由ResourceManager提供所需的资源后NodeManager创建Container,然后ApplicationMaster启动任务,进入map阶段,找到结果后reduce阶段写出数据到DataNode,接着伴随2nn备份。

集群配置

配置

本地虚拟机开启了3台服务器,分别命名为hadoop102,hadoop103,hadoop104

由于机器配置限制故将NameNode和ResourceManager和2nn部署到不同服务器上

核心配置文件

 

路径
cd $HADOOP_HOME/etc/hadoop

core-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

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

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

    <!-- 配置HDFS网页登录使用的用户-->
    <property>
        <name>hadoop.http.staticuser.user</name>
        <value>dmz</value>
    </property>
</configuration>

hdfs-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
	<!-- nn web端访问地址-->
	<property>
        <name>dfs.namenode.http-address</name>
        <value>hadoop102:9870</value>
    </property>
	<!-- 2nn web端访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>hadoop104:9868</value>
    </property>
</configuration>

yarn-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

<configuration>
    <!-- 指定MR走shuffle -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <!-- 指定ResourceManager的地址-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop103</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>

mapred-site.xml

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>

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

hadoop-3.1.3/etc/hadoop/workers

追加
hadoop102
hadoop103
hadoop104

最后将改动的配置文件复制到其他2台服务器相同地方

启动集群

如果是第一次启动需要在配置NameNode的节点上先格式化NameNode以生成集群id

hdfs namenode -format

然后启动HDFS

sbin/start-dfs.sh

在配置了ResourceManager的节点启动YARN

sbin/start-yarn.sh
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值