完全分布式搭建是在上一篇伪分布式搭建的基础上搭建的,基础hdfs搭建查看上篇详情。
目录
角色定义
服务器配置
ssh免密
hdfs配置文件
分发到其他机器
格式化&启动
验证
思考
角色定义
服务器NameNodesecondaryNameNodeDataNodenode01*node02**node03*node04*
服务器配置
1. 创建同node01一样的其他三台服务器 node02,node03, node04,创建方式参照大数据之Linux环境搭建文章。
2. 停止node01 服务器上的HDFS伪分布式进程
ssh免密
# 设置免密是为了集群启动时,start-dfs.sh脚本管理集群,在node01启动,就将node01的公钥分发给其他三台机器,node01就可以对其他三台进行免密登陆。# 操作 (将node01 的公钥分发给其他机器,并同意命名为node01.pub)# 在node01:
$ scp /root/.ssh/id_dsa.pub node02:/root/.ssh/node01.pub
$ scp /root/.ssh/id_dsa.pub node03:/root/.ssh/node01.pub
$ scp /root/.ssh/id_dsa.pub node04:/root/.ssh/node01.pub# 分别在node02-node04进行操作:
$ cd ~/.ssh
$ cat node01.pub >> authorized_keys
hdfs配置文件
# 在node01上先将之前的伪分布式hdfs文件备份
$ cp -r /opt/bigdata/hadoop /opt/bigdata/hadoop_local$ cd $HADOOP_HOME/etc/hadoop$ vi hdfs-site.xml<configuration><property><name>dfs.replication</name><value>2</value></property><property><name>dfs.namenode.name.dir</name><value>/var/bigdata/hadoop/full/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>/var/bigdata/hadoop/full/dfs/data</value></property><property><name>dfs.namenode.secondary.http-address</name><value>node02:50090</value></property><property><name>dfs.namenode.checkpoint.dir</name><value>/var/bigdata/hadoop/full/dfs/secondary</value></property></configuration># 定义DataNode服务器
$ vi slavesnode02node03node04
分发到其他机器
# 将node01上配置好的hdfs分发到node02-node04三台机器上
$ cd /opt
$ scp -r ./bigdata/hadoop-2.6.5 node02:`pwd`
$ scp -r ./bigdata/hadoop-2.6.5 node03:`pwd`
$ scp -r ./bigdata/hadoop-2.6.5 node04:`pwd`
格式化&启动
# 格式化<仅在集群搭建时候执行一次,切勿重复执行>
$ hdfs namenode -format# 启动
$ start-dfs.sh
验证
# 在node01
$ cd /var/bigdata/hadoop/full/dfs/name/current
$ ll
# 查看有无fsimage和edits$ cat VERSIONnamespaceID=11****40clusterID=CID-*********-ce2b69c7f658cTime=0storageType=NAME_NODEblockpoolID=BP-*****-1595910068876layoutVersion=-63# 在node02
$ cd /var/bigdata/hadoop/full/dfs
$ ll
# 查看是否存在data和secondary两个文件目录
$ cd /secondary/current
$ ll
$ cat VERSIONnamespaceID=11****40clusterID=CID-****-ce2b69c7f658cTime=0storageType=NAME_NODEblockpoolID=BP-****-1595910068876layoutVersion=-63# 在node02-node04验证DataNode
$ cd /var/bigdata/hadoop/full/dfs/data/current
$ cat VERSIONstorageID=DS-****-2d900c512332clusterID=CID-****-ce2b69c7f658cTime=0datanodeUuid=c8c8d695-****-0ada39a4c710storageType=DATA_NODElayoutVersion=-56# 查看clusterId是否都相同
思考
优点:主从集群,机构相对简单,主从协作,主单点,数据一致性好掌握
问题:
1.namenode单点故障,造成集群整体不可用
2.单点压力过大,内存受限
解决方案:
1.单点故障: 采用高可用方案HA(High Avaliable), 多个namenode,主备切换
2.压力过大,内存受限:采用联邦机制Federation,对元数据进行分片,用多个namenode管理不同的元数据