谷歌的向量矩阵

还有必要学mapreduce吗 mapreduce需要安装吗_hadoop

MapReduce计算模型

还有必要学mapreduce吗 mapreduce需要安装吗_还有必要学mapreduce吗_02

java的序列化是实现Serializable接口(我如果想把一个java的对象作为inputStream和outputStream流的对象的话,这个java类必须要实现java序列化机制。)

一、Google的基本思想
    1、GFS
    2、MapReduce:计算模型,进行大数据计算

                  问题的来源:PageRank(网页排名)

                  核心:先拆分,再合并

    3、BigTable:大表,NoSQL数据库:HBase 基于HDFS之上的NoSQL数据库、列式数据库


                  HBase里的表 ----> HDFS的目录
                  HBase里的表的数据 ---->HDFS目录里的文件 

                 思想:通过牺牲存储的空间,来换取性能
                      把所有的数据存入一张表中,完全违背了关系型数据库范式的要求

对比关系型数据库和大表的数据库的表结构

还有必要学mapreduce吗 mapreduce需要安装吗_大数据_03

上表中,在执行查询的时候有两条记录,因为相同的rowkey是一条记录。

二、Hadoop 2.X的安装与配置
    习惯:SecureCRT
    准备:1、安装Linux和JDK
          2、关闭防火墙
          3、配置主机名 

    解压:tar -zxvf hadoop-2.7.3.tar.gz -C ~/training/
    设置环境变量:vi ~/.bash_profile
                    HADOOP_HOME=/root/training/hadoop-2.7.3
                    export HADOOP_HOME

                    PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
                    export PATH 
    生效环境变量      source ~/.bash_profile



    介绍Hadoop的目录结构

    Hadoop有三种安装模式
    1、本地模式   一台Linux
        (*)特点:没有HDFS,只能测试MapReduce程序(本地数据:Linux的文件)
        (*)配置:hadoop-env.sh 
                 26行  export JAVA_HOME=/root/training/jdk1.8.0_144

        (*)Demo:测试MapReduce程序
                   example: /root/training/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
                   hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount ~/temp/data.txt ~/temp/mr/wc1


    2、伪分布模式    一台Linux
        (*)特点:在单机上,模拟一个分布式的环境,具备Hadoop的所有功能
        (*)hdfs-site.xml

                <!--数据块的冗余度,默认是3-->
                <property>
                  <name>dfs.replication</name>
                  <value>1</value>
                </property>

                <!--是否开启HDFS的权限检查,默认:true-->
                <!--
                <property>
                  <name>dfs.permissions</name>
                  <value>false</value>
                </property>
                -->

            core-site.xml
                <!--NameNode的地址-->
                <property>
                  <name>fs.defaultFS</name>
                  <value>hdfs://bigdata11:9000</value>
                </property> 

                <!--HDFS数据保存的目录,默认是Linux的tmp目录,Linux的temp目录的特点是:如果Linux重启之后,这个temp目录下的所有数据会被删掉,所以必须更换目录,新目录要事先存在。-->
                <property>
                  <name>hadoop.tmp.dir</name>
                  <value>/root/training/hadoop-2.7.3/tmp</value>
                </property> 

            mapred-site.xml
            需要注意的是:mapred-site.xml文件默认是没有的,需要执行如下命令,拷贝一份
            cp mapred-site.xml.template mapred-site.xml

                <!--MR程序运行的容器是Yarn-->
                <property>
                  <name>mapreduce.framework.name</name>
                  <value>yarn</value>
                </property>     

            yarn-site.xml
                <!--ResourceManager的地址-->
                <property>
                  <name>yarn.resourcemanager.hostname</name>
                  <value>bigdata11</value>
                </property>     

                <!--NodeManager运行MR任务的方式-->
                <property>
                  <name>yarn.nodemanager.aux-services</name>
                  <value>mapreduce_shuffle</value>
                </property> 

            对NameNode进行格式化: hdfs namenode -format
                 日志:Storage directory /root/training/hadoop-2.7.3/tmp/dfs/name has been successfully formatted.

            启动:start-all.sh = start-dfs.sh + start-yarn.sh

        (*)Demo:测试MapReduce程序
                   example: /root/training/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar
                   hadoop jar hadoop-mapreduce-examples-2.7.3.jar wordcount /input/data.txt /output/wc1204


    3、全分布模式    三台Linux
        (*)特点:真正的分布式环境,用于生产


    4、掌握免密码登录的原理和配置
Hadoop的目录结构

还有必要学mapreduce吗 mapreduce需要安装吗_hadoop_04

还有必要学mapreduce吗 mapreduce需要安装吗_hadoop_05

Yarn的结构

还有必要学mapreduce吗 mapreduce需要安装吗_hadoop_06

免密码登录的原理和配置

还有必要学mapreduce吗 mapreduce需要安装吗_大数据_07