day_01小笔记----本地运行Hadoop 案例、伪分布式运行Hadoop 案例

0、hadoop1.x和hadoop2.x区别

Hadoop1.x的核心组件 与Hadoop2.x核心组件不一样
Hadoop1.x:hdfs、common、mapreduce(mapreduce同时处理业务逻辑 运算和资源调度、耦合性较大)
Hadoop2.x:hdfs、yarn、common、mapreduce(增加yarn、yarn只负责资源的调度、mapreduce只负责运算)


1、概念理解


HDFS组成:namenode(存储文件的元数据)、datanode(本地储存数据)、secondary namenode(用来监控hdfs状态的辅助后台程序,每隔一段时间获取hdfs元数据的快照)
YARN组成:resourcemanager(1.处理客户端请求   2.监控nodemanager   3. 启动或者监控applicationmaster  4.资源的分配与调度)、nodemanger(1.管理单个节点上的资源、
                   2.处理来自resourcemanager的命令、3.处理来自applicationmaster的命令)、applicationmaster(1.负责数据的切分  2.为应用程序申请资源并分配给内部任务 3.任务的监控与容错)、
                   container(是yarn中资源抽象、它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等)
MapReduce组成: map阶段、reduce阶段
                  1)Map阶段并行处理输入数据
                  2)Reduce阶段对Map结果进行汇总

2、克隆一台虚拟机


    ip地址:192.168.1.105
    主机名:hadoop105
    用户名:atguigu
    配置atguigu具有root权限
    关闭防火墙
    安装jdk
    安装hadoop

3、本地运行Hadoop 案例(3.1.2 官方wordcount案例)


    1.    创建在hadoop-2.7.2文件下面创建一个wcinput文件夹
    [atguigu@hadoop101 hadoop-2.7.2]$ mkdir wcinput
    2.    在wcinput文件下创建一个wc.input文件
    [atguigu@hadoop101 hadoop-2.7.2]$ cd wcinput
    [atguigu@hadoop101 wcinput]$ touch wc.input
    3.    编辑wc.input文件
    [atguigu@hadoop101 wcinput]$ vi wc.input
    在文件中输入如下内容
    hadoop yarn
    hadoop mapreduce
    atguigu
    atguigu
    保存退出::wq
    4.    回到Hadoop目录/opt/module/hadoop-2.7.2
    5.    执行程序
    [atguigu@hadoop101 hadoop-2.7.2]$ hadoop jar
     share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount wcinput wcoutput
    6.    查看结果
    [atguigu@hadoop101 hadoop-2.7.2]$ cat wcoutput/part-r-00000
    atguigu 2
    hadoop  2
    mapreduce       1
    yarn    1


4、伪分布式运行Hadoop 案例(3.2.1 HDFS上运行MapReduce 程序)


    (1)配置集群
        (a)配置:hadoop-env.sh
    Linux系统中获取JDK的安装路径:
    [atguigu@ hadoop101 ~]# echo $JAVA_HOME
    /opt/module/jdk1.8.0_144
    修改JAVA_HOME 路径:
    export JAVA_HOME=/opt/module/jdk1.8.0_144
        (b)配置:core-site.xml
    <!-- 指定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.2/data/tmp</value>
    </property>
        (c)配置:hdfs-site.xml
    <!-- 指定HDFS副本的数量 -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
    (2)启动集群
        (a)格式化NameNode(第一次启动时格式化,以后就不要总格式化)
    [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs namenode -format
        (b)启动NameNode
    [atguigu@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start namenode
        (c)启动DataNode
    [atguigu@hadoop101 hadoop-2.7.2]$ sbin/hadoop-daemon.sh start datanode
    (3)查看集群
        (a)查看是否启动成功
 
       [atguigu@hadoop101 hadoop-2.7.2]$ jps
        13586 NameNode
        13668 DataNode
        13786 Jps
    注意:jps是JDK中的命令,不是Linux命令。不安装JDK不能使用jps
        (b)web端查看HDFS文件系统
        http://hadoop101:50070/dfshealth.html#tab-overview
        注意:如果不能查看,看如下帖子处理
        http://www.cnblogs.com/zlslch/p/6604189.html
        (c)查看产生的Log日志
          说明:在企业中遇到Bug时,经常根据日志提示信息去分析问题、解决Bug。
        当前目录:/opt/module/hadoop-2.7.2/logs
        [atguigu@hadoop101 logs]$ ls
        hadoop-atguigu-datanode-hadoop.atguigu.com.log
        hadoop-atguigu-datanode-hadoop.atguigu.com.out
        hadoop-atguigu-namenode-hadoop.atguigu.com.log
        hadoop-atguigu-namenode-hadoop.atguigu.com.out
        SecurityAuth-root.audit
        [atguigu@hadoop101 logs]# cat hadoop-atguigu-datanode-hadoop101.log
        (d)思考:为什么不能一直格式化NameNode,格式化NameNode,要注意什么?
        [atguigu@hadoop101 hadoop-2.7.2]$ cd data/tmp/dfs/name/current/
        [atguigu@hadoop101 current]$ cat VERSION
        clusterID=CID-f0330a58-36fa-4a2a-a65f-2688269b5837

        [atguigu@hadoop101 hadoop-2.7.2]$ cd data/tmp/dfs/data/current/
        clusterID=CID-f0330a58-36fa-4a2a-a65f-2688269b5837

        注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。所以,格式NameNode时,一定要先删除data数据和log日志,然后再格式化NameNode。
    (4)操作集群
        (a)在HDFS文件系统上创建一个input文件夹
            [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -mkdir -p /user/atguigu/input
        (b)将测试文件内容上传到文件系统上
            [atguigu@hadoop101 hadoop-2.7.2]$bin/hdfs dfs -put wcinput/wc.input
              /user/atguigu/input/
        (c)查看上传的文件是否正确
            [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -ls  /user/atguigu/input/
            [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat  /user/atguigu/ input/wc.input
        (d)运行MapReduce程序
            [atguigu@hadoop101 hadoop-2.7.2]$ bin/hadoop jar
            share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar wordcount /user/atguigu/input/ /user/atguigu/output
        (e)查看输出结果
            命令行查看:
            [atguigu@hadoop101 hadoop-2.7.2]$ bin/hdfs dfs -cat /user/atguigu/output/*
            浏览器查看,如图2-34所示

            图2-34 查看output文件
        (f)将测试文件内容下载到本地
            [atguigu@hadoop101 hadoop-2.7.2]$ hdfs dfs -get /user/atguigu/output/part-r-00000 ./wcoutput/
        (g)删除输出结果
            [atguigu@hadoop101 hadoop-2.7.2]$ hdfs dfs -rm -r /user/atguigu/output

    

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值