大資料_MapReduce和Hadoop的安裝與配置
阿新 • • 發佈:2019-02-08
谷歌的向量矩陣
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的結構
免密碼登入的原理和配置