在這里我使用的linux版本是CentOS 6.4
CentOS-6.4-i386-bin-DVD1.iso
0.使用host-only方式
將Windows上的虛擬網卡改成跟linux上的網卡在同一個網段上
注意:一定要將windowsh 的WMnet1的ip設置和你的虛擬機在同一網段,但是ip不一樣
一、前期工作:
1.修改linux ip
手動修改
也可以命令修改
vim
/etc/sysconfig/network-scripts/ifcfg-eth0
2.修改主機名(注意ubuntu版本方式)
vim
/etc/sysconfig/network
將之前的名字更改為itcast01
3.修改主機名與 ip 對應關系
vim
/etc/hosts
192.168.8.88 itcast01
4.關閉防火牆
查看防護牆狀態
service iptables status
關閉
service iptables stop
查看防火牆開機啟動狀態
chkconfig iptables --list
關閉開機啟動
chkconfig iptables off
二、安裝Java JDK
這里使用的是 jdk-7u60-linux-i586.tar.gz,這里我使用VMware-->共享文件夾,(需要安裝好)VMware Tool工具,這樣我們就可以使用共享文件夾方式將windows下的文件,共享到linux平台。共享在/mnt/hdfs/
mkdir /usr/java
tar -zxvf jdk-7u60-linux-i586.tar.gz -C /usr/java
將java添加到環境變量中
vim /etc/profile
在文件的末尾添加如下內容
export JAVA_HOME=/usr/java/jdk1.7.0_60
export PATH=$PATH:$JAVA_HOME/bin
刷新配置
source /etc/profile
三、安裝hadoop
下載hadoop
本次下載的是: hadoop-2.2.0.tar.gz
1.上傳hadoop包,我這里使用FileZilla上傳到 linux下root 目錄下
2.解壓hadoop包
首先在根目錄創建一個/itcast 目錄
mkdir /itcast
tar -zxvf hadoop-2.2.0.tar.gz -C /itcast
3.配置hadoop偽分布式(要修改etc/下的4個文件)
第一個:hadoop-env.sh
vim hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.7.0_60
第二個:core-site.xml
<configuration>
<!-- 用來指定hdfs的老大(NameNode)的地址 -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://itcast01:9000</value>
</property>
<!-- 用來指定Hadoop運行時產生文件的存放目錄 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/itcast/hadoop-2.2.0/tmp</value>
</property>
</configuration>
第三個:hdfs-site.xml
<configuration>
<!-- 指定HDFS保存數據副本數量 -->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
第四個:mapred-site.xml (需要從此文件復制mapred-site.xml.template)
<configuration>
<!-- 告訴hadoop以后MR運行在yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
第五個:yarn-site.xml
<configuration>
<!-- NodeManager獲取數據的方式是shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的老大(resourcemanager)的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>itcast01</value>
</property>
</configuration>
4.將Hadoop添加到環境變量中
vim /etc/profile
export JAVA_HOME=/usr/java/jdk1.7.0_60
export HADOOP_HOME=/itcast/hadoop-2.2.0
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
#刷新配置
source /etc/profile
5.初始化HDFS(格式化文件系統,此步類似剛買U盤需要格式化)
#hadoop namenode -format(過時了)
hdfs namenode -format
6.啟動文HDFS和YARN
./start-all.sh(過時了)This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [it]
#有個小問題(需要多次輸入密碼)
接下來,使用jps查看進程情況
jps(jps 在
Linux/unix平台上簡單察看當前java進程的一些簡單情況),如果有以下進程則表示測試通過
3887 Jps (java進程)
3449 SecondaryNameNode (相當於NameNode的助理)
3263 DataNode (hdfs部門的小弟,負責存放數據)
3138 NameNode (hdfs部門的老大)
3579 ResourceManager (yarn部門的老大,yarn負責資源管理)
3856 NodeManager (yarn部門的小弟,可以一個,集群的話會有很多)
另外,我們也可以在windows平台下,使用瀏覽器進行查看,是否搭建成功
http://192.168.8.88:50070 ( hdfs管理界面)
http://192.168.8.88:8088 (yarn管理界面)
在這個文件中添加linux主機名和IP的映射關系
c:\Windows\System32\drivers\etc
在末尾,添加
192.168.8.88 itcast01
四、測試hdfs(主要存儲數據,存儲海量數據)
1.上傳文件
hadoop fs -put /mnt/hgfs/share/jdk-7u60-linux-i586.tar.gz hdfs://itcast01:9000/jdk
2.下載文件
hadoop fs -get hdfs://itcast01:9000/jdk /home/jdk1.7
五、測試MapReduce和Yarn
官方提供了一個Jar包
/itcast/hadoop-2.2.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar
在這里,我們測試一下單詞統計(輸入與輸出,都存放在hdfs,因為可能文件很大)
我們新建一個words文件
hello tom
hello jerry
hello kitty
hello world
hello tom
將此文件words上傳到hdfs上,接着我們使用mapreduce統計單詞,同時輸出也存放到hdfs上
hadoop jar hadoop-mapreduce-examples-2.2.0.jar wordcount hdfs://itcast01:9000/words hdfs://itcast01:9000/wcount
這一個是hdfs://itcast01:9000/wcount 上是MapReduce統計結果
hello 5
jerry 1
kitty 1
tom 2
world 1
六、配置SSH免密碼登錄(/root/.ssh)
#SSH協議(讓linux不同機器,啟動起來。hadoop老大為了讓小弟聽話,使用SSH進行控制)
ssh-keygen -t rsa
執行完這個命令后,會生成兩個文件id_rsa(私鑰)、id_rsa.pub(公鑰)
將公鑰拷貝成authorized_keys 文件上
cp id_rsa.pub authorized_keys
接下來,我們將公鑰發送給想要登錄的linux機器(實質是拷貝authorized_keys )
ssh-copy-id 192.168.8.89
這樣,我們以后使用192.168.8.88(NameNode主機)免密登錄192.168.8.89