Hadoop hive hbase flume kafka sqoop spark flink …….java
——分佈式文件系統(GFS),可用於處理海量網頁的存儲node
——分佈式計算框架MAPREDUCE,可用於處理海量網頁的索引計算問題。python
3.Nutch的開發人員完成了相應的開源實現HDFS和MAPREDUCE,並從Nutch中剝離成爲獨立項目HADOOP,到2008年1月,HADOOP成爲Apache頂級項目,迎來了它的快速發展期。
算法
2.現階段,雲計算的兩大底層支撐技術爲「虛擬化」和「大數據技術」shell
3.而HADOOP則是雲計算的PaaS層的解決方案之一,並不等同於PaaS,更不等同於雲計算自己。數據庫
1、HADOOP應用於數據服務基礎平臺建設apache
二、HADOOP用於用戶畫像編程
3、HADOOP用於網站點擊流日誌數據挖掘bash
一、 HADOOP就業總體狀況服務器
二、 HADOOP就業職位要求
大數據是個複合專業,包括應用開發、軟件平臺、算法、數據挖掘等,所以,大數據技術領域的就業選擇是多樣的,但就HADOOP而言,一般都須要具有如下技能或知識:
三、 HADOOP相關職位的薪資水平
大數據技術或具體到HADOOP的就業需求目前主要集中在北上廣深一線城市,薪資待遇廣泛高於傳統JAVAEE開發人員
各組件簡介
重點組件:
HDFS:分佈式文件系統
MAPREDUCE:分佈式運算程序開發框架
HIVE:基於大數據技術(文件系統+運算框架)的SQL數據倉庫工具
HBASE:基於HADOOP的分佈式海量數據庫
ZOOKEEPER:分佈式協調服務基礎組件
Mahout:基於mapreduce/spark/flink等分佈式運算框架的機器學習算法庫
Oozie:工做流調度框架
Sqoop:數據導入導出工具
Flume:日誌數據採集框架
注:因爲大數據技術領域的各種技術框架基本上都是分佈式系統,所以,理解hadoop、storm、spark等技術框架,都須要具有基本的分佈式系統概念
² 該軟件系統會劃分紅多個子系統或模塊,各自運行在不一樣的機器上,子系統或模塊之間經過網絡通訊進行協做,實現最終的總體功能
² 好比分佈式操做系統、分佈式程序設計語言及其編譯(解釋)系統、分佈式文件系統和分佈式數據庫系統等。
總結:利用多個節點共同協做完成一項或多項具體業務功能的系統就是分佈式系統。
需求:能夠實現由主節點將運算任務發往從節點,並將各從節點上的任務啓動;
程序清單:
AppMaster
AppSlave/APPSlaveThread
Task
程序運行邏輯流程:
HADOOP集羣具體來講包含兩個集羣:HDFS集羣和YARN集羣,二者邏輯上分離,但物理上常在一塊兒
HDFS集羣:
負責海量數據的存儲,集羣中的角色主要有 NameNode / DataNode
最好將SecondaryNameNode配置在另外一臺機器上 SecondaryNameNode嚴格意義上並不算是NameNode的備份 只是保存了大量的NameNode上的元數據
YARN集羣:
負責海量數據運算時的資源調度,集羣中的角色主要有 ResourceManager /NodeManager
(那mapreduce是什麼呢?它實際上是一個應用程序開發包)
本集羣搭建案例,以5節點爲例進行搭建,角色分配以下:
hdp-node-01 NameNode SecondaryNameNode hdp-node-02 ResourceManager hdp-node-03 DataNode NodeManager hdp-node-04 DataNode NodeManager hdp-node-05 DataNode NodeManager
部署圖以下:
本案例使用虛擬機服務器來搭建HADOOP集羣,所用軟件及版本:
一、 Vmware 14.0
二、Centos 6.7 64bit
建立虛擬機:
1.點擊文件,新建一個虛擬機
2.安裝時選則自定義,下一步,兼容性直接點下一步
3.點稍後安裝操做系統,下一步
4.客戶機操做系統選擇Linux,版本Centos 64位 ,下一步
5.修改虛擬機名稱 指定虛擬機存放位置 下一步
6.處理器數量1 核心數量2 下一步
7.設置虛擬機大小2GB 下一步
8.網絡鏈接類型選NAT 下一步
9.SCSI控制器選擇推薦的 下一步
10.虛擬磁盤類型選擇推薦的 下一步
11.建立新虛擬磁盤 下一步
12.磁盤大小20G(通常爲20G-50G) 拆分爲多個文件 下一步
13.下一步
14.完成
15.以後在VMware窗口 選擇剛剛裝好的虛擬機 點擊 cd/dvd 而後選擇 使用ISO映象文件 瀏覽選擇
16.點擊 VMware上方的 編輯 選擇虛擬網絡編輯器
17.進去後(win10須要點擊右下方的 更改設置) 選擇VMnet8(NAT模式) 設置子網IP:192.168.59.0 子網掩碼:255.255.255.0
18.啓動虛擬機 點擊skip 以後選擇下一步 而後選擇中文 下一步 選擇簡體中文 下一步
19.選擇存儲類型 Basic 下一步
20.Yes 格式化硬盤 下一步
21.設置主機名 (主機名可更改) 下一步
22.設置時間 上海 點擊上海的位置 下一步
23.設置root用戶密碼 123456 記住密碼 密碼簡單 選擇use anyway 下一步
24.磁盤劃分使用默認劃分方式 next
25.write change to disk , next 等待安裝 Reboot
26.重啓以後 輸入用戶名: root 密碼 :123456
以後 在3.1.4
1. 採用NAT方式聯網
2. 3個服務器節點IP地址:192.168.59.130、192.168.59.13一、192.168.59.132
3. 子網掩碼:255.255.255.0
添加映射(添加主機名和ip地址映射 即其餘虛擬機所在位置)
vi /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.59.130 hadoop
192.168.59.131 hadoop001
192.168.59.132 hadoop002
設置主機名
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=hadoop
網卡配置
vi /etc/sysconfig/network-scripts/ifcfg-eth0
本機進入 C:\Windows\System32\drivers\etc 修改hosts 添加
192.168.59.130 hadoop
192.168.59.131 hadoop001
192.168.59.132 hadoop002
# ip地址 主機名
查看防火牆狀態
service iptables status
關閉防火牆
service iptables stop
開機禁止防火牆啓動
chkconfig iptables off
安裝ssh
yum install -y openssh-clients
使用xshell鏈接虛擬機
主機那裏輸入192.168.59.130 或者 hadoop均可以(輸入hadoop必須把本機hosts配置好)
此時就能夠用xshell鏈接虛擬機
製做模板以前須要刪除/etc/udev/rules.d/70-persistent-net.rules目錄下的網卡和mac地址的映射文件,刪除以後關機
而後克隆虛擬機
vi /etc/udev/rules.d/70-persistent-net.rules
克隆虛擬機後
把IPADDRGA改爲對應虛擬機的ip
vi /etc/sysconfig/network-scripts/ifcfg-eth0
以後修改虛擬機的主機名
vi /etc/sysconfig/network
1.上傳jdk安裝包
使用rz上傳安裝包,若是顯示-bash: rz: command not found沒有rz命令,先安裝rz和sz命令
安裝命令爲
yum install -y lrzsz
輸入rz後,找到安裝包位置 點擊打開
2.解壓安裝包
java.tar.gz是java的名字 根據本身的java名字寫上去
/是想要安裝到的路徑 本身定義
tar -zxvf java.tar.gz -C /
配置環境變量 /etc/profile
vi /etc/profile
添加 JAVA_HOME 是java的安裝路徑
export JAVA_HOME=/root/app/jdk1.8.0_171/ export PATH=$PATH:$JAVA_HOME/bin
添加後從新加載配置文件
source /etc/profile
通常參數列表
fs.defaultFS HDFS的名稱空間地址
dfs.blocksize 塊大小,默認是64M或128M,文件存儲的時候,若是大於指定塊大小,則切分,若是小於,則按照文件大小存儲,並不會佔用指定塊大小
dfs.replication 備份數,默認爲3
dfs.reservedsize 磁盤保留空間,默認未開啓
dfs.namenode.edit.dir NameNode的edit日誌存放路徑,edit日誌文件編號先後鏈接,若是中間有斷鏈,那麼說明文件缺失
dfs.namenode.name.dir NameNode的image文件(元數據)存放路徑
dfs.datanode.data.dir DataNode的數據存儲目錄,能夠選擇存儲在多個目錄下,多個目錄用逗號隔開
dfs.namenode.rpc-address NameNode的RPC服務端口號
dfs.namenode.http-address NameNode的HTTP服務端口號
dfs.datanode.address DataNode的RPC服務端口號,數據傳輸用
dfs.datanode.http.address DataNode的HTTP服務端口號
dfs.datanode.ipc.address DataNode的IPC端口號,與NameNode通訊
fs.trash.interval 開啓回收站,若是經過hdfs的shell命令刪除的數據會放到回收站,回收站默認清除時間爲1小時,也能夠自定
上傳HADOOP安裝包
規劃安裝目錄 /home/hadoop/apps/hadoop-2.8.3
解壓安裝包
修改配置文件 $HADOOP_HOME/etc/hadoop/
最簡化配置以下:
在hadoop目錄/etc/hadoop下
vi hadoop-env.sh
JAVA_HOME java放在哪一個位置
# The java implementation to use.
export JAVA_HOME=/home/hadoop/apps/jdk_1.8.65
vi core-site.xml
fs.defaultFS 主機名:端口號
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://hadoop:8000</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/home/HADOOP/apps/hadoop-2.6.1/tmp</value> </property> </configuration>
vi hdfs-site.xml
<configuration> <property> <name>dfs.namenode.name.dir</name> <value>/home/hadoop/data/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/hadoop/data/data</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> <property> <name>dfs.secondary.http.address</name> <value>hadoop:50090</value> </property> </configuration>
vi mapred-site.xml
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
vi yarn-site.xml
<configuration> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop</value> </property> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration>
vi salves
想要哪些節點的DataNode啓動
hadoop
hadoop001
hadoop002
把第一臺安裝好的jdk和hadoop以及配置文件發送給另外兩臺
hosts文件
jdk安裝後的文件夾
Hadoop安裝後的文件夾
/etc/profile 文件
例如
scp -r /usr/local/jdk1.8.0_102 hadoop01:/usr/local/
scp -r /etc/hosts hadoop01:/etc/hosts
時間同步
ntpdata ip date -s "時間"
最後記得設置ssh免密登陸
ssh-keygen
ssh-copy-id -i /root/id_ras.pub host(ip)
初始化HDFS
bin/hadoop namenode -format
啓動HDFS
sbin/start-dfs.sh
啓動YARN
sbin/start-yarn.sh
經過網頁查看
hadoop:50070
查看yarn
hadoop:8088