规划:
namenode:crxy1和crxy2
datanode:crxy3、crxy4、crxy5
journalnode:crxy1、crxy2、crxy3
resourcemanager:crxy1
nodemanager:crxy3、crxy4、crxy5
zookeeper: crxy1,crxy2,crxy3
--------------------------------------------------
基础设置
---设置好静态ip
克隆虚拟机ifconfig发现只有eth1.没有eth0
1 编辑 /etc/udev/rules.d/70-persistent-net.rules
注释掉包含eth0的行
把包含“eth1”行的“eth1”修改成“eth0”
2 编辑 /etc/sysconfig/network-script/ifcfg-eth0
把其中的mac地址修改成虚拟机设置里的地址。
---关闭防火墙 chkconfig iptables off
---关闭selinux vi /etc/sysconfig/selinux SELINUX=disabled
---设置主机名,绑定主机名与ip
vi /etc/sysconfig/network
--HOSTNAME=crxy1
vi /etc/hosts
--192.168.121.131 crxy1
--192.168.121.132 crxy2
--192.168.121.133 crxy3
--192.168.121.134 crxy4
--192.168.121.135 crxy5
---设置ssh无密码访问,crxy1和crxy2要互联
ssh-keygen -t rsa
ssh-copy-id crxy1
ssh-copy-id crxy2
ssh-copy-id crxy3
ssh-copy-id crxy4
ssh-copy-id crxy5
---用scp拷贝相同配置到其他机器
#!/bin/sh
for i in 1 2 3 4 5 6
do
scp -rq /usr/local/jdk crxy$i:/usr/local
ssh crxy$i "source /etc/profile"
done
修改配置文件(手工切换namenode方式)
1.1 配置文件(hadoop-env.sh、core-site.xml、hdfs-site.xml、yarn-site.xml、mapred-site.xml、slaves)
1.1.1 hadoop-env.sh
export JAVA_HOME=/usr/local/jdk
1.1.2 core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://cluster1</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
1.1.3 hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.nameservices</name>
<value>cluster1</value>
</property>
<property>
<name>dfs.ha.namenodes.cluster1</name>
<value>crxy1,crxy2</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster1.crxy1</name>
<value>crxy1:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster1.crxy1</name>
<value>crxy1:50070</value>
</property>
<property>
<name>dfs.namenode.rpc-address.cluster1.crxy2</name>
<value>crxy2:9000</value>
</property>
<property>
<name>dfs.namenode.http-address.cluster1.crxy2</name>
<value>crxy2:50070</value>
</property>
<property>
<name>dfs.ha.automatic-failover.enabled.cluster1</name>
<value>false</value>
</property>
<property>
<name>dfs.namenode.shared.edits.dir</name>
<value>qjournal://crxy1:8485;crxy2:8485;crxy3:8485/cluster1</value>
</property>
<property>
<name>dfs.journalnode.edits.dir</name>
<value>/usr/local/hadoop/tmp/journal</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_rsa</value>
</property>
<property>
<name>dfs.client.failover.proxy.provider.cluster1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
1.1.4 yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>crxy1</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
1.1.5 mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
1.1.6 slaves
crxy3
crxy4
crxy5
1.1.7 把crxy1上的hadoop文件夹复制到crxy2、crxy3、crxy4、crxy5节点
--------------------------------------------------
启动集群 (手工切换namenode方式)
1.2 启动journalnode集群
在crxy1、crxy2、crxy3上分别执行hadoop/sbin/hadoop-daemon.sh start journalnode
--启动8485端口,namenode format的时候会连接
1.3 格式化namenode、启动namenode
在crxy1上执行hadoop/bin/hdfs namenode -format
在crxy1上分别执行hadoop/sbin/hadoop-daemon.sh start namenode
--启动了才能下一步的格式化
在crxy2上执行hadoop/bin/hdfs namenode -bootstrapStandby
在crxy2上分别执行hadoop/sbin/hadoop-daemon.sh start namenode
在crxy1上执行
hadoop/bin/hdfs haadmin -failover --forceactive crxy1 crxy2
---》crxy1:standby crxy2:active
hadoop/bin/hdfs haadmin -failover --forcefence crxy1 crxy2 (crxy2不能为active)
---》crxy1:dead crxy2:active
1.4 启动datanode
在crxy1上分别执行hadoop/sbin/hadoop-daemons.sh start datanode
1.5 启动resourcemanager和nodemanager
在crxy1上执行 hadoop/sbin/yarn-demon.sh start resourcemanager
hadoop/sbin/yarn-demon.sh start nodemanager
1.6 简便执行:crxy1上分别执行
hadoop/sbin/start-dfs.sh
hadoop/sbin/start-yarn.sh
1.7 web页面验证
crxy1:50070/crxy2:50070
crxy1:8088
-------------------------------------------------
修改配置文件(自动切换namenode方式)
2.0 搭建zookeeper集群
2.0.1 在crxy1上解压缩,重命名为zookeeper,把conf/zoo_sample.cfg重命名为conf/zoo.cfg
修改文件conf/zoo.cfg
(1)dataDir=/usr/local/zookeeper/data
(2)增加以下内容
server.1=crxy1:2888:3888
server.2=crxy2:2888:3888
server.3=crxy3:2888:3888
创建目录mkdir zookeeper/data
写入文件echo 1 zookeeper/data/myid
复制zookeeper文件夹到hadoop2、hadoop3上
scp -rq zookeeper hadoop2:/usr/local
scp -rq zookeeper hadoop3:/usr/local
在hadoop2上执行命令echo 2 zookeeper/data/myid
在hadoop3上执行命令echo 3 zookeeper/data/myid
2.0.2 启动
在crxy1、crxy2、crxy3上,分别执行命令zookeeper/bin/zkServer.sh start
2.0.3 验证
执行命令zookeeper/bin/zkCli.sh
进入后执行ls /
2.1修改hadoop配置文件
与手工切换namenode的配置不同处:
core-site.xml
<property>
<name>ha.zookeeper.quorum</name>
<value>crxy1:2181,crxy2:2181,crxy3:2181</value>
</property>
hdfs-site.xml
<property>
<name>dfs.client.failover.proxy.provider.cluster1</name>
<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
修改好后,删除其他节点的hadoop文件夹,然后把crxy1上的hadoop文件夹复制到其他节点
--------------------------------------------------
启动集群 (自动切换namenode方式)
2.2 格式化zk集群
在crxy1上执行hadoop/bin/hdfs zkfc -formatZK
2.3 启动journalnode集群
在crxy1、crxy2、crxy3上分别执行hadoop/sbin/hadoop-daemon.sh start journalnode
2.4 格式化namenode、启动namenode
在crxy1上执行hadoop/bin/hdfs namenode -format
在crxy1上分别执行hadoop/sbin/hadoop-daemon.sh start namenode
在crxy2上执行hadoop/bin/hdfs namenode -bootstrapStandby
在crxy2上分别执行hadoop/sbin/hadoop-daemon.sh start namenode
2.5 启动datanode
在crxy1上分别执行hadoop/sbin/hadoop-daemons.sh start datanode
2.6 启动ZKFC
在crxy1、crxy2上 启动zkfc,执行命令hadoop/sbin/hadoop-daemon.sh start zkfc
总结:
自动切换比手工切换多出来的
(1)配置上core-site.xml增加了配置项ha.zookeeper.quorum;hdfs-site.xml中把dfs.ha.automatic-failover.enabled.cluster1改为true
(2)操作上格式化zk,执行命令bin/hdfs zkfc -formatZK;启动zkfc,执行命令sbin/hadoop-daemon.sh start zkfc
分享到:
相关推荐
haddoop-1.2.1.tar.gz hadoop基础学习之hadoop jar hadoop 学习
关于Hadoop分布式搭建部署的文档,仅供参考,可以切磋交流噢
spark2.4.7兼容haddoop 3.1.4 和hive 3.1.2修改spark源码和jar
只需改下输入输出路径就可直接运行的hadoop程序,包含需要的完整jar
全书共14章,3个附录,涉及的主题包括:haddoop简介:mapreduce简介:hadoop分布式文件系统;hadoop的i/o、mapreduce应用程序开发;mapreduce的工作机制:mapreduce的类型和格式;mapreduce的特性:如何安装hadoop...
全书共14章,3个附录,涉及的主题包括:Haddoop简介:MapReduce简介:Hadoop分布式文件系统;Hadoop的I/O、MapReduce应用程序开发;MapReduce的工作机制:MapReduce的类型和格式;MapReduce的特性:如何安装Hadoop...
全书共14章,3个附录,涉及的主题包括:haddoop简介:mapreduce简介:hadoop分布式文件系统;hadoop的i/o、mapreduce应用程序开发;mapreduce的工作机制:mapreduce的类型和格式;mapreduce的特性:如何安装hadoop...
全书涉及的主题包括:Haddoop简介;MapReduce简介;Hadoop分布式文件系统;Hadoop的I/O、MapReduce应用程序开发;MapReduce的工作机制;MapReduce的类型和格式;MapReduce的特性;如何安装Hadoop集群,如何管理...
全书共14章,3个附录,涉及的主题包括:Haddoop简介;MapReduce简介;Hadoop分布式文件系统;Hadoop的I/O、MapReduce应用程序开发;MapReduce的工作机制;MapReduce的类型和格式;MapReduce的特性;如何安装Hadoop...
全书共14章,3个附录,涉及的主题包括:Haddoop简介;MapReduce简介;Hadoop分布式文件系统;Hadoop的I/O、MapReduce应用程序开发;MapReduce的工作机制;MapReduce的类型和格式;MapReduce的特性;如何安装Hadoop...
全书共14章,3个附录,涉及的主题包括:Haddoop简介;MapReduce简介;Hadoop分布式文件系统;Hadoop的I/O、MapReduce应用程序开发;MapReduce的工作机制;MapReduce的类型和格式;MapReduce的特性;如何安装Hadoop...
全书共14章,3个附录,涉及的主题包括:Haddoop简介;MapReduce简介;Hadoop分布式文件系统;Hadoop的I/O、MapReduce应用程序开发;MapReduce的工作机制;MapReduce的类型和格式;MapReduce的特性;如何安装Hadoop...
全书共14章,3个附录,涉及的主题包括:Haddoop简介;MapReduce简介;Hadoop分布式文件系统;Hadoop的I/O、MapReduce应用程序开发;MapReduce的工作机制;MapReduce的类型和格式;MapReduce的特性;如何安装Hadoop...
全书共16章,3个附录,涉及的主题包括:haddoop简介;mapreduce简介;Hadoop分布式文件系统;Hadoop的i/o、mapreduce应用程序开发;mapreduce的工作机制;mapreduce的类型和格式;mapreduce的特性;如何构建Hadoop...
全书共16章,3个附录,涉及的主题包括:haddoop简介;mapreduce简介;hadoop分布式文件系统;hadoop的i/o、 mapreduce应用程序开发;mapreduce的工作机制;mapreduce的类型和格式;mapreduce的特性;如何构建hadoop...
全书共16章,3个附录,涉及的主题包括:haddoop简介;mapreduce简介;hadoop分布式文件系统;hadoop的i/o、mapreduce应用程序开发;mapreduce的工作机制;mapreduce的类型和格式;mapreduce的特性;如何构建hadoop...
thrift框架示例,thrift框架客户端代码。 开发平台MyEclipse 9
全书共16章,3个附录,涉及的主题包括:Haddoop简介;MapReduce简介;Hadoop分布式文件系统;Hadoop的I/O、MapReduce应用程序开发;MapReduce的工作机制;MapReduce的类型和格式;MapReduce的特性;如何构建Hadoop...