大資料簡介
6V特點
- Volume:資料體量打,在中小型企業中,資料量一般在TB級別;大型企業中,資料量在PB級別
- Variety:資料的來源、種類和樣式多
- 來源:資料庫、爬蟲、網頁埋點、手動錄入等
- 種類:文本、圖片、音頻、視頻、流媒體等
- 樣式:結構化資料、半結構化資料、非結構化資料
- Velocity:資料的增長速度越來越快,隨著網路的發展,資料的產生、傳播的增長速度逐漸變快,根據專家們的預測,全球的總資料量以后會以每3-5年翻一番的速度增長
- Value:資料的價值密度越來越低,價值密碼指的是需要的資料在總資料量中的占比,資料的價值密度在變低,但是不意味著獲取到的資料在變少,只是需要的資料的增長速度比不上樣本總量的增長速度
- Veracity:資料的質量/真實性,隨著網路的發展,資訊流通變得越來越便利,導致網上資料的質量變得良莠不齊
- Valence:資料的連通性,隨著大資料的發展,衍生出來越愛越多的產業,需要考慮大資料中不同產業之間的關聯
- 其他:動態性(Vitality)、可視化(Visualization)、合法性(Validity - 過度索權,大資料殺熟等)
Hadoop簡介
概述
- Hadoop是Yahoo!公司開發的后來貢獻給了Apache的一套開源的、可靠的、可擴展的分布式框架
- Hadoop提供了簡單的編程模型來對大量的資料進行分布式計算
- Hadoop能夠輕松的從一臺服務器擴展到上千臺服務器,每一臺服務器都能進行存盤和計算
- Hadoop提供了探測和處理例外的機制來保證高可用
- Hadoop之父:Doug Cutting(道格.卡汀)
- Hadoop的版本非常混亂,導致依賴Hadoop的其他框架和組件之間也非常亂 - Hadoop2.x和Hadoop1.x不兼容,Hadoop3.x和Hadoop2.x部分兼容
模塊
- Hadoop Commin:公共模塊
- Hadoop Distributed File System(HDFS):分布式檔案存盤系統
- Hadoop YARN:任務調度和集群資源管理
- Hadoop MapReduce:基于YARN的分布式計算系統
搭建
-
安裝JDK1.8
vim /etc/profile.d/javahome.sh export JAVA_HOME=/home/java1.8 export PATH=$JAVA_HOME/bin:$PATH source /etc/profile.d/javahome.sh -
關閉防火墻
# 臨時關閉 systemctl stop firewalld # 永久關閉 systemctl disable firewalld -
在Hadoop集群中,不建議主機名中出現 - 或者 _,所以需要修改主機名
vim /etc/hostname # 修改對應的主機名,例如分別為 Hadoop01 Hadoop02 Hadoop03 -
將主機名和IP進行映射
vim /etc/hosts #添加 IP 主機名,例如 192.168.65.107 hadoop01 192.168.65.108 hadoop02 192.168.65.109 hadoop03 -
關閉SELINUX
vim /etc/sysconfig/selinux #修改SELINUX的值為disabled SELINUX=disabled -
重啟
reboot -
免密登錄
# 產生密鑰 ssh-keygen # 拷貝公鑰 ssh-copy-id root@hadoop01 # 回車之后,輸入yes確定連接,然后回車輸入密碼 ssh hadoop01 # 回車之后如果不需要密碼,說明已經免密登錄成功,輸入logout退出登錄 ssh-copy-id root@hadoop02 ssh hadoop02 ssh-copy-id root@hadoop03 ssh hadoop03 -
進入安裝目錄,下載Hadoop安裝包
cd /home/software # 下載 curl -O https://archive.apache.org/dist/hadoop/common/hadoop-3.1.3/hadoop-3.1.3.tar.gz # 解壓 tar -xvf hadoop-3.1.3.tar.gz -
進去Hadoop的配置目錄
cd hadoop-3.1.3/etc/hadoop/ -
編輯檔案
vim hadoop-env.sh # 在檔案中添加 export JAVA_HOME=/home/software/jdk1.8 export HADOOP_CONF_DIR=/home/software/hadoop-3.1.3/etc/hadoop # 保存退出,重新生效 source hadoop-env.sh -
編輯檔案
vim core-site.xml<--HDFS的服務地址--> <property> <name>fs.default.name</name> <value>hdfs://hadoop01:9000</value> </property> <--資料存盤路徑--> <property> <name>hadoop.tmp.dir</name> <value>/home/software/hadoop-3.1.3/tmp</value> </property> <--代理用戶--> <property> <name>hadoop.http.staticuser.user</name> <value>root</value> </property> <--代理主機--> <property> <name>hadoop.proxyuser.root.hosts</name> <value>*</value> </property> <--代理用戶組--> <property> <name>hadoop.proxyuser.root.groups</name> <value>*</value> </property> -
編輯檔案
vim hdfs-site.xml在檔案中添加:
<!--NameNode的訪問地址--> <property> <name>dfs.namenode.http-address</name> <value>hadoop01:9870</value> </property> <!--SecondaryNameNode訪問地址--> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop02:9868</value> </property> <!--副本數量--> <property> <name>dfs.replication</name> <value>1</value> </property> -
編輯檔案
vim mapred-site.xml在檔案中添加
<!--MapReduce的調度框架--> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> <!--yarn的運行環境--> <property> <name>yarn.app.mapreduce.am.env</name> <value>HADOOP_MAPRED_HOME=/home/software/hadoop-3.1.3</value> </property> <!--MapTask運行環境--> <property> <name>mapreduce.map.env</name> <value>HADOOP_MAPRED_HOME=/home/software/hadoop-3.1.3</value> </property> <!--ReduceTask運行環境--> <property> <name>mapreduce.reduce.env</name> <value>HADOOP_MAPRED_HOME=/home/software/hadoop-3.1.3</value> </property> -
編輯檔案
vim yarn-site.xml在組態檔中添加:
<!--Shuffle--> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!--ResourceManager地址--> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop03</value> </property> <!--NodeManager環境變數白名單--> <property> <name>yarn.nodemanager.env-whitelist</name> <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_MAPRED_HOME,HADOOP_CONF_DIR,HADOOP_YARN_HOME,CLASSPATH_PREPEND_DISTCACHE</value> </property> <!--yarn容器分配的最小容量--> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>512</value> </property> <!--yarn容器分配的最大容量--> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>4096</value> </property> <!--物理記憶體大小--> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>4096</value> </property> <!--關閉物理記憶體檢查--> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <!--關閉虛擬記憶體檢查--> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> -
編輯檔案
vim workers # 洗掉里面的localhost,將三臺主機的主機名添加進去 hadoop01 hadoop02 hadoop03 -
進去擴展命令目錄
cd /home/software/hadoop-3.1.3/sbin/ -
編輯檔案
vim start-dfs.sh # 在檔案頭部添加 HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=root -
編輯檔案
vim stop-dfs.sh # 在檔案頭部添加 HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=root -
編輯檔案
vim start-yarn.sh # 在檔案頭部添加 YARN_RESOURCEMANAGER_USER=root YARN_NODEMANAGER_USER=root HDFS_DATANODE_SECURE_USER=root -
編輯檔案
vim stop-yarn.sh # 在檔案頭部添加 YARN_RESOURCEMANAGER_USER=root YARN_NODEMANAGER_USER=root HDFS_DATANODE_SECURE_USER=root
歷史服務
-
編輯檔案
cd /home/software/hadoop-3.1.3/etc/hadoop/ vim mapred-site.xml -
在檔案末尾添加
<!--歷史服務器地址--> <property> <name>mapreduce.jobhistory.address</name> <value>hadoop02:10020</value> </property> <!--歷史服務器的web訪問地址--> <property> <name>mapreduce.jobhistory.webapp.address</name> <value>hadoop02:19888</value> </property>
日志匯聚
-
編輯檔案
vim yarn-site.xml -
在檔案中添加
<!--開啟日志匯聚--> <property> <name>yarn.log-aggregation-enable</name> <value>true</value> </property> <!--歷史服務器地址--> <property> <name>yarn.log.server.url</name> <value>http://hadoop02:19888/jobhistory/logs</value> </property> <!--日志保留時間--> <property> <name>yarn.log-aggregation.retain-seconds</name> <value>604800</value> </property>
分發和啟動
-
遠程分發
cd /home/software/ scp -r hadoop-3.1.3 root@hadoop02:$PWD scp -r hadoop-3.1.3 root@hadoop03:$PWD -
配置環境變數
vim /etc/profile.d/hadoophome.sh # 在檔案中添加 export HADOOP_HOME=/home/software/hadoop-3.1.3 export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin # 保存退出,重新生效 source /etc/profile.d/hadoophome.sh -
校驗環境變數是否配置正確
hadoop version -
第一次啟動Hadoop之前,需要先進行格式化
hdfs namenode -format如果出現Storage directory /home/software/hadoop-3.1.3/tmp/dfs/name has been successfully formatted則表示格式化成功
-
在第一個節點上啟動HDFS
start-dfs.sh -
在第三個節點上啟動YARN
start-yarn.sh -
在第二個節點上啟動歷史服務器
mapred --daemon start historyserver -
通過
jps命令查看# 第一個節點上 Jps NodeManager DataNode NameNode # 在第二個節點上 SecondaryNameNode Jps NodeManager DataNode JobHistoryServer # 在第三個節點上 Jps DataNode ResourceManager NodeManager
注意問題
-
如果
Command not found,那么說明環境變數配置錯誤,或者配置之后沒有進行source -
如果啟動之后,發現缺少了進行,那么可以通過對應的命令來試著單獨啟動
hdfs --daemon start namenode hdfs --daemon start datanode hdfs --daemon start secondarynamenode yarn --daemon start resourcemanager yarn --daemon start nodemanager mapred --daemon start historyserver -
如果單獨啟動依然失敗,那么查看/home/software/hadoop-3.1.3/logs/hadoop-root-xxx-xxx.log,在這個日志檔案中來查看啟動失敗的原因
搭建方式
- 單機模式:在一臺服務器上安裝,只能啟動MapReduce模塊
- 偽分布式:在一臺服務器上安裝,通過多個行程來模擬集群環境,啟動Hadoop的大部分服務
- 完全分布式(非高可用):在集群上安裝,能夠啟動Hadoop的所有模塊
- 完全分布式(高可用):在上訴方式的基礎上保證集群的運行
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/435456.html
標籤:其他
上一篇:Dubbo新手入門必看(一)
