偽叢集與簡單完全分散式叢集的搭建
我是在root許可權下搭建的流程比較簡單
1.簡單單機Hadoop叢集(偽分散式)搭建流程
- 下載 JDK 與Hadoop壓縮包,將檔案傳入linux系統中
解壓配置環境:
①首先可以配置JDK與hadopp環境:
自己可以首先建立一個在根目錄下建立一個apps資料夾,將安裝包傳遞到改檔案目錄下
②解壓安裝包
tar -zxvf jdk-7u25-linux-x64.tar.gz
tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz
配置 ~/.bash_profile
Vi ~/.bash_profile 進入配置環境
JAVA_HOME=/apps/ (我的jdk路徑在test檔案下安)
# User specific environment and startup programs
JAVA_HOME=/test/java/jdk1.7.0_25
HADOOP_HOME=/apps/hadoop-2.6.4
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export PATH
Path=*****************:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
Source ~/.bash_profile
載入修改後的配置
- 修改apps/haoop-2.6.4/etc/下的配置檔案
配置2個檔案 core-site.xml hdfs-site.xml
配置
①Core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-1:8020</value>
</property>
②配置hdfs-site.xml
<property>
<name>dfs.replication<name> 複製檔案
<value>3</value> 複製檔案的數量
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/app/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/app/hadoop/dfs/data</value>
</property>
配置 etc/hadoop/hadoop-env.sh 中的環境變數
3、配置檔案完成之後,首先格式化標頭檔案
命令: hadoop namenode -format 格式化
此處出錯一般發生在hdfs-site.xml中的<name>dfs.namenode.name.dir</name>
<value>/app/hadoop/dfs/name</vaue>
啟動namenode
Hadoop-daemon.sh start namenode
啟動datanode
Hadoop-daemon.sh start namenode
在啟動namenode 與datanode時,要在完成命令之後,檢視/apps/hadoop/loggs下面的對應的日誌資訊,檢視啟動是否成功過或產生了什麼異常
也可以通過使用jps命令檢視啟動是否成功
配置完成
- 檢視hdfs的根目錄資訊
命令為: hadoop fs -ls /
上傳檔案的命令為 hadoop fs -put ** / 將檔案上傳到hadoop的根目錄下
登陸網址http://localhost:50070 檢視是否搭建成功
2.搭建完全分散式叢集流
- 根據自己電腦配置,建立機器數量,此處以5臺為例
檢視叢集狀態:hadoop dfsadmin -report
安裝jdk環境 ,然後安裝hadoop配置環境
關閉防火牆
2.角色分配
第一臺作為namanode 和resurceManager資源管理節點
第2、3、4作為datanode資料節點
第5臺作為secondarynamenode節點
- 準備工作(配置主機名和對應的ip)
給機器一次命名為hadoop-1 hadoop-2 hadoop-3 hadoop-4 hadoop-5
vi /cd /etc/sysconfig/network 修改名字為hadoop-*
wq儲存退出
在root使用者下輸入命令: hostname hadoop-*
Vi /ect/hosts 修改:192.168.1.1 hadoop-*
wq儲存退出
在Hadoop-1使用者下,為了可以叢集的的啟動需要在hosts中配置每臺機器的ip 和對應發主機名字
- 配置無密登陸,一般系統都會自帶ssh工具
首先輸入命令:ssh-keygen 生成金鑰
將金鑰傳送到需要無密登陸的機器中
命令為:ssh-copy-id -i 192.168.1.1
一次重複上面的命令,實現無密登陸
- 按照偽叢集的步驟,配置環境
- 對於etc中6個檔案的配置
----------------------core-site.xml-------------------------
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop-1:9000</value>
</property>
---------------------------------hdfs-site.xml--------------------------
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/app/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/app/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.secondary.http.address</name>//指定secondarynamenode節點機器
<value>hadoop-5:50090</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>/app/hadoop/dfs/namesecondary</value>
</property>
</configuration>
--------------------------------------mapred-site.xml-------------------------------
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
---------------------------------------yarn-site.xml---------------------------------
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name> //指定資料資源管理的機器
<value>hadoop-1</value>
</property>
</configuration>
-----------------------------------------Hadoop-env.sh-------------為hadooppei配置java
配置java路徑
-----------------------------------------slaves--------------------配置奴隸檔案,用於啟動資料節點
hadoop-2
hadoop-3
hadoop-4
- 以上配置完成,後即可在hadoop-1上進行啟動叢集
首先格式化namenode 命令為: hadoop name-node -format
啟動所有節點: start-all.sh
啟動命令完成之後,使用命令:hadoop dfsadmin -report 檢視活躍節點
也可以檢視活躍節點
檢視Hadoop叢集的根目錄的命令為:hadoop fs -ls /
上傳檔案命令為:hadoop fs -put 檔案 / 將檔案上傳到根目錄
4.關閉叢集使用命令:stop-all.sh