1. 程式人生 > >大資料_MapReduce和Hadoop的安裝與配置

大資料_MapReduce和Hadoop的安裝與配置

谷歌的向量矩陣

這裡寫圖片描述

MapReduce計算模型

這裡寫圖片描述

java的序列化是實現Serializable介面(我如果想把一個java的物件作為inputStream和outputStream流的物件的話,這個java類必須要實現java序列化機制。)


一、Google的基本思想
    1、GFS
    2、MapReduce:計算模型,進行大資料計算

                  問題的來源:PageRank(網頁排名)

                  核心:先拆分,再合併

    3、BigTable:大表,NoSQL資料庫:HBase 基於HDFS之上的NoSQL資料庫、列式資料庫
HBase裡的表 ----> HDFS的目錄 HBase裡的表的資料 ---->HDFS目錄裡的檔案 思想:通過犧牲儲存的空間,來換取效能 把所有的資料存入一張表中,完全違背了關係型資料庫正規化的要求

對比關係型資料庫和大表的資料庫的表結構

這裡寫圖片描述

上表中,在執行查詢的時候有兩條記錄,因為相同的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的目錄結構
這裡寫圖片描述

這裡寫圖片描述

Yarn的結構
這裡寫圖片描述

免密碼登入的原理和配置

這裡寫圖片描述