Hadoop集羣安裝
1、簡介
Hadoop是一個分佈式系統基礎架構。
Hadoop的框架核心設計是HDFS和MapReduce。HDFS爲海量的數據提供了存儲,則MapReduce爲海量的數據提供了計算。
2、核心架構
MapReduce引擎,該引擎是由JobTrackers和TaskTrackers組成
HDFS就想一個傳統的分級文件系統。可以創建、刪除、移動或重命名文件等,但是HDFS是基於一組特定的節點構建,這是由它自身的特點決定的。這些節點包括:
NameNode(僅一個),它在HDFS內部提供元數據服務。
DataNode,它爲HDFS提供存儲塊。
由於僅存在一個NameNode,因此這個HDFS的一個缺點(單點失敗)。
3、子項目
HDFS:Hadoop分佈式文件系統。
MapReduce:並行計算框架。
Hbase:NoSQL列數據庫。
Hive:數據倉庫工具。
Zookeeper:分佈式鎖設施。
Avro:新的數據序列化格式和傳輸工具,將逐步取代Hadoop原有的IPC機制。
Pig:大數據分析平臺,爲用戶提供多接口。
Ambari:Hadoop管理工具,爲用戶提供多種接口。
Sqoop:於在hadoop與傳統的數據庫間進行數據傳遞。
4、Hadoop的三種運行模式
單機模式
單機模式是Hadoop的默認模式
因爲不需要與其他節點交互,單機模式就不使用HDFS,也不加載任何Hadoop的守護進程
所有程序都是在同一個JVM上執行
該模式主要用於開發調試MapReduce程序的應用邏輯
僞分佈式
Hadoop守護進程運行在本地機器上,模擬一個小規模的集羣
Hadoop的每個守護進程都運行在單獨的Java進程中
全分佈式
Hadoop守護進程運行在一個集羣上
如:集羣環境中,NameNode 和ResourceManager各運行於一臺單獨的主機,作爲master。而其他的主機做爲DataNode和NodeManager,做爲slave。
5、Hadoop集羣安裝
配置SSH免密碼登錄
ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
單模式安裝
默認模式
不對配置文件進行修改
使用本地文件系統
Hadoop的守護進行啓動
用於對MapReduce程序的邏輯進行調試
僞分佈式安裝
一臺主機模擬多臺主機
每個守護進程都以java進程的形式
代碼調試,檢查內存使用情況
HDFS輸入輸出,以及其他的守護進程交互
修改3個配置文件:core-site.xml、hdfs-site.xml、mapred-site.xml
namered數據格式化
core-site.xml
fs.defaultFS配置NameNode的URI
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml
dfs.replication設置塊的複製數量
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
mapred-site.xml
mapreduce.framework.name配置MapReduce應用使用Yarn框架
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
yarn-site.xml
yarn.nodemanager.aux-services:爲NodeManager配置MapReduce應用的Shuffle服務
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
將hadoop添加到環境變量
exportJAVA_HOME=/usr/java/jdk1.7.0_65
exportHADOOP_HOME=/itcast/hadoop-2.7.1
exportPATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
格式化namenode
hadoop namenode –format
啓動hadoop
1、先啓動HDFS sbin/start-dfs.sh
2、再啓動YARN sbin/start-yarn.sh
驗證是否啓動成功
使用jps命令驗證
http://192.168.20.30:50070(HDFS管理界面)
http://192.168.20.30:8088(MR管理界面)
全分佈式安裝
多臺主機
JDK和Hadoop安裝
設置SSH免密碼登錄
修改3個配置文件:core-site.xml、hdfs-site.xml、mapred-site.xml
namered數據格式化
- 配置hosts文件
vi/etc/hosts
- 配置ssh免密碼連入
- 下載並解壓hadoop安裝包
- 配置namenode,修改site文件
- 配置hadoop-env.sh文件
- 配置masters和slaves文件
- 向各節點複製hadoop
- 格式化namenode
- 啓動hadoop
- 用jps檢驗各後臺進程是否成功啓動
- http://master:8088和http://master:50070
- 通過網站查看集羣情況
問題:http://blog.sina.com.cn/s/blog_6fd0fd4b0102v7b9.html
問題定位:所有namenode目錄、所有datanode目錄、從節點臨時目錄
問題原因:
1) 主節點的namenode clusterID與從節點的datanodeclusterID不一致
2) 多次格式化了namenode跟datanode之後的結果,格式化之後從節點生成了新的ID,造成不一致
解決辦法:
1) 在格式化之前,先把所有的服務停掉(stop-dfs.sh、stop-yarn.sh或者stop-all.sh),確保都停掉了之後,分別到所有節點的namenode目錄、datanode目錄、臨時目錄,把以上目錄裏面的所有內容都刪除掉。然後再重新啓動就可以了。
2)
3) 10.查看Map/Reduce是否正常
4) 參考地址:http://jingyan.baidu.com/article/ce09321b7a2e052bff858fd9.html
常用的端口配置
2.1 HDFS端口
參數 |
描述 |
默認 |
配置文件 |
例子值 |
fs.default.name namenode |
namenode RPC交互端口 |
8020 |
core-site.xml |
hdfs://master:8020/ |
dfs.http.address |
NameNode web管理端口 |
50070 |
hdfs- site.xml |
0.0.0.0:50070 |
dfs.datanode.address |
datanode 控制端口 |
50010 |
hdfs -site.xml |
0.0.0.0:50010 |
dfs.datanode.ipc.address |
datanode的RPC服務器地址和端口 |
50020 |
hdfs-site.xml |
0.0.0.0:50020 |
dfs.datanode.http.address |
datanode的HTTP服務器和端口 |
50075 |
hdfs-site.xml |
0.0.0.0:50075 |
2.2 MR端口
參數 |
描述 |
默認 |
配置文件 |
例子值 |
mapred.job.tracker |
job-tracker交互端口 |
8021 |
mapred-site.xml |
hdfs://master:8021/ |
job |
tracker的web管理端口 |
50030 |
mapred-site.xml |
0.0.0.0:50030 |
mapred.task.tracker.http.address |
task-tracker的HTTP端口 |
50060 |
mapred-site.xml |
0.0.0.0:50060 |
2.3 其它端口
參數 |
描述 |
默認 |
配置文件 |
例子值 |
dfs.secondary.http.address |
secondary NameNode web管理端口 |
50090 |
hdfs-site.xml |
0.0.0.0:50090 |
|
|
|
|
|
|
|
|
|
|