首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在同一台机器上运行多个数据节点

在同一台机器上运行多个数据节点
EN

Stack Overflow用户
提问于 2014-11-19 05:45:23
回答 2查看 4.9K关注 0票数 3

我有几个与hadoop有关的问题,我们计划在我们的生产环境中实现这个问题。

我们有一大群机器,每台机器都是一台具有大RAM和8个核心的服务器机器。每40台机器每5分钟收集大约60 gb的数据。这些机器还分布在多个地点和世界各地。在hadoop环境中,有一个单独的服务器机器充当namenode。Rest所有40台机器,它们都是数据收集器,我把它们作为hadoop集群的一部分作为数据节点。

由于数据收集在每台机器上都非常高,所以我不希望我的数据在服务器之间、在地理区域之间传输。以下是我的两个要求

1)我想要的是我的60 gb数据被分割成块,但是应该在本地处理。为此,我希望在同一台服务器上有多个datanodes节点。是否有可能在同一台服务器上运行多个数据节点?

( 2)是否可以处理指定数据阳极上的块。

我将举一个例子来澄清我的观点,假设我有服务器机器A,B,C,D.

一台机器每5分钟将有60 gb的数据。我可以在A机器上运行多个datanodes守护进程吗?如果可能的话,我可以告诉我的namemode只将这些块发送到服务器A上运行的datanodes守护进程,而不是发送到其他机器。

我不需要高可用性的数据,也不需要故障安全,所以不需要复制数据。

EN

回答 2

Stack Overflow用户

发布于 2015-06-23 10:20:20

要在单个节点上启动多个数据节点,首先要下载/构建hadoop二进制文件。

1)从hadoop源代码下载hadoop二进制文件或构建hadoop二进制文件。

2)准备运行在单个节点上的hadoop配置(将Hadoop默认的tmp dir位置从/tmp更改为其他可靠位置)

3)将以下脚本添加到$HADOOP_HOME/bin目录中,并将它添加到744。

4)格式HDFS / -format (用于Hadoop 0.20及以下版本),bin/hdfs命名节点-format (版本> 0.21)

5)启动HDFS bin/ Start -dfs.sh (这将启动Namenode和1个数据节点),可以在http://localhost:50070上查看。

6)使用bin/run-addtionalDN.sh 更多细节启动附加数据节点

run-additionalDN.sh

代码语言:javascript
复制
#!/bin/sh
# This is used for starting multiple datanodes on the same machine.
# run it from hadoop-dir/ just like 'bin/hadoop' 

#Usage: run-additionalDN.sh [start|stop] dnnumber
#e.g. run-datanode.sh start 2

DN_DIR_PREFIX="/path/to/store/data_and_log_of_additionalDN/"

if [ -z $DN_DIR_PREFIX ]; then
echo $0: DN_DIR_PREFIX is not set. set it to something like "/hadoopTmp/dn"
exit 1
fi

run_datanode () {
DN=$2
export HADOOP_LOG_DIR=$DN_DIR_PREFIX$DN/logs
export HADOOP_PID_DIR=$HADOOP_LOG_DIR
DN_CONF_OPTS="\
-Dhadoop.tmp.dir=$DN_DIR_PREFIX$DN\
-Ddfs.datanode.address=0.0.0.0:5001$DN \
-Ddfs.datanode.http.address=0.0.0.0:5008$DN \
-Ddfs.datanode.ipc.address=0.0.0.0:5002$DN"
bin/hadoop-daemon.sh --script bin/hdfs $1 datanode $DN_CONF_OPTS
}

cmd=$1
shift;

for i in $*
do
run_datanode  $cmd $i
done

我希望这能帮到你

票数 4
EN

Stack Overflow用户

发布于 2019-03-22 10:52:52

数据节点和名称节点只是软件的一部分,可以在任何商品机器上运行。因此,这是可能的,但很少在现实世界中使用。如果您推测服务器中的数据不可用涉及到的风险,那么您可能会得到在不同服务器之间传播数据节点的想法。

除此之外,apache官方网站还提到:

该体系结构并不排除在同一台计算机上运行多个DataNodes,但在实际部署中很少会出现这种情况。

来源:design.html#NameNode+and+DataNodes

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27009825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档