需求:准备四台安装jdk的虚拟机(仅仅是为了技术而技术) 整体规划:搭建r2.6.5的集群 总体步骤: 一,操作系统环境 依赖软件ssh,jdk 环境的配置 java_home 免密钥 时间同步 hosts,hostname 二,hadoop部署 /opt/sxt/ 配置文件修改 java_home 角色在哪里启动 第一步:操作系统环境配置 编辑 etc/hosts 修改hostname 第二步:做免密钥处理的命令(本机) 显示.ssh 自己连接自己然后退出,就会有.ssh目录 ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 因为是高可用的,所以node02可以对node01进行免密钥登录,对自己也可以。 免密钥登陆 控制节点scp自己的id_dsa.pub分发到其他节点 cat ~/node1.pub >> ~/.ssh/authorized_keys cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys 第三步:时间同步 上传hadoop.tar.gz到服务器 解压,mv hadoop-2.6.5 /opt/sxt 编辑etc/profile文件 vi /etc/profile export JAVA_HOME=/usr/java/jdk1.7.0_67 export HADOOP_PREFIX=/opt/sxt/hadoop-2.6.5 export PATH= P A T H : PATH: PATH:JAVA_HOME/bin: H A D O O P P R E F I X / b i n : HADOOP_PREFIX/bin: HADOOPPREFIX/bin:HADOOP_PREFIX/sbin 在目录hadoop中修改所有的env.sh结尾的文件 /opt/hadoop-2.6.5/etc/hadoop *-env.sh JAVA_HOME=/usr/java/jdk1.7.0_67 修改 core-site.xml
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://mycluster</value> </property> <property> <name>hadoop.tmp.dir</name> <value>/var/sxt/hadoop/ha</value> </property> <property> <name>ha.zookeeper.quorum</name> <value>node02:2181,node03:2181,node04:2181</value> </property> </configuration>修改 hdfs-site.xml
<configuration> <property> <name>dfs.replication</name> <value>2</value> </property> <property> <name>dfs.nameservices</name> <value>mycluster</value> </property> <property> <name>dfs.ha.namenodes.mycluster</name> <value>nn1,nn2</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn1</name> <value>node01:8020</value> </property> <property> <name>dfs.namenode.rpc-address.mycluster.nn2</name> <value>node02:8020</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn1</name> <value>node01:50070</value> </property> <property> <name>dfs.namenode.http-address.mycluster.nn2</name> <value>node02:50070</value> </property> <property> <name>dfs.namenode.shared.edits.dir</name> <value>qjournal://node01:8485;node02:8485;node03:8485/mycluster</value> </property> <property> <name>dfs.journalnode.edits.dir</name> <value>/var/sxt/hadoop/ha/jn</value> </property> <property> <name>dfs.client.failover.proxy.provider.mycluster</name> <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value> </property> <property> <name>dfs.ha.fencing.methods</name> <value>sshfence</value> </property> <property> <name>dfs.ha.fencing.ssh.private-key-files</name> <value>/root/.ssh/id_dsa</value> </property> <property> <name>dfs.ha.automatic-failover.enabled</name> <value>true</value> </property> </configuration>编辑 slaves node02 node03 node04 分发部署包到其他节点 cd /opt/sxt scp -r hadoop-2.6.5 node02:pwd scp -r hadoop-2.6.5 node03:pwd scp -r hadoop-2.6.5 node04:pwd
因为要用zookeeper管理,所以需要先搭建好zookeeper集群 ,zookeeper(配置) conf/zoo.cfg dataDir=/var/sxt/zk server.1=node02:2888:3888 server.2=node03:2888:3888 server.3=node04:2888:3888 /var/sxt/zk echo 1 > myid //数字根据节点规划 配置文件:集群中要同步!!! zookeepr配置 启动zookeeper集群 zkServer.sh start || zkServer.sh status hadoop-daemon.sh start journalnode 第一台NN: hdfs namenode –format hadoop-deamon.sh start namenode 另一台NN: hdfs namenode -bootstrapStandby start-dfs.sh $ZOOKEEPER/bin/zkCli.sh ls / hdfs zkfc -formatZK stop-dfs.sh && start-dfs.sh || hadoop-daemon.sh start zkfc 注意:格式化namenode时一定要先启动journalnode 因为里面也有 yarn所以启动时还涉及yarn的启动命令