频道栏目
首页 > 网络 > 云计算 > 正文

hadoop集群入门教程之从0到1搭建hadoop集群

2018-01-08 14:01:50      个评论    来源:LHWorldBlog的博客  
收藏   我要投稿

一。前述

本来有套好好的集群,可是不知道为什么虚拟机镜像文件损坏,结果导致集群不能用。所以不得不重新搭套集群,借此机会顺便再重新搭套吧,顺便提醒一句大家,自己虚拟机的集群一定要及时做好快照,最好装完每个东西后记得拍摄快照。要不搞工具真的很浪费时间,时间一定要用在刀刃上。废话不多说,开始准备环境搭建,本集群搭建完全基于企业思想,所以生产集群亦可以参照此搭建。

二。集群规划

\

三。配置

1.配置集群节点之间免密操作。

因为在node01(namenode)节点要启动datanode节点,所以需要配置node01到三台datanode节点的免密操作

因为两个namenode之间需要互相切换降低对方的级别所以node01,node02之间需要进行免密操作。

具体步骤如下:

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

scp id_dsa.pub root@node04:`pwd`/node01.pub

cat node01.pub >> ~/.ssh/authorized_keys

2.上传hadoop安装包到某一节点上,进行配置

假设配置在此目录下

\

第一步:配置hadoop-env.sh

使用命令echo $JAVA_HOME 确定jd目录。

\

配置java环境。

export JAVA_HOME=/usr/java/jdk1.7.0_67

第二步:配置hdfs-site.xml


dfs.nameservices
mycluster//配置集群的别名,所以当企业中多套集群时,可以使用此别名分开



dfs.ha.namenodes.mycluster//配置两个namenode的逻辑名称
nn1,nn2



dfs.namenode.rpc-address.mycluster.nn1//配置两个namenode的真正物理节点和rpc通信端口
node01:8020



dfs.namenode.rpc-address.mycluster.nn2//配置两个namenode的真正物理节点rpc通信端口
node02:8020



dfs.namenode.http-address.mycluster.nn1//配置两个namenode的真正物理节点http通信端口
node01:50070



dfs.namenode.http-address.mycluster.nn2//配置两个namenode的真正物理节点http通信端口
node02:50070


dfs.namenode.shared.edits.dir
qjournal://node01:8485;node02:8485;node03:8485/mycluster//配置三个journalnode的物理地址




dfs.journalnode.edits.dir//配置journalnode共享edits的目录
/var/sxt/hadoop/ha/jn





dfs.client.failover.proxy.provider.mycluster
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider//配置zkfc实现的真正类



dfs.ha.fencing.methods//配置zkfc隔离机制
sshfence



dfs.ha.fencing.ssh.private-key-files//配置zkfc切换对方namenode时所使用的方式
/root/.ssh/id_dsa



dfs.ha.automatic-failover.enabled/配置是否自动开启zkfc切换
true


第三步:配置core-site.xml


fs.defaultFS
hdfs://mycluster//配置集群的别名




ha.zookeeper.quorum
node02:2181,node03:2181,node04:2181//配置和zookeep通信地址和端口


hadoop.tmp.dir//配置hadoop元数据的存放目录
/var/sxt/hadoop-2.6/ha


第四步:配置slaves

即datanode节点

对应datanode节点的host或者ip

\

第五步:分发配置到其他节点相同目录

scp -r hadoop-2.6.5 root@node04:`pwd`

第六步:配置zookeeeer集群

同样上传到某一节点 然后配置

1.cp zoo_sample.cfg zoo.cfg先改名 zookeeper集群识别zoo.cfg文件

2.配置conf/zoo.cfg
dataDir=/var/sxt/zk
server.1=node02:2888:3888
server.2=node03:2888:3888
server.3=node04:2888:3888
3.配置集群节点识别

mkdir -p /var/sxt/zk
echo 1 > myid //数字根据节点规划

4.配置全局环境变量

export ZOOKEEPER=/opt/soft/zookeeper-3.4.6
export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER/bin

5.启动集群

分别启动三台节点,然后查看状态

zkServer.sh start
zkServer.sh statu

\

\

启动成功!!!

第七步:启动集群顺序(重要!!!)

1.先启动journalnode

hadoop-daemon.sh start journalnode

2.在两个namenode节点创建/var/sxt/hadoop-2.6/ha 即hadoop.tmp.dir的目录存放元数据(默认会创建,不过最好还是手工创建吧,并且里面一定是干净目录,无任何东西)

3.在其中一台namenode节点格式化

hdfs namenode -format

4.然后启动namenode!!!注意这个一定要先启动,然后再在另一台namenode同步,为了是让里面有数据

hadoop-daemon.sh start namenode

5.然后在另一台namenode节点执行同步hdfs namenode -bootstrapStandby

\

6.在主节点启动集群

start-dfs.sh

7.向zookeeper注册active节点

hdfs zkfc -formatZK

8.启动zkFC负责切换

hadoop-daemon.sh start zkfc

至此,集群启动成功启动成功!!

\

9.web-ui验证

\

10.下一次启动时,只需要先启动zookeper,然后在namenode的管理节点启动start-dfs.sh即可 !!!

最后,别忘拍摄快照哦!!

上一篇:Spark实战之Spark2.0环境搭建教程
下一篇:Hive优化技巧之常用参数优化汇总
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站