大數據概念:指沒法在必定時間範圍內用常規軟件工具進行捕捉、管理和處理的數據集合,是須要新處理模式才能具備更強的決策力、洞察發現力和流程優化能力的海量、高增加率和多樣化的信息資產。java
按照數據存儲單位:bit、byte、KB、MB、GB、TB、PB、EB、ZB、YB、BB、NB、DBapache
Hadoop是一個apache基金會所開發的分佈式系統基礎架構,主要解決海量數據的存儲和海量數據的分析計算問題vim
廣義上來書,hadoop一般是指一個更普遍的概念--hadoop生態圈安全
hadoop2.x組成:MapReduce(計算)+Yarm(資源調度)+HDFS(數據存儲)+Common(輔助工具)服務器
HDFS架構概述:網絡
一、NameNode(nn):存儲文件的元數據,如文件名,文件目錄結構,文件屬性(生成時間,副本數,文件權限),以及每一個文件的塊列表和塊所在的DataNode等(數據索引)架構
二、DataNode(dn):在本地文件系統存儲文件塊數據,以及塊數據的校驗和(數據自己)分佈式
三、Secondary NameNode(2nn):用來監控HDFS狀態的輔助後臺程序,每隔一段時間獲取HDFS元數據的快照。工具
YARNoop
一、resourceManager(調度集羣資源)
(1)處理客戶請求
(2)監控NodeManager
(3)啓動或監控ApplicationMaster
(4)資源的分配與調度
二、NodeManager(NM)主要做用
(1)管理單個節點上的資源
(2)處理來自resourceManager的命令
(3)處理來自ApplicationMaster的命令
三、ApplicationMaster(AM)做用以下
(1)負責數據的切分
(2)爲應用程序申請資源並分配給內部的任務
(3)任務的監控與容錯
四、Container
Container是YARN中的資源抽象,它封裝了某個節點上的對維度資源,如內存、CPU、磁盤、網絡等
MapReduce將計算過程分爲兩個階段:map和reduce
一、map階段並行處理輸入數據
二、reduce階段對map結果進行彙總
虛擬機準備:
硬盤50G 內存4G cpu 6*2 2*2
/boot 200m
/swap 2G
/所有
虛擬機準備
一、防火牆關閉
service iptables stop //服務關閉
chkconfig iptables off //關閉開機自啓
二、建立一個通常用戶atguigu
useradd atguigu
passwd atguigu
三、在/opt目錄下建立software module 文件夾
mkdir /opt/software/ /opt/module
chown atguigu:atguigu /opt/software /opt/module
四、把這個用戶加到sudoers
vim /etc/sudoers
atguigu ALL=(ALL) NOPASSWD:ALL
:wq! 強制保存
五、改hosts
vim /etc/hosts
在文件後追加
192.168.1.100 hadoop100
192.168.1.101 hadoop101
192.168.1.102 hadoop102
192.168.1.103 hadoop103
192.168.1.104 hadoop104
192.168.1.105 hadoop105
六、改靜態ip
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.1.100
PREFIX=24
GATEWAY=192.168.1.2
DNS1=192.168.1.2
NAME=eth0
七、改主機名
vim /etc/sysconfig /network
改HOSTNAME字段
改爲HOSTNAME=hadoop100
拍快照
八、改網卡腳本文件
vim /etc/udev/rules.d/70-persistent-net.rules
第一行刪掉
第二行
最後 NAME="eth1" 改爲 NAME="eth0"
九、scp(secure copy)安全拷貝
a、scp定義:scp能夠實現服務器與服務器之間的數據拷貝
b、基本語法:scp -r $pdir/$fname $user@hadoop$host:$pdir/$fname
命令 遞歸 要拷貝的文件路徑/名稱 目的用戶@主機:目的路徑/名稱
c、案例實操:在hadoop001上,將hadoop101中的 /opt/module目錄下的軟件拷貝到hadoop002上:
命令:scp -r /opt/module root@hadoop102:/opt/module
十、rsync遠程同步工具:主要用於備份和鏡像,具備速度快、避免複製相同內容和支持符號連接的有點。
rsync和scp區別:用rsync作文件的複製要比scp的速度快,rsync只對差別文件作更新。scp是把全部文件都複製過去。
a、基本語法
rsync -rvl $pdir/$fname $user@hadoop$host:$pdir/$fname
命令 選項參數 要拷貝的文件路徑/名稱 目的用戶@主機:目的路徑/名稱
選項參數:-r 遞歸
-v 顯示覆制過程
-l 拷貝符合連接
b、案例:把hadoop001機器上的/opt/software 目錄同步到hadoop002服務器的root用戶下的/opt/目錄
rsync -rvl /opt/software/ root@hadoop002;/opt/software
十一、xsync集羣分發腳本
a、需求:循環複製文件到全部節點的相同目錄下
b、
安裝java和hadoop環境,配置環境變量
/etc文件配置文件
/sbin存放hadoop啓動中止命令
Hadoop運行模式包括:本地模式、僞分佈式模式以及徹底分佈式模式
官網:http://hadoop.apache.org/
官方Grep案例:一、在hadoop-2.7.2文件下面建立一個input文件夾:mkdir input
二、將hadoop的xml配置文件複製到input下:cp etc/hadoop/*.xml input
三、執行share目錄下的MapReduce程序:bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.2.jar grep input output 'dfs[a-z.]+'
四、查看輸出結果:cat output/*
官方wordcount案例:一、在hadoop-2.7.2文件下面建立一個wcinput文件夾:mkdir wcinput
二、在winput文件下建立一個wc.input文件:cd wcinput
touch wc.input
三、編輯wc.input文件:vi wc.input
在文件中輸入以下內容:hadoop yarm
hadoop mapreduce
atguigu
atguig
保存退出::wq
配置集羣:
一、集羣部署規劃:
hadoop001 hadoop002 hadoop003
HDFS NameNode DataNode SecondaryNameNode
DataNode DataNode
YARN NodeManager ResourceManager NodeManager
NodeManager
二、配置集羣
a、核心配置文件
配置core-site.xml
注意:格式化NameNode,會產生新的集羣id,致使NameNode和DataNode的集羣id不一致,集羣找不到以往數據。因此,格式NameNode時,必定要先刪除data數據和log日誌,而後再格式化NameNode