hadoop中secondarynamenode节点添加方法

当时,hadoop已经安装成功,但是secondarynamenode没有启动

后来经过研究,原来是配置的目录有问题

首先修改一下shell文件

文件路径:/home/work/hadoop/bin

原来:master  现在:secondarynamenode 

[work@master bin]$ cat start-dfs.sh
#!/usr/bin/env bash


# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.




# Start hadoop dfs daemons.
# Optinally upgrade or rollback dfs state.
# Run this on master node.


usage="Usage: start-dfs.sh [-upgrade|-rollback]"


bin=`dirname "$0"`
bin=`cd "$bin"; pwd`


if [ -e "$bin/../libexec/hadoop-config.sh" ]; then
  . "$bin"/../libexec/hadoop-config.sh
else
  . "$bin/hadoop-config.sh"
fi


# get arguments
if [ $# -ge 1 ]; then
nameStartOpt=$1
shift
case $nameStartOpt in
 (-upgrade)
  ;;
 (-rollback) 
  dataStartOpt=$nameStartOpt
  ;;
 (*)
 echo $usage
 exit 1
   ;;
esac
fi


# start dfs daemons
# start namenode after datanodes, to minimize time namenode is up w/o data
# note: datanodes will log connection errors until namenode starts
"$bin"/hadoop-daemon.sh --config $HADOOP_CONF_DIR start namenode $nameStartOpt
"$bin"/hadoop-daemons.sh --config $HADOOP_CONF_DIR start datanode $dataStartOpt
"$bin"/hadoop-daemons.sh --config $HADOOP_CONF_DIR --hosts secondarynamenode start secondarynamenode
[work@master bin]$ 


停止的shell文件也要修改:

原来:master  现在:secondarynamenode 

[work@master bin]$ cat start-dfs.sh
#!/usr/bin/env bash


# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.




# Start hadoop dfs daemons.
# Optinally upgrade or rollback dfs state.
# Run this on master node.


usage="Usage: start-dfs.sh [-upgrade|-rollback]"


bin=`dirname "$0"`
bin=`cd "$bin"; pwd`


if [ -e "$bin/../libexec/hadoop-config.sh" ]; then
  . "$bin"/../libexec/hadoop-config.sh
else
  . "$bin/hadoop-config.sh"
fi


# get arguments
if [ $# -ge 1 ]; then
nameStartOpt=$1
shift
case $nameStartOpt in
 (-upgrade)
  ;;
 (-rollback) 
  dataStartOpt=$nameStartOpt
  ;;
 (*)
 echo $usage
 exit 1
   ;;
esac
fi


# start dfs daemons
# start namenode after datanodes, to minimize time namenode is up w/o data
# note: datanodes will log connection errors until namenode starts
"$bin"/hadoop-daemon.sh --config $HADOOP_CONF_DIR start namenode $nameStartOpt
"$bin"/hadoop-daemons.sh --config $HADOOP_CONF_DIR start datanode $dataStartOpt
"$bin"/hadoop-daemons.sh --config $HADOOP_CONF_DIR --hosts secondarynamenode start secondarynamenode
[work@master bin]$ cat stop-dfs.sh
#!/usr/bin/env bash


# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.




# Stop hadoop DFS daemons.  Run this on master node.


bin=`dirname "$0"`
bin=`cd "$bin"; pwd`


if [ -e "$bin/../libexec/hadoop-config.sh" ]; then
  . "$bin"/../libexec/hadoop-config.sh
else
  . "$bin/hadoop-config.sh"
fi


"$bin"/hadoop-daemon.sh --config $HADOOP_CONF_DIR stop namenode
"$bin"/hadoop-daemons.sh --config $HADOOP_CONF_DIR stop datanode
"$bin"/hadoop-daemons.sh --config $HADOOP_CONF_DIR --hosts secondarynamenode stop secondarynamenode


[work@master bin]$ 


第二点修改文件内容

文件路径:/home/work/hadoop/conf

从节点原来是:slaves里面有node1节点

修改后为只有node2和node3.

[work@master conf]$ cat slaves
node2
node3
[work@master conf]$ 

另外在追加一个secondarynamenode文件

里面单独放node1

[work@master conf]$ cat secondarynamenode
node1
[work@master conf]$ 

到此位置:secondarynamenode配置成功。


现在我把成功后运行的结果状态贴一下:

首先我是1个master,secondarynamenode是node1, node2和node3是datanode。

master情况:

[work@master conf]$ jps
13338 NameNode
13884 Jps
13554 JobTracker
[work@master conf]$ 


node1情况:

[work@node1 ~]$ jps
9772 SecondaryNameNode
10071 Jps
[work@node1 ~]$ 


node2情况:

[work@node2 ~]$ jps
22897 TaskTracker
22767 DataNode
23234 Jps
[work@node2 ~]$ 


node3情况:

[work@node3 ~]$ jps
3457 TaskTracker
3327 DataNode
3806 Jps
[work@node3 ~]$ 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Hadoop没有secondarynamenode是不正确的说法。在HadoopSecondary NameNode(次要名称节点)是一个重要的组件,用于协助NameNode(名称节点)管理HDFS(Hadoop分布式文件系统)的元数据。Secondary NameNode会定期从NameNode获取元数据的快照,并将其存储在本地磁盘上,以便在NameNode发生故障时可以快速恢复。因此,Secondary NameNodeHadoop集群扮演着非常重要的角色。 ### 回答2: Hadoop是一个分布式的系统,可以用来处理非常大量的数据。在Hadoop的分布式文件系统HDFS,文件被分成很多个块,这些块可以存储在不同的机器上。而为了保证数据的可靠性,每个块还会有多个副本,这些副本可以存储在不同的机器上。这就使得数据不容易丢失,即使某个机器出现了故障也可以保证数据的安全。 在HDFS,有两个重要的节点,一个是NameNode,另一个是DataNode。NameNode维护着整个文件系统的命名空间,它记录了哪个文件分成了哪些块,这些块存储在哪些机器上等信息。而DataNode则是实际存储数据的地方,每个DataNode都存储着一部分块的副本。 那么,SecondaryNameNode是什么呢?我们可以简单地理解为NameNode的辅助节点。它的主要作用是定期与NameNode通信,将NameNode的元数据信息复制一份到自己的本地磁盘上,以防止NameNode故障或数据丢失。当NameNode故障后,SecondaryNameNode可以快速地恢复NameNode的数据,使得系统能够快速恢复正常工作状态。 但是在最新的Hadoop版本SecondaryNameNode已经被弃用了,取而代之的是NameNode的HA(高可用性)机制。这种机制通过将多个NameNode组成一个集群来实现,每个NameNode都可以独立工作并负责整个文件系统的管理,当某个NameNode出现故障时,其他节点可以立即接管整个集群,保证系统的正常运行。 综上所述,虽然Hadoop没有SecondaryNameNode了,但通过HA机制可以实现更稳定、可靠的分布式系统。 ### 回答3: Hadoop是一个开源的分布式文件系统和大数据处理框架,它具有高可靠性、高可扩展性、高效性等特点,在大数据领域非常受欢迎。在Hadoopsecondarynamenode是一个重要的组件,它的作用是辅助namenode来管理Hadoop文件系统。但是,近年来,随着Hadoop的升级,secondarynamenode逐渐被弃用,取而代之的是另外一个组件——Checkpoint node。 那么,为什么Hadoop没有secondarynamenode呢?原因有以下几点: 第一,secondarynamenode存在单点故障的问题。在Hadoop早期版本,如果namenode失效,那么所有的Hadoop文件系统都会停止工作。为了解决这个问题,Hadoop引入了secondarynamenode来备份日志信息并定期向namenode发送最新的文件系统快照。但secondarynamenode作为一个单独的节点,如果它本身失效,就会导致整个Hadoop集群出现故障。 第二,secondarynamenode的性能可能受限。虽然secondarynamenode的出现解决了namenode单点故障的问题,但它本身也可能成为性能瓶颈。由于secondarynamenode需要定期接收namenode的编辑日志以生成新的快照,因此其性能可能不足以处理大规模文件系统的数据量。 基于以上两个因素,Hadoop官方决定使用Checkpoint node来取代secondarynamenode。Checkpoint node是一个完全分布式的组件,可以部署在Hadoop集群的任何节点上,因此避免了单点故障的问题。此外,Checkpoint node可以根据需要自动调整备份数量和备份频率,可以更好地适应不同的应用场景。 总之,Hadoop虽然没有secondarynamenode,但是它选择了更加适合当前大数据场景的Checkpoint node来取代它的作用,以更好地满足分布式文件系统和大数据处理的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值