Hadoop簡介:
- 分佈式、可擴展、可靠的、分佈式計算框架。
組件:
common:公共組件
hdfs:分佈式文件系統
yarn:運行環境
mapreduce:mr計算模型
生態系統:
Ambari:操作界面
avro:通用的序列化機制、與語言無關
cassandra:數據庫
chukwa:數據收集系統
hbase:分佈式大表數據庫
hive:基於sql的分析系統
matout:機器學習算法庫
pig:腳本語言
spark:快速通用的計算引擎,主要用於迭代計算
tez:數據流框架
zookeeper:高性能的協調服務
海量數據分析:
- 原始方式?空間限制|性能限制|單節點故障| 細節實現問題
- hdfs?提供統一接口|大文件切分|分佈式存儲|平行擴展|高可靠
HDFS
hadoop生態系統分佈式文件系統,用來解決大數據存儲問題。
hdfs是在本地文件系統之上抽象出的文件系統,提供統一的訪問接口(目錄樹),實際的文件經過切分和負載均衡算法之後,存儲在本地的文件系統中,通過一個主節點(Namenode)統一管理。
爲了提高數據存儲的可靠性,文件的block會被存儲多個副本(默認3個)第一個在本機,第二個在本機所在地同一個機架上,第三個在不同的機架上。
文件系統:提供一套統一的訪問接口,屏蔽底層實現細節的系統。
hadoop目錄結構:
bin:可執行腳本
etc:系統配置
lib:本地庫
sbin:系統的可執行腳本
share:共享目錄,存放的jar包
hdfs文件操作:
- 使用hdfs dfs命令操作
- put:上傳文件
- get:下載文件
- ls:顯示文件
- cat:顯示文件內容
- tail:查看文件末尾
- count:統計文件數
- cp:hdfs的拷貝
- df:查看磁盤容量
- du:查看文件大小
- mkdir:創建文件夾 -p創建父文件夾
- rm:刪除
- mv:移動
- createSnapshot:創建快照
- chown:修改所有者
- chomd:修改權限
hdfs文件存儲
- 文件存儲在tmp/data/子文件夾下面,大文件會被切分爲128M大小的block,文件只是被簡單的切分,不做任何操作,可以手動拼接爲完整的文件。