当前位置:文档之家› hadoop2.6基于yarn安装配置详解

hadoop2.6基于yarn安装配置详解

Hadoop2.6配置详解在hadoop2.0中通常由两个NameNode组成,一个处于active状态,另一个处于standby状态。

Active NameNode对外提供服务,而Standby NameNode则不对外提供服务,仅同步active namenode的状态,以便能够在它失败时快速进行切换。

这里还配置了一个zookeeper集群,用于ZKFC(DFSZKFailoverController)故障转移,当Active NameNode挂掉了,会自动切换Standby NameNode为standby状态hadoop-2.2.0中依然存在一个问题,就是ResourceManager只有一个,存在单点故障,hadoop-2.6解决了这个问题,有两个ResourceManager,一个是Active,一个是Standby,状态由zookeeper进行协调hadoop2.0官方提供了两种HDFS HA的解决方案,一种是NFS,另一种是QJM(由cloudra提出,原理类似zookeeper)。

这里我使用QJM完成。

主备NameNode之间通过一组JournalNode同步元数据信息,一条数据只要成功写入多数JournalNode即认为写入成功。

通常配置奇数个JournalNode1安装前准备1.1示例机器192.168.0.10 hadoop1192.168.0.20 hadoop2192.168.0.30 hadoop3192.168.0.40 hadoop4每台机器都有一个hadoop用户,密码是hadoop所有机器上安装jdk1.7。

在hadoop2,hadoop3,hadoop4上安装Zookeeper3.4集群。

1.2配置ip与hostname用root用户修改每台机器的hostsVi /etc/hosts添加以下内容:192.168.0.10 hadoop1192.168.0.20 hadoop2192.168.0.30 hadoop3192.168.0.40 hadoop4应用配置source /etc/hosts1.3关闭防火墙切换到管理员su root连接设备,键入命令“service iptables status”查看防火墙状态关闭命令“chkconfig iptables off”,重启后生效。

1.4ssh免密码登录SSH检查首先确认系统已经安装SSH,切换到管理员su root键入命令:rpm -qa | grep opensshrpm -qa | grep rsync出现如下图信息表示已安装。

假设没有安装ssh和rsync,可以通过下面命令进行安装。

安装SSH协议-->yum install ssh安装rsync工具-->yum install rsync启动服务-->service sshd restartSSH检查首先确认系统已经安装SSH,切换到管理员su root键入命令:rpm -qa | grep opensshrpm -qa | grep rsync出现如下图信息表示已安装。

假设没有安装ssh和rsync,可以通过下面命令进行安装。

安装SSH协议-->yum install ssh安装rsync工具-->yum install rsync启动服务-->service sshd restartSSH免密码登录的设置,每台设备的操作都是一样的,以192.168.0.25为例:切换用户 su - hadoop,执行ssh-keygen -t rsa生成密钥,一直按回车就行进入.ssh目录 cd ~/.ssh,执行:ssh-copy-id -i id_rsa.pub "-p 22 hadoop@192.168.0.10"ssh-copy-id -i id_rsa.pub "-p 22 hadoop@192.168.0.20"ssh-copy-id -i id_rsa.pub "-p 22 hadoop@192.168.0.30"ssh-copy-id -i id_rsa.pub "-p 22 hadoop@192.168.0.40"会提示输入密码,输入后回车,出现”to make sure we haven't added extra keys that you weren't expecting“就代表成功,在另外的设备上也进行这样的操作。

常见问题如果以上操作做完后,ssh登录还需要密码,请检查文件和文件夹权限.ssh目录和用户目录/hadoop的权限必须是700修改权限命令-->chmod 700 hadoop.ssh目录下的authorized_keys文件的权限必须是600修改权限命令-->chmod 600 authorized_keys2配置文件2.1修改core-site.xml<configuration><!--这里的值指的是默认的HDFS路径。

当有多个HDFS集群同时工作时,用户如果不写集群名称,那么默认使用哪个哪?在这里指定!该值来自于hdfs-site.xml中的配置--><property><name>fs.defaultFS</name><value>hdfs://bigdata</value></property><!-- 指定hadoop临时目录--><property><name>hadoop.tmp.dir</name><value>/home/hadoop/tmp</value><description>Abase for other temporary directories.</description></property><!--指定可以在任何IP访问--><property><name>hadoop.proxyuser.hduser.hosts</name><value>*</value></property><!--指定所有用户可以访问--><property><name>hadoop.proxyuser.hduser.groups</name><value>*</value></property><!--这里是ZooKeeper集群的地址和端口。

注意,数量一定是奇数,且不少于三个节点--><property><name>ha.zookeeper.quorum</name><value>hadoop2:2181,hadoop3:2181,hadoop4:2181</value></property></configuration>2.2修改hadoo-env.shexport JAVA_HOME=/home/hadoop/jdk1.7.0_79#指定日志存放目录export HADOOP_LOG_DIR=/home/hadoop/tmp/log/hadoop2.3修改hdfs-site.xml<configuration><!--指定hdfs的集群名为bigdata,需要和core-site.xml中的保持一致--> <property><name>services</name><value>bigdata</value></property><!-- ns1下面有两个NameNode,分别是nameNode1,nameNode2 --><property><name>nodes.bigdata</name><value>nameNode1,nameNode2</value></property><!-- nameNode1的RPC通信地址--><property><name>Node1</name><value>hadoop1:9000</value></property><!-- nameNode2的RPC通信地址--><property><name>Node2</name><value>hadoop2:9000</value></property><!-- nameNode1的http通信地址--><property><name>Node1</name><value>hadoop1:50070</value></property><!-- nameNode2的http通信地址--><property><name>Node2</name><value>hadoop2:50070</value></property><!--指定JournalNode集群在对NameNode的目录进行共享时,自己存储数据的磁盘路径--><property><name>dfs.journalnode.edits.dir</name><value>/home/hadoop/tmp/journal</value></property><!-- 指定cluster1的两个NameNode共享edits文件目录时,使用的JournalNode集群信息--><property><name>node.shared.edits.dir</name><value>qjournal://hadoop2:8485;hadoop3:8485;hadoop4:8485/bigdata</value> </property><!-- qj方式共享edits。

相关主题