big data介紹
bigdata:
0 分布式
由分布在不同主機(jī)上的進(jìn)程協(xié)同在一起叫编,才能構(gòu)成整個(gè)應(yīng)用世曾。
(同一臺(tái)主機(jī)上的不用進(jìn)程缨恒,他們之間的交互也屬于分布式)
1 海量數(shù)據(jù)
- 1 bit = 1 位
- 1 Byte = 8 bit
- 1 KB = 1024 B
- 1 M = 1024 K
- 1 G = 1024 M
- 1 T = 1024 G
- 1 P = 1024 T
- 1 E = 1024 P
- 1 Z = 1024 E
- 1 Y = 1024 Z
2 存儲(chǔ)(大數(shù)據(jù)需要解決的問(wèn)題1)
- 分布式存儲(chǔ)(分割開(kāi)來(lái)存儲(chǔ))
- dfs (distributed file system 分布式文件系統(tǒng))
3 計(jì)算 (大數(shù)據(jù)需要解決的問(wèn)題2)
- 分布式計(jì)算
- mapreduce : map(映射) + reduce(化簡(jiǎn))
4 hadoop (大象)
- 創(chuàng)始人Doug Cutting
- Apache 下開(kāi)源軟件
- 是一個(gè)計(jì)算框架 特點(diǎn):
- 分布式(將眾多計(jì)算機(jī)節(jié)點(diǎn)資源協(xié)同起來(lái) 來(lái)完成計(jì)算工作)
- 可靠性(單個(gè)節(jié)點(diǎn)的故障不會(huì)影響整個(gè)系統(tǒng)的運(yùn)行)
- 可伸縮(任何節(jié)點(diǎn)的增加和刪除都不會(huì)影響整個(gè)系統(tǒng)的運(yùn)行 即可隨時(shí)增加或減少節(jié)點(diǎn))
- hadoop擅長(zhǎng)領(lǐng)域:搜索引擎、海量數(shù)據(jù)存儲(chǔ)
Hadoop 里面的幾個(gè)點(diǎn):
- 介紹
是分布式計(jì)算大規(guī)模數(shù)據(jù)集框架轮听,使用簡(jiǎn)單編程模型肿轨,可從單個(gè)服務(wù)器擴(kuò)展到幾千臺(tái)主機(jī),每臺(tái)機(jī)器都提供了本地計(jì)算和存儲(chǔ)蕊程,不需要使用硬件來(lái)獲得高可用性椒袍,類(lèi)庫(kù)在應(yīng)用層處理檢測(cè)并處理故障,因此在集群之上獲得HA服務(wù)
HDFS
hadoop distributed file system (GFS)
hadoop 分布式文件系統(tǒng)去IOE
(IBM + Oracle + EMC)
(用廉價(jià)設(shè)備)MapReduce
MR
(映射和化簡(jiǎn)藻茂,編程模型)
大數(shù)據(jù)廣泛應(yīng)用:
- 推薦系統(tǒng)
(愛(ài)奇藝推薦 京東推薦 --> 精準(zhǔn)營(yíng)銷(xiāo)) - 大數(shù)據(jù)是為企業(yè)創(chuàng)造價(jià)值的驹暑,它不像其他的軟件,是企業(yè)的成本辨赐、負(fù)擔(dān)优俘。
大數(shù)據(jù) 4V(4個(gè)特征):
- Volumn 題量大
(上P級(jí)的數(shù)據(jù) 一般是日志數(shù)據(jù) ) - Variaty 樣式多
(結(jié)構(gòu)化數(shù)據(jù) ) - Velocity // 速度快
- Valueless // 價(jià)值密度低
大數(shù)據(jù)面試考核考很多Java基礎(chǔ)!O菩颉帆焕!
推薦看的書(shū)籍:
目前重點(diǎn)需要看的書(shū):
比較前沿的東西 就別指望有中文版 翻譯過(guò)來(lái)之后可能就晚了 而且翻譯的質(zhì)量有的很差! 要去看英文原版
(要掌握計(jì)算機(jī)專(zhuān)業(yè)英語(yǔ))
環(huán)境搭建
hadoop的安裝:
- 安裝jdk
- JAVA_HOME
- PATH
- 安裝hadoop
- tar hadoop.tar.gz
- 配置HADOOP_HOME
- PATH
hadoop 包含4個(gè)模塊:
- Hadoop Common: The common utilities that support the other Hadoop modules.
(支持其他模塊的工具模塊 為其他模塊提供功能) - Hadoop Distributed File System (HDFS?):
A distributed file system that provides high-throughput access to application data.
(一個(gè)對(duì)應(yīng)用層數(shù)據(jù)提供高吞吐量訪問(wèn)的分布式文件系統(tǒng),解決存儲(chǔ)問(wèn)題) - Hadoop YARN:
(Yet Another Resource Negotiator叶雹,另一種資源協(xié)調(diào)者财饥,是資源調(diào)度框架)
A framework for job scheduling and cluster resource management.
(作業(yè)調(diào)度和集群資源管理的框架,解決分布式計(jì)算問(wèn)題) - Hadoop MapReduce:
A YARN-based system for parallel processing of large data sets.
(一個(gè)基于yarn系統(tǒng)的對(duì)大數(shù)據(jù)集進(jìn)行并行處理的編程模型技術(shù))
(編程模型 map階段 + reduce階段)
hadoop至少有5個(gè)進(jìn)程:
HDFS對(duì)應(yīng)的進(jìn)程:
- NameNode 名稱(chēng)結(jié)點(diǎn)(簡(jiǎn)稱(chēng)NN)
- 存放目錄
- 是核心結(jié)點(diǎn)折晦,最重要
- 要登錄到遠(yuǎn)程機(jī)器上钥星,把其進(jìn)程啟動(dòng)起來(lái)
- DataNode 數(shù)據(jù)結(jié)點(diǎn) (簡(jiǎn)稱(chēng)DN)
- 存放數(shù)據(jù)
- SecondaryNameNode 輔助名稱(chēng)結(jié)點(diǎn) (簡(jiǎn)稱(chēng)2NN)
- 存放備份目錄
YARN對(duì)應(yīng)的進(jìn)程:
- ResourceManager 資源管理器(簡(jiǎn)稱(chēng)RM)
- NodeManager 結(jié)點(diǎn)管理器 (簡(jiǎn)稱(chēng)NM)
配置Hadoop:
-
Standalone (or local) mode 獨(dú)立(本地)模式
- 默認(rèn)就是本地模式(不用配置)
- 沒(méi)啟動(dòng)任何java進(jìn)程
- 所有的程序運(yùn)行在一個(gè)jvm中,不需要啟動(dòng)hadoop進(jìn)程满着,應(yīng)用的文件系統(tǒng)就是本地文件系統(tǒng) (查看文件系統(tǒng)命令:hadoop fs -ls)
- There are no daemons running and everything runs in a single JVM. Standalone mode is suitable for running MapReduce programs during development, since it is easy to test and debug them.(用于測(cè)試和開(kāi)發(fā)環(huán)境)
-
Pseudodistributed mode 偽分布式模式
完全類(lèi)似于完全分布式谦炒,但是只有一個(gè)結(jié)點(diǎn)- 配置SSH(安全登錄)
名稱(chēng)結(jié)點(diǎn)NN要登錄到遠(yuǎn)程機(jī)器上 要啟動(dòng)其進(jìn)程 無(wú)密登錄-->方便- 安裝ssh:sudo apt-get install ssh
- 生成密鑰對(duì):ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
- 查看生成的公私密鑰:cd ~/.ssh
- 導(dǎo)入公鑰數(shù)據(jù)到授權(quán)庫(kù)中:
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
- 登錄到localhost:ssh localhost
- 想從A機(jī)想登錄到B機(jī)器上 就要把A的公鑰傳給B:在B機(jī)上nc -l 8888 > id_rsa.pub.s100(其中s100是A機(jī)器的名字) 在A機(jī)上:nc s101 8888 < id_rsa.pub(其中s101是B機(jī)器的名字) 然后在B機(jī)器上查看id_rsa.pub.s100 已在B中 在B中將id_rsa.pub.s100導(dǎo)入其授權(quán)庫(kù)中:cat id_rsa.pub.s100 >> authorized_keys 然后在A機(jī)器中 ssh s101 登錄成功!
- 格式化hdfs文件系統(tǒng) (只格式化一次就好风喇,不需要每次都格式化):hadoop namenode -format
- 啟動(dòng)所有進(jìn)程:start-all.sh
- 用jps命令查看下所有進(jìn)程(RM NM NN DN 2NN 如果進(jìn)程數(shù)不對(duì)宁改,殺死所有進(jìn)程:stop-all.sh )
- 創(chuàng)建文件系統(tǒng) hadoop fs -mkdir -p /user/ubuntu/data(ubuntu是用戶名) 然后查看文件夾:hadoop fs -ls -R(或 hadoop fs -ls)
- 配置SSH(安全登錄)
安裝ssh注意:
1 禁用wifi
2 關(guān)閉防火墻 (windows 控制面板中找)
3 client 能夠訪問(wèn)外網(wǎng) (ping www.baidu.com)
4 修改ubuntu的軟件源 [/etc/apt/sources.list]
5 安裝ssh:sudo apt-get install ssh
7 查看進(jìn)程,是否啟動(dòng)了ssh服務(wù):ps -Af | grep ssh
8 ...
其他注意:
在臨時(shí)目錄下 別關(guān)機(jī) 別重啟 重啟必須重新格式化
啟動(dòng)所有進(jìn)程:
start-all.sh 后 用jps命令查看下所有進(jìn)程 若么沒(méi)有5個(gè)進(jìn)程(RM NM NN DN 2NN) 則說(shuō)明啟動(dòng)失敗 失敗原因要去日志里面找 --> (路徑:/hadoop/logs)
- Fully distributed mode 完全分布式模式
Hadoop doesn’t actually distinguish between pseudodistributed and fully distributed modes- 準(zhǔn)備5臺(tái)客戶機(jī)
- 安裝jdk
- 配置java相關(guān)環(huán)境變量(java_home魂莫、path)
- 安裝hadoop
- 配置hadoop相關(guān)環(huán)境變量(hadoop_home还蹲、path)
- 安裝ssh
- 配置文件
- 在集群上分發(fā)以上3個(gè)文件
目標(biāo):
scp :
基于ssh的 安全的 遠(yuǎn)程文件復(fù)制程序
命令:scp -r /soft/* ubuntu@s101:/soft (s101是目標(biāo)計(jì)算機(jī)名稱(chēng))
缺點(diǎn):使用scp 符號(hào)連接格式 轉(zhuǎn)變成了 文件格式
(要避開(kāi)此缺點(diǎn)的坑 請(qǐng)看下面的 rsync 命令)
rsync :
命令 man rsync | more 查看 rsync 幫助說(shuō)明:
- 遠(yuǎn)程同步工具 主要用于備份和鏡像
- 支持連接 設(shè)備等
- 速度快 避免復(fù)制相同內(nèi)容的文件數(shù)據(jù)
命令rsync /etc/environment root@s101:/etc 復(fù)制環(huán)境變量
命令rsync -rl /soft/* ubuntu@s101:/soft 執(zhí)行復(fù)制(其他參數(shù)請(qǐng)看幫助提示)
使用webui訪問(wèn)hadoop hdfs:
1 hdfs webui:http://localhost:50070/
2 data node : http://localhost:50075
3 2NN : http://localhost:50090
附圖:
啟動(dòng)所有進(jìn)程、查看所有進(jìn)程:
注意進(jìn)程關(guān)閉順序: