3台虚拟机的集群结构:
192.168.6.194 master --NameNode ResourceManager SecondaryNameNode
192.168.6.195 slave1 --DataNode ResourceManager
192.168.6.196 slave2 --DataNode ResourceManager
1.首先VMware新建三个虚拟机并安装contos6.5系统,修改虚拟机网络连接模式为桥接模式(如下图)
修改主机IP地址,关闭防火墙(具体操作可百度,以上操作三台主机都需要root用户修改)
修改IP:vi /etc/sysconfig/network-scripts/ifcfg-eth0
添加以下内容
IPADDR=192.168.6.194
NETMASK=255.255.255.0
GATEWAY=192.168.6.1
并修改BOOTPROTO=static
执行service network restart 使修改的IP生效
执行ifconfig 查看IP是否修改成功
关闭防火墙:service iptables stop
查看防火墙状态:service iptables status ----出现 Firewall is not running. 证明关闭成功
----第一步完成后可通过SecureCRT Xshell等工具连接虚拟机
2.修改主机名(方便ssh免密码登录),上传解压jdk,配置环境变量,创建hadoop用户(以上操作三台主机都需要root用户修改)
修改主机名: vi /etc/hosts
vi /etc/sysconfig/network
解压jdk命令:tar -zxvf jdk-7u76-linux-x64.tar.gz
配置环境变量:vi /etc/profile
添加如下内容
export JAVA_HOME=/usr/lib/jdk1.7.0_76
export JRE_HOME=/usr/lib/jdk1.7.0_76/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
使环境变量生效 source /etc/profile
验证jdk是否安装成功:java -version
创建hadoop用户:useradd hadoop
3.上传hadoop-2.4.0.tar.gz,解压并配置hadoop环境变量 (以上操作三台主机都需要root用户修改)(以上操作三台主机都需要root用户修改)
解压hadoop命令:tar -zxvf hadoop-2.4.0.tar.gz ------建议解压到hadoop用户目录下(/home/hadoop)
配置环境变量:vi /etc/profile
添加如下内容
export HADOOP_HOME=/home/hadoop/hadoop-2.4.0
export HADOOP_PREFIX=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_PREFIX
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_PREFIX/lib/native
export HADOOP_CONF_DIR=$HADOOP_PREFIX/etc/hadoop
export HADOOP_HDFS_HOME=$HADOOP_PREFIX
export HADOOP_MAPRED_HOME=$HADOOP_PREFIX
export HADOOP_YARN_HOME=$HADOOP_PREFIX
export LD_LIBRARY_PATH=$HADOOP_PREFIX/lib/native
export PATH=$PATH:$HADOOP_HOME/bin
使环境变量生效 source /etc/profile
验证hadoop环境变量是否配置成功:hadoop version
4.ssh免密码登录
三台主机均切换到hadoop用户下 执行 ssh-keygen -t rsa (一路回车)
master主机执行:cd .ssh/
master主机执行 cat id_rsa.pub >> authorized_keys
然后
scp .ssh/authorized_keys hadoop@slave1:.ssh/
scp .ssh/authorized_keys hadoop@slave2:.ssh/
ssh slave1 验证免密码登录
5.在/home/hadoop下并修改以下配置文件(先配置master,后通过scp命令上传至slave节点)
1)core-site.xml
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8020</value><!--此处配置为master的hostname+端口或IP+端口-->
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>><!--此处配置流文件缓冲区大小-->
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/home/hadoop/doop-2.4.0/dfs/name</value><!--文件存储临时文件夹-->
<description>Abase for other temporary directories.</description>
</property>
</configuration>
2)hdfs-site.xml
<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value><!--此处配置SecondaryNameNode的主机名(IP)和端口-->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/hadoop/doop-2.4.0/dfs/name</value><!--此处配置存贮在本地的名字节点数据镜象的目录,作为名字节点的冗余备份-->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/hadoop/hadoop-2.4.0/dfs/data</value><!--数据节点的块本地存放目录-->
</property>
<property>
<name>dfs.replication</name>
<value>2</value><!--datanode数量,伪分布填1,集群根据自己配置修改-->
</property>
</configuration>
3)mapred-site.xml(需要复制mapred-site.xml.template)
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
4)yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value> </property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
5)slaves(此文件配置数据节点主机名)
slave1
slave2
6)hadoop-env.sh
export JAVA_HOME=/usr/lib/jdk1.7.0_76(追加jdk环境变量配置)
详细配置请参考http://blog.csdn.net/yangjl38/article/details/7583374
6.通过scp -r 命令将配置好的hadoop部署到slave节点(jdk安装路径不同的需要修改)
scp -r /home/hadoop/hadoop-2.4.0 hadoop@slave1:/home/hadoop
7.格式化namenode:./bin/hdfs namenode –format
格式化成功会有format success字样
8.启动hadoop:./sbin/start-all.sh
1)jps查看进程
(同理slave2)
2)格式化和启动日志
master主机:logs/hadoop-hadoop-namenode-master.log
slave主机:logs/hadoop-hadoop-datanode-slave1.log
9.myeclipse/eclipse集成hadoop2.4
1)下载:hadoop-eclipse-plugin-2.6.0.jar 并放到myeclipse安装目录的dropins目录下,重启myeclipse
2)window--》preferences--》Hadoop Map/Reduce 配置本地路径(需将hadoop-2.4.0.tar.gz解压到此目录)
3)window--》open perspective--》Map/Reduce --》OK
4)new Hadoop location 修改host、port、username、location name
8020端口为core-site文件配置,若配置不同则修改
50020端口据说可以随意配置,未验证过.
10.代码测试-----略