数据中心项目Hadoop平台实施方案一、实施环境主机IP地址主机功能12.1.95.85集中管理12.1.95.8480---84ESXIA5.5底层操作系统登录方式:外网登陆地址,xt2,xt3密码都是111111集群规划:主机名IP地址安装的软件运行的进程itcast9012.1.95.90jdk、hadoopNameNode、DFSZKFailoverController(zkfc)itcast9112.1.95.91jdk、hadoopNameNode、DFSZKFailoverController(zkfc)itcast9212.1.95.92jdk、hadoopResourceManageritcast9312.1.95.93jdk、hadoopResourceManageritcast8712.1.95.87jdk、hadoop、zookeeperDataNode、NodeManager、JournalNode、QuorumPeerMainitcast8812.1.95.88jdk、hadoop、zookeeperDataNode、NodeManager、JournalNode、QuorumPeerMainitcast8912.1.95.89jdk、hadoop、zookeeperDataNode、NodeManager、JournalNode、QuorumPeerMain说明:1、在hadoop2.0中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。ActiveNameNode对外提供服务,而StandbyNameNode则不对外提供服务,仅同步activenamenode的状态,以便能够在它失败时快速进行切换。hadoop2.0官方提供了两种HDFSHA的解决方案,一种是NFS,另一种是QJM。这里我们使用QJM。在该方案中,主备NameNode之间通过一组JournalNode同步元数据信息,一条数据只要成功写入多数JournalNode即认为写入成功。通常配置奇数个JournalNode这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当ActiveNameNode挂掉了,会自动切换StandbyNameNode为standby状态2、hadoop-2.2.0中依然存在一个问题,就是ResourceManager只有一个,存在单点故障,hadoop-2.7.1已经解决了这个问题,有两个ResourceManager,一个是Active,一个是Standby,状态由zookeeper进行协调二、hadoop实施步骤2.1、平台安装文件路径cd/root/Downloads2.1.1、系统配置点击VMware快捷方式,右键打开文件所在位置-双击vmnetcfg.exe-VMnet1host-only-修改subnetip设置网段:192.168.8.0子网掩码:255.255.255.0-apply-ok回到windows--打开网络和共享中心-更改适配器设置-右键VMnet1-属性-双击IPv4-设置windows的IP:192.168.8.100子网掩码:255.255.255.0-点击确定,在虚拟软件上--MyComputer-选中虚拟机-右键-settings-networkadapter-hostonly-ok2.1.2、修改主机名vim/etc/sysconfig/networkNETWORKING=yesHOSTNAME=itcast90###2.1.3、修改映射关系修改主机名和IP的映射关系12.1.95.90itcast9012.1.95.90itcast9012.1.95.91itcast9112.1.95.92itcast9212.1.95.93itcast9312.1.95.87itcast8712.1.95.88itcast8812.1.95.89itcast89vim/etc/hosts12.1.95.90itcast902.1.4、关闭防火墙#查看防火墙状态serviceiptablesstatus#关闭防火墙serviceiptablesstop#查看防火墙开机启动状态chkconfigiptables--list#关闭防火墙开机启动chkconfigiptablesoff2.1.5重启Linuxrebootcd/root/Downloads2.2、安装JDK2.2.1上传上传JDK文件2.2.2解压解压jdk#创建文件夹mkdir/usr/java#解压tar-zxvfjdk-7u71-linux-x64.tar.gz-C/usr/java/jdk/2.2.3添加Java将java添加到环境变量中vim/etc/profile#在文件最后添加exportJAVA_HOME=/usr/java/jdk/jdk1.7.0_71exportPATH=$PATH:$JAVA_HOME/bin#刷新配置source/etc/profilecd/root/Downloads2.3、安装配置hadoop集群(在itcast90上操作)2.3.1、解压tar-zxvfhadoop-2.7.1.tar.gz-C/itcast/hadoop/tar-zxvf/root/Downloads/hadoop2.7.1-lib-native.tar.gz-C/itcast/hadoop/hadoop-2.7.1/libcp/itcast/hadoop/hadoop-2.7.1/lib/hadoop2.7.1-lib-native/*native/2.3.2、配置配置HDFS(hadoop2.0所有的配置文件都在$HADOOP_HOME/etc/hadoop目录下)#将hadoop添加到环境变量中vim/etc/profileexportJAVA_HOME=/usr/java/jdk/jdk1.7.0_71exportHADOOP_HOME=/itcast/hadoop/hadoop-2.7.1exportPATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin#hadoop2.0的配置文件全部在$HADOOP_HOME/etc/hadoop下cd/itcast/hadoop/hadoop-2.7.1/etc/hadoop2.3.2.1、修改vimhadoop-env.shexportJAVA_HOME=/usr/java/jdk/jdk1.7.0_712.3.2.2、修改vimcore-site.xmlconfiguration!--指定hdfs的nameservice为ns1--propertynamefs.defaultFS/namevaluehdfs://ns1/value/property!--指定hadoop临时目录--propertynamehadoop.tmp.dir/namevalue/itcast/hadoop/hadoop-2.7.1/tmp/value/property!--指定zookeeper地址--propertynameha.zookeeper.quorum/namevalueitcast87:2181,itcast88:2181,itcast89:2181/value/property/configuration2.3.2.3、修改vimhdfs-site.xmlconfiguration!--指定hdfs的nameservice为ns1,需要和core-site.xml中的保持一致--propertynamedfs.nameservices/namevaluens1/value/property!--ns1下面有两个NameNode,分别是nn1,nn2--propertynamedfs.ha.namenodes.ns1/namevaluenn1,nn2/value/property!--nn1的RPC通信地址--propertynamedfs.namenode.rpc-address.ns1.nn1/namevalueitcast90:9000/value/property!--nn1的http通信地址--propertynamedfs.namenode.http-address.ns1.nn1/namevalueitcast90:50070/value/property!--nn2的RPC通信地址--propertynamedfs.namenode.rpc-address.ns1.nn2/namevalueitcast91:9000/value/property!--nn2的http通信地址--propertynamedfs.namenode.http-address.ns1.nn2/namevalueitcast91:50070/value/property!--指定NameNode的元数据在JournalNode上的存放位置--propertynamedfs.namenode.shared.edits.dir/namevalueqjournal://itcast87:8485;itcast88:8485;itcast89:8485/ns1/value/property!--指定JournalNode在本地磁盘存放数据的位置--propertynamedfs.journalnode.edits.dir/namevalue/itcast/hadoop/hadoop-2.7.1/journal/value/property!--开启NameNode失败自动切换--propertynamedfs.ha.automatic-failover.enabled/namevaluetrue/value/property!--配置失败自动切换实现方式--propertynamedfs.client.failover.proxy.provider.ns1/namevalueorg.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider/value/property!--配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行--propertynamedfs.ha.fencing.methods/namevaluesshfenceshell(/bin/true)/value/property!--使用sshfence隔离机制时需要ssh免登陆--propertynamedfs.ha.fencing.ssh.private-key-files/namevalue/root/.ssh/id_rsa/value/property!--配置sshfence隔离机制超时时间--propertynamedfs.ha.fencing.ssh.connect-timeout/namevalue30000/value/property/configuration2.3.2.4、修改mapred-site.xmlconfiguration!--指定mr框架为yarn方式--propertynamemapreduce