Hadoop搭建环境以及工作机制

Hadoop的本地模式

        1、特点:不具备HDFS,只能测试MapReduce程序
        2、修改hadoop-env.sh
        
           修改第27行:export JAVA_HOME=/opt/jdk1.7.0_75
           
        3、演示Demo: $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples2.6.5.jar
            命令:hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /root/data/input/data.txt  /root/data/output/wc
            日志:17/08/04 23:28:38 INFO mapreduce.Job:  map 100% reduce 100%
        
            注意:MR有一个默认的排序规则

Hadoop的伪分布模式


        1、特点:具备Hadoop的所有功能,在单机上模拟一个分布式的环境
                 (1)HDFS:主:NameNode,数据节点:DataNode
                 (2)Yarn:容器,运行MapReduce程序
                            主节点:ResourceManager
                            从节点:NodeManager
                            
        2、步骤:
        (1)hdfs-site.xml
            <!--配置HDFS的冗余度-->
            <property>
              <name>dfs.replication</name>
              <value>1</value>
            </property>

 副本配置

<property>
       <name>dfs.namenode.secondary.http-address</name>
       <value>192.168.8.131:50090</value>
   </property>

            <!--配置是否检查权限-->
            <property>
              <name>dfs.permissions</name>
              <value>false</value>
            </property>    

        (2)core-site.xml
            <!--配置HDFS的NameNode-->
            <property>
              <name>fs.defaultFS</name>
              <value>hdfs://192.168.8.xxx:9000</value>
            </property>

            <!--配置DataNode保存数据的位置-->
            <property>
              <name>hadoop.tmp.dir</name>
              <value>/opt/hadoop-2.6.5/tmp</value>
            </property>        
            
            
        (3) mapred-site.xml
            <!--配置MR运行的框架-->
            <property>
              <name>mapreduce.framework.name</name>
              <value>yarn</value>
            </property>        
            
        (4) yarn-site.xml
            <!--配置ResourceManager的地址-->
            <property>
              <name>yarn.resourcemanager.hostname</name>
              <value>192.168.8.xxx</value>
            </property>

            <!--配置NodeManager执行任务的方式-->
            <property>
              <name>yarn.nodemanager.aux-services</name>
              <value>mapreduce_shuffle</value>
            </property>        
            
        (5) 格式化NameNode
            hdfs namenode -format
            日志:Storage directory /opt/hadoop-2.6.5/tmp/dfs/name has been successfully formatted.
            
            
        (6) 启动:start-all.sh
                   (*) HDFS: 存储数据
                   (*) Yarn:执行计算
                   
        (7) 访问:(*)命令行
                  (*)Java API
                  (*)Web Console:
                        HDFS:http://192.168.8.xxx:50070
                        Yarn:http://192.168.8.xxx:8088

startup Progressing:启动过程

NameNode工作机制

checkPoint:

每隔一段时间或数据写满,会由secondary namenode将namenode上的积累的所有edit文件和最新的一个fsimage文件下载到本地,并加载到内存中的过程

 

配置checkPoint时间

<property>
                <name>dfs.namenode.checkpoint.period</name>
                <value>7200</value>
</property>

# DataNode

启动机制:

datanode向namanode进行注册-》datanode实时向namenode汇报运行状态,会产生一个crc的校验文件

Mapreduce模型

 

Yarn的工作机制

小文件优化:

小文件合并为大文件

自定义分区

实现partitioner<key, value>接口

重写getpartition方法

使自定义生效:job.setPartitionerClass(自定义类.class);

设置任务数:job.setNumReduceTasks(大于分区数);

分区排序:

1)实现WritableCompartable接口

2)重写comparto方法

排序的分类:

1)部分排序

2)全排序

3)辅助排序

整个mapreduce流程:

 

Shuff机制 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值