大資料的發展歷史
3V:volume、velocity、variety(結構化和非結構化資料)、value(價值密度低)
大資料帶來的技術挑戰
- 存盤容量不斷增加
- 獲取有價值的資訊的難度:搜索、廣告、推薦
- 大容量、多型別、高時效的資料處理場景,使得從資料中獲取有價值的資訊變得非常困難
hadoop理論概述
hadoop發展簡史
- apache nutch專案,是一個開源網路搜索引擎
- 谷歌發表GFS,是HDFS的前身
- 谷歌發表了mapreduce分布式編程思想
- nutch開源實作了mapreduce
hadoop簡介
- 是apache軟體基金會下的一個開源分布式計算平臺
- java語言,跨平臺性
- 在分布式環境下提供了海量資料的處理能力
- 幾乎所有廠商都圍繞hadoop提供開發工具
hadoop核心
- 分布式檔案系統HDFS
- 分布式計算MapReduce
hadoop特性
- 高可靠性
- 高效性
- 高可擴展性
- 高容錯性
- 成本低
- linux
- 支持多種編程語言
hadoop生態系統
- HDFS:分布式檔案系統
- mapreduce:分布式并行編程模型
- yarn:資源管理和調度器
- tez運行在yarn之上的下一代hadoop查詢處理框架,他會將很多的mr任務分析優化后構建一個郵箱無環圖,保證最高的作業效率
- hive:hadoop上的資料倉庫
- hbase:非關系型分布式資料庫
- pig:基于hadoop的大規模資料分析平臺
- sqoop:用于在hadoop與傳統資料庫之間進行資料傳遞
- oozie:作業流管理系統
- zookeeper:提供分布式協調一致性服務
- storm:流計算框架
- flume:分布式海量日志采集、聚合和傳輸的系統
- ambari:快速部署工具
- kafka:分布式發布訂閱訊息系統,可以處理消費者規模的網站中所有動作流資料
- spark:類似于hadoop mapreduce的通用并行框架
hadoop偽分布模式安裝
主要流程
- 創建用戶及用戶組
sudo useradd -d /home/zhangyu -m zhangyu
sudo passwd zhangyu
sudo usermod -G sudo zhangyu
su zhangyu
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys
ssh localhost
- 創建apps和data目錄并修改權限
sudo mkdir /apps
sudo mkdir /data
sudo chown -R zhangyu:zhangyu /apps
sudo chown -R zhangyu:zhangyu /data
- 下載hadoop和java
mkdir -p /data/hadoop1
cd /data/hadoop1
wget java
wget hadoop
tar -xzvf jdk.tar.gz -C /apps
tar -xzvf hadoop.tar.gz -C /apps
cd /apps
mv jdk java
mv hadoop hadoop
- 添加上面兩個到環境變數
sudo vim ~/.bashrc
export JAVA_HOME=/apps/java
export PATH=JAVA_HOME/bin:$PATH
export HADOOP_HOME=/apps/hadoop
export PATH=HADOOP_HOME/bin:$PATH
source ~/.bashrc
java
hadoop
- 修改hadoop組態檔
cd /apps/hadoop/etc/hadoop
vim hadoop-env.sh
export JAVA_HOME=/apps/java
vim core-site.xml
//追加
<property>
<name>hadoop.tmp.dir</name> //臨時檔案存盤位置
<value>/data/tmp/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name> //hdfs檔案系統的地址
<value>hdfs://localhost:9000</value>
</property>
mkdir -p /data/tmp/hadoop/tmp
vim hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name> //配置元資料資訊存盤位置
<value>/data/tmp/hadoop/hdfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name> //具體資料存盤位置
<value>/data/tmp/hadoop/hdfs/data</value>
</property>
<property>
<name>dfs.replication</name> //配置每個資料庫備份數,要根據節點數決定
<value>1</value>
</property>
<property>
<name>dfs.permissions.enabled</name> //配置hdfs是否啟用權限認證
<value>false</value>
</property>
- 將集群中slave角色的節點的主機名添加進slaves檔案中
vim slaves //將集群中的slave角色的節點的主機名添加經slaves檔案中
//目前只有一臺節點,所以slaves檔案內容只有localhost
- 格式化hdfs檔案系統
hadoop namenode -format
- 輸入jps查看hdfs相關行程是否啟動
cd /apps/hadoop/sbin/
./start-dfs.sh
jps
hadoop fs -mkdir /myhadoop1
hadoop fs -ls -R /
- 配置mapreduce
cd /apps/hadoop/etc/hadoop/
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<property>
<name>mapreduce.framework.name</name> //配置mapreduce任務所使用的框架
<value>yarn</value>
</property>
- 配置yarn并且測驗
vim yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name> //指定所用服務器
<value>mapreduce_shuffle</value>
</property>
./start-yarn.sh
- 執行測驗
cd /apps/hadoop/share/hadoop/mapreduce
hadoop jar hadoop-mapreduce-examples-2.6.0-cdh5.4.5.jar pi 3 3
hadoop開發插件安裝
mkdir -p /data/hadoop3
cd /data/hadoop3
wget http://192.168.1.100:60000/allfiles/hadoop3/hadoop-eclipse-plugin-2.6.0.jar
cp /data/hadoop3/hadoop-eclipse-plugin-2.6.0.jar /apps/eclipse/plugins/
- 進入圖形界面
window->open perspective->other
選擇map/reduce
點擊condole右上角藍色的大象添加相關配置
- 終端命令列
cd /apps/hadoop/sbin
./start-all.sh
hadoop常用命令
開啟、關閉hadoop
cd /apps/hadoop/sbin
./start-all.sh
cd /apps/hadoop/sbin
./stop-all.sh
命令格式
hadoop fs -命令 目標
hadoop fs -ls /user
查看版本
hdfs version
hdfs dfsadmin -report //查看系統狀態
目錄操作
hadoop fs -ls -R /
hadoop fs -mkdir /input
hadoop fs -mkdir -p /test/test1/test2
hadoop fs -rm -rf /input
檔案操作
hadoop fs -touchz test.txt
hadoop fs -put test.txt /input //把本地檔案上傳到input檔案加下
hadoop fs -get /input/test.txt /data //把hadoop集群中的test檔案下載到data目錄下
hadoop fs -cat /input/test.txt
hadoop fs -tail data.txt //同cat
hadoop fs -du -s /data.txt //查看檔案大小
hadoop fs -text /test1/data.txt //將源檔案輸出為文本格式
hadoop fs -stat data.txt //回傳指定路徑的統計資訊
hadoop fs -chown root /data.txt //改變檔案所有者
hadoop fs -chmod 777 data.txt //賦予檔案777權限
hadoop fs -expunge //清慷訓收站
模式切換
hdfs dfsadmin -safemode enter
hdfs dfsadmin -safemode leave
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/42055.html
標籤:架構設計
上一篇:CDN原理加速決議
