准备工作:
节点之间时间同步
安装jdk
上传Hadoop安装包解压并配置环境变量,这里使用的是Hadoop2.7.1(从Hadoop2.7x版本放弃了对JDK6运行时的支持,并且仅与JDK 7+一起使用。)
说明:Apache Hadoop 2.7.1是2.xy发行版中的次要发行版,它是在先前版本2.7.0的基础上构建的。这是继Apache Hadoop 2.6.x之后的下一个稳定版本。
免密钥登陆集群(相关操作可看集群节点之间的免密钥登陆),并且将两个NameNode都设置免密钥登陆集群,以防在一台NameNode崩溃时,另一台能够接管整个集群
拓扑结构:
节点名 | NameNode | DataNonde | journalnode | zookeeper | ZKFC |
---|---|---|---|---|---|
node1 | 1 | 1 | 1 | ||
node2 | 1 | 1 | 1 | 1 | 1 |
node3 | 1 | 1 | 1 | ||
node4 | 1 | 1 |
先安装zk,可以参考zookeeper集群的搭建
node1中的配置:先在hadoop-env.sh (位置在hadoop安装包里的/etc/hadoop)中配置 JAVA_HOME(jdk的位置)
接下来配置:core-site.xml,hdfs-site.xml,mapred-site.xml
具体配置根据自己情况查看hadoop官网的集群配置https://hadoop.apache.org/docs/r2.7.1/hadoop-project-dist/hadoop-common/ClusterSetup.html或中文详解,这里推荐我在网上看到的一篇文章https://www.cnblogs.com/forget-me-not/p/5710122.html
在salves中指定DataNode(DataNode的ip或节点映射名)
node2
node3
node4
在配置了journalnode的节点上启动journalnode,hadoop-daemon.sh start journalnode
在一台namenode中执行格式化命令:hdfs namenode -format
启动格式化的namenode:hadoop-daemon.sh start namenode
在另一台namenode初始化journalnode:hdfs namenode -bootstrapStandby
在一台namenode中执行:hdfs zkfc -formatZK格式化ZK
在一台namenode中执行:start-dfs.sh启动集群
使用jps查看进程启动的情况(红线标注的地方要启动)
OK