sheng的学习笔记-hadoop,MapReduce,yarn,hdfs框架原理

目录

搭建hadoop

下载hadoop

JAVA

下载bin

windows

改环境变量

将winutils.exe和hadoop.dll放到C:\Windows\System32下,然后重启

修改配置

vim core-site.xml

vim hdfs-site.xml

hadoop-env.sh  

mapred-site.xml

yarn-site.xml

格式化命令

 启动集群

启动命令

​编辑

web管理页面

查看示例

hadoop

Hadoop是什么

Hadoop的优势

Hadoop的组成

 三个组件协作关系

hadoop生态圈

hdfs

hdfs是什么

shell操作命令

创建目录

上传文件夹

上传模糊匹配的命令

查看文件

查看文件内容

 下载文件

删除

拷贝

hdfs架构图

HDFS 块(Block)

NameNode:

DataNode:

Client:

SecondaryNameNode:

checkpoint

hdfs持久化

NameNode

fsimage

Edits

生成fsimage和edits场景

安全模式

什么是安全模式

进入安全模式的三种情况

HDFS写原理

HDFS读原理

hdfs集群

心跳机制

hdfs优缺点

HDFS优点:

HDFS劣势:

MapReduce

什么是MapReduce

流程

架构图

示例

Yarn

什么是yarn

架构图

Yarn工作流程

Yarn作业提交全过程

作业提交

作业初始化

任务分配

任务运行

进度和状态更新

作业完成

MR任务执行

Yarn调度器

FIFO调度器

容量调度器(Capacity Scheduler)

公平调度器(Fair Scheduler)

与容量调度器对比

公平调度器缺额

公平调度器策略

参考文章


hadoop官网

https://hadoop.apache.org/

搭建hadoop

下载hadoop

下载后的目录作用

JAVA

需要安装java,并且保证路径没有空格

下载bin

windows要去 https://gitee.com/nkuhyx/winutils

下载bin,并且将bin的内容拷贝到hadoop的bin文件夹中

 

windows

最好别用windows搭,贼坑,我都搭建完了,运行mapreduce的词频统计,还是失败(应该是权限问题,找了很多资料也解决不了),基于hadoop的hive也会失败(跟词频统计失败相同的报错),有空搭建个docker的

改环境变量

新增 HADOOP_HOME  hadoop路径  xxx\hadoop-3.4.0
path后面新增  ;%HADOOP_HOME%\bin;%HADOOP_HOME%\sbin;

看一下安装完成

hadoop version

将winutils.exe和hadoop.dll放到C:\Windows\System32下,然后重启

F:\workspace\arch\hadoop\hadoop-3.4.0\share\hadoop\mapreduce>hadoop jar hadoop-m
apreduce-examples-3.4.0.jar pi 1 1

修改配置

vim core-site.xml

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://hadoop001:9820</value>
  </property>

  <!-- 指定hadoop数据的存储目录 -->
  <property>
    <name>hadoop.tmp.dir</name>
    <value>F:/workspace/arch/hadoop/hadoop-3.4.0/data</value>
  </property>

</configuration>

vim hdfs-site.xml

<configuration>
   <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    <!-- nn web端访问地址-->
    <property>
        <name>dfs.namenode.http-address</name>
        <value>localhost:9870</value>
    </property>
    <!-- 2nn wen段访问地址-->
    <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>localhost:9868</value>
    </property>
    <property>
        <name>dfs.namenode.name.dir</name>
        <value>${hadoop.tmp.dir}/dfs/name</value>
    </property>
    <property>
        <name>dfs.namenode.data.dir</name>
        <value>${hadoop.tmp.dir}/dfs/data</value>
    </property>

</configuration>

hadoop-env.sh  

我的配置 

export JAVA_HOME=F:\NoMoving\jdk8

hadoop-env.cmd

mapred-site.xml

<configuration>
<!--设置MR程序默认运行模式:YARN集群模式 local本地模式-->
    <property>
           <name>mapreduce.framework.name</name>
           <value>yarn</value>
    </property>
  <!--MR程序历史服务地址-->
     <property>
           <name>mapreduce.jobhistory.address</name>
           <value>localhost:10020</value>
     </property>
  <!--MR程序历史服务器web端地址-->
      <property>
           <name>mapreduce.jobhistory.webapp.address</name>
           <value>localhost:19888</value>
      </property>  
  <!---->
    <property>
          <name>yarn.app.mapreduce.am.env</name>
          <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
  <!---->
    <property>
          <name>mapreduce.map.env</name>
          <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>
  <!---->
    <property>
          <name>mapreduce.reduce.env</name>
          <value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
    </property>

</configuration>

yarn-site.xml

<configuration>
  <!--设置YARN集群主角色运行机器位置-->
    <property>
          <name>yarn.resourcemanager.hostname</name>
          <value>localhost</value>
    </property>
  <!---->
    <property>
          <name>yarn.nodemanager.aux-services</name>
          <value>mapreduce_shuffle</value>
    </property>
  <!--是否对容器实施物理内存限制-->
     <property>
            <name>yarn.nodemanager.pmem-check-enabled</name>
            <value>false</value>
     </property> 
   <!--开启日志聚集-->
     <property>
            <name>yarn.log-aggregation-enable</name>
            <value>true</value>
     </property>
    <!--设置yare历史服务器地址-->  
     <property>
            <name>yarn.log.server.url</name>  
            <value>http://localhost:1988/jobnistory/logs</value>
     </property>
</configuration>

格式化命令

在hadoop\hadoop-3.4.0\bin中,运行命令

hdfs namenode -format

自动生成了这俩文件夹,注意,data文件夹不可以自己先创建好,要让程序自动创建

 启动集群

启动命令

在hadoop\hadoop-3.4.0\sbin文件夹中运行命令

start-dfs.cmd

jps看看状态

 全部启动

  1. start-all.sh

  2. stop-all.sh

web管理页面

打开网页

http://localhost:9870/

yarn页面  

http://localhost:8088/

查看示例

 试验一下,使用hadoop自带的功能

在input的文件夹下,创建file1.txt文件,内容是

hadoop spark hadoop hdfs hdfs hive
shell edit view session profiles toolbetlt

在shell中用命令把这个文件的内容做多次重复

 for i in {1..1000}; do cat file1.txt >>file2.txt; done

将input上传到hdfs中

看一下上传成功了没

hadoop

Hadoop是什么

  • Hadoop是一个由Apache基金会所开发的分布式系统基础架构
  • 主要解决海量数据的存储和海量数据的分析计算问题
  • 通常Hadoop是指一个更广泛的概念–Hadoop生态圈

Hadoop的优势

  1. 高可靠性:Hadoop底层维护了多个数据副本,所以即使Hadoop某个计算元素存储出现故障,也不会导致数据的丢失
  2. 高扩展性:在集群运行间动态增加服务器,可方便地扩展数以千计的节点
  3. 高效性:在MapReduce思想下,Hadoop是并行工作的,以加快任务处理速度。
  4. 高容错性:能够自动将失败的任务重新分配

Hadoop的组成

  • 在Hadoop1.x时代,Hadoop中的MapReduce同时处理业务逻辑运算和资源的调度,耦合性较大
  • 在Hadoop2.x时代,增加了Yarn。Yarn只负责资源的调度,MapReduce只负责运算,降低了耦合度
  • Hadoop3.x在组成上没有变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值