在这里我使用的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:WindowsSystem32driversetc
在末尾,添加
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