版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/firstchange/article/details/78567940
mapreduce集群的搭建及安装
节点分配
NameNode node01 主 node02 从 DataNode node02 node03 node04 zookeeper node02 node03 node04 zkfc node01 node02 journalnode node01 node02 node03 resourcemanager node03 node04 nodemanager node02 node03 node04
环境检测
安装jdk 配置环境变量 配置免秘钥 如果本身没有.ssh文件需要先生成 ssh localhost 如果要和其他节点免秘钥需要将自己的公钥发给他,并追加公钥 ssh-keygen -t dsa -P '' -f ./id_dsa scp -r ./id_dsa.pub root@node0*:`pwd`/node0*.pub cat node0*.pub >> aut……
安装hadoop
解压hadoop到指定目录下 配置配置文件 配置三个env.sh,将其中的JAVA_HOME写死 修改hdfs-site.xml 命名集群名 <name>dfs.nameservices</name> <value>mycluster</value> 命名集群下的两个NN的名称 <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> 分别对两个NN指定其物理路径:ip加 端口号 <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>node01:8020</value> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>node02:8020</value> 指定两个NN的浏览器访问路径:ip加端口号 <name>dfs.namenode.http-address.mycluster.nn1</name> <value>node01:50070</value> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>node02:50070</value> 指定edits的路径,在journalnode服务器上,因为journalnode服务器是公用的,所以需要指定集群名以示区分 <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://node01:8485;node02:8485;node03:8485/mycluster</value> 在本机上给一个路径表示edits的地址 <name>dfs.journalnode.edits.dir</name> <value>/var/sxt/hadoop/ha/jn</value> 给一个类 <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> 还有两个不知道 <name>dfs.ha.fencing.methods</name> <value>sshfence</value> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_dsa</value> 打开主从NN的切换 <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> 修改core-site.xml 默认文件系统路径 <name>fs.defaultFS</name> <value>hdfs://mycluster</value> hadoop临时文件存放路径 /var/sxt/hadoop-2.6/ha zookeeper集群节点信息 <name>ha.zookeeper.quorum</name> <value>node02:2181,node03:2181,node04:2181</value>
安装zookeeper
将zookeeper解压到指定目录下 配置配置文件 将conf/zoo重命名为zoo.cfg 在里面将数据存放目录改掉 dataDir=/var/sxt/zk 添加服务器节点信息 server.1=node02:2888:3888 server.2=node03:2888:3888 server.3=node04:2888:3888 在各个节点的/var/sxt/zk下创建一个myid文件,并将值加入其中 echo 1 > myid
启动hadoopHA集群
启动zookeeper zkServer.sh start 检查zookeeper状态 zkServer.sh status 启动journalnode hadoop-daemon.sh start journalnode 在主NN上 格式化namenode hdfs namenode –format 启动NameNode hadoop-daemon.sh start namenode 在另一台NN上 hdfs namenode -bootstrapStandby 格式化zkfc hdfs zkfc -formatZK 启动dfs start-dfs.sh 检查集群 jps 通过浏览器访问
hadoop+yarn的搭建
目标:用yarn来管理hadoop集群的资源调度 配置mapred-site.xml 指定mapreduce框架名yarn <name>mapreduce.framework.name</name> <value>yarn</value> 配置yarn-site.xml 指定shuffle <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> 开启ResourceManager <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> 指定集群id <name>yarn.resourcemanager.cluster-id</name> <value>cluster1</value> 指定ResourceManager的虚拟节点 <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> 指定ResourceManager真实物理 <name>yarn.resourcemanager.hostname.rm1</name> <value>node03</value> <name>yarn.resourcemanager.hostname.rm2</name> <value>node04</value> 指定zookeeper节点,利用zookeeper实现高可用 <name>yarn.resourcemanager.zk-address</name> <value>node02:2181,node03:2181,node04:2181</value> 启动hadoop+yarn 前面的hadoopHA已经启动 在node01上启动yarn start-yarn.sh 在node03和node04上分别启动ResourceManager yarn-daemon.sh start resourcemanager