vmware中hadoop叢集安裝指南
1、準備Linux環境
1.0先將虛擬機器的網路模式選為NAT
1.1修改主機名
vi /etc/sysconfig/network
NETWORKING=yes
HOSTNAME=shizhan1 ###克隆之後其他主機的名字分別是shizhan2 shizhan3 shizhan4....
1.2修改IP
兩種方式:
第一種:通過Linux圖形介面進行修改(強烈推薦)
進入Linux圖形介面 -> 右鍵點選右上方的兩個小電腦 -> 點選Edit connections -> 選中當前網路System eth0 -> 點選edit按 鈕-> 選擇IPv4 -> method選擇為manual -> 點選add按鈕
新增IP:192.168.33.101 子網掩碼:255.255.255.0 閘道器:192.168.33.1 DNS:192.168.33.1 -->apply
第二種:修改配置檔案方式(屌絲程式猿專用)
vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
BOOTPROTO="static" ###
HWADDR="00:0C:29:3C:BF:E7"
IPV6INIT="yes"
NM_CONTROLLED="yes"
ONBOOT="yes"
TYPE="Ethernet"
UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"
IPADDR="192.168.33.101" ###
NETMASK="255.255.255.0" ###
GATEWAY="192.168.33.1" ###
1.3修改主機名和IP的對映關係
vim /etc/hosts
192.168.33.101 shizhan1
192.168.33.102 shizhan2
192.168.33.103 shizhan3
192.168.33.104 shizhan4
....
###如果有更多主機可以先新增,克隆之後方便一些
1.4關閉防火牆
#檢視防火牆狀態
service iptables status
#關閉防火牆
service iptables stop
#檢視防火牆開機啟動狀態
chkconfig iptables --list
#關閉防火牆開機啟動
chkconfig iptables off
1.5 修改sudo(如何直接用root登入無需這一步)
su root
vim /etc/sudoers
給hadoop使用者新增執行的許可權
關閉linux伺服器的圖形介面:(看需求)
vi /etc/inittab
1.6重啟Linux
reboot
2.安裝JDK
2.1上傳alt+p 後出現sftp視窗,然後put d:\xxx\yy\ll\jdk-7u_65-i585.tar.gz
2.2解壓jdk
#建立資料夾
mkdir /home/hadoop/app
#解壓
tar -zxvf jdk-7u55-linux-i586.tar.gz -C /home/hadoop/app
2.3將java新增到環境變數中
vim /etc/profile
#在檔案最後新增
export JAVA_HOME=/home/hadoop/app/jdk-7u_65-i585
export PATH=$PATH:$JAVA_HOME/bin
#重新整理配置
source /etc/profile
3.安裝hadoop
3.1、先上傳hadoop的安裝包到伺服器上去/home/hadoop/(可以自己選目錄)
注意:hadoop2.x的配置檔案$HADOOP_HOME/etc/hadoop
3.2、配置hadoop
進去hadoop/etc/目錄,偽分散式需要修改5個配置檔案
第一個:hadoop-env.sh
vim hadoop-env.sh
#第27行
export JAVA_HOME=/usr/java/jdk1.7.0_65(jdk所在路徑)
第二個:core-site.xml
<!-- 指定HADOOP所使用的檔案系統schema(URI),HDFS的老大(NameNode)的地址 -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://shizhan1:9000</value>
</property>
<!-- 指定hadoop執行時產生檔案的儲存目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoop-2.4.1/tmp</value>
</property>
</configuration>
第三個:hdfs-site.xml
<configuration>
<!-- 指定HDFS副本的數量 -->
<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>shizhan1:50090</value>
</property>
</configuration>
第四個:mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<!-- 指定mr執行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
第五個:yarn-site.xml
<!-- 指定YARN的老大(ResourceManager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>shizhan1</value>
</property>
<!-- reducer獲取資料的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
3.3、指定datanode所在位置
vi slaves
新增
shizhan1
shizhan2
shizhan3
3.4將hadoop新增到環境變數
vim /etc/proflie
export JAVA_HOME=/usr/java/jdk1.7.0_65
export HADOOP_HOME=/itcast/hadoop-2.4.1
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source /etc/profile
4、將虛擬機器進行克隆操作
4.1、克隆之後更改vi /etc/sysconfig/network,對應的主機名
4.2、解決不能上網的問題
rm -rf /etc/udev/rules.d/70-persistent-net.rules
先重啟reboot看能不能上網,不能再刪除UUID HWADDR再重啟
(vim /etc/sysconfig/network-scripts/ifcfg-eth0 刪除裡面的UUID HWADDR)
5、配置ssh免登陸
#生成ssh免登陸金鑰
#進入到我的home目錄
cd ~/.ssh
ssh-keygen -t rsa (四個回車)
執行完這個命令後,會生成兩個檔案id_rsa(私鑰)、id_rsa.pub(公鑰)
將公鑰拷貝到要免密登陸的目標機器上
ssh-copy-id xxxxxx
---------------------------
ssh免登陸:
生成key:
ssh-keygen
複製從A複製到B上:
ssh-copy-id B
驗證:
ssh localhost/exit,ps -e|grep ssh
ssh A #在B中執行
6、格式化namenode(是對namenode進行初始化)
hdfs namenode -format (hadoop namenode -format)
如果出現permission denied,是因為沒有檔案執行全選
chmod -A 777 hadoop目錄
如果又新添加了機器,還要重新格式化
7、啟動hadoop
先啟動HDFS
sbin/start-dfs.sh
再啟動YARN
sbin/start-yarn.sh
(由於配置了環境變數所以直接start-dfs.sh也可以)
停止叢集:stop-dfs.sh stop-yarn.sh
全部一次性啟動方式:start-all.sh stop-all.sh
8、驗證是否啟動成功
HDFS叢集:
負責海量資料的儲存,叢集中的角色主要有 NameNode / DataNode
YARN叢集:
負責海量資料運算時的資源排程,叢集中的角色主要有 ResourceManager /NodeManager
使用jps命令驗證
NameNode
SecondaryNameNode
ResourceManager
NodeManager
DataNode
http://192.168.33.101:50070 (HDFS管理介面)
http://192.168.33.101:8088 (MR管理介面)