7

我想连接到 hdfs(在 localhost 中),但出现错误:

从 despubuntu-ThinkPad-E420/127.0.1.1 到 localhost:54310 的调用因连接异常而失败:java.net.ConnectException:连接被拒绝;有关更多详细信息,请参阅: http ://wiki.apache.org/hadoop/ConnectionRefused

我遵循其他帖子中的所有步骤,但我没有解决我的问题。我使用 hadoop 2.7,这是配置:

核心站点.xml

<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/home/despubuntu/hadoop/name/data</value>
  </property>

  <property>
    <name>fs.default.name</name>
    <value>hdfs://localhost:54310</value>
  </property>
</configuration>

hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
</configuration>

我输入 /usr/local/hadoop/bin/hdfs namenode -format 和 /usr/local/hadoop/sbin/start-all.sh

但是当我输入“jps”时,结果是:

10650 Jps
4162 Main
5255 NailgunRunner
20831 Launcher

我需要帮助...

4

5 回答 5

4

确保core-site.xml实际启动了设置为端口 9000 的 DFS。您可以使用jps命令进行检查。你可以开始sbin/start-dfs.sh

于 2016-07-21T23:20:10.957 回答
2

我猜您没有正确设置您的 hadoop 集群,请按照以下步骤操作:

第 1 步:从设置 .bashrc 开始:

vi $HOME/.bashrc

将以下行放在文件末尾:(将 hadoop home 更改为您的)

# Set Hadoop-related environment variables
export HADOOP_HOME=/usr/local/hadoop

# Set JAVA_HOME (we will also configure JAVA_HOME directly for Hadoop later on)
export JAVA_HOME=/usr/lib/jvm/java-6-sun

# Some convenient aliases and functions for running Hadoop-related commands
unalias fs &> /dev/null
alias fs="hadoop fs"
unalias hls &> /dev/null
alias hls="fs -ls"

# If you have LZO compression enabled in your Hadoop cluster and
# compress job outputs with LZOP (not covered in this tutorial):
# Conveniently inspect an LZOP compressed file from the command
# line; run via:
#
# $ lzohead /hdfs/path/to/lzop/compressed/file.lzo
#
# Requires installed 'lzop' command.
#
lzohead () {
    hadoop fs -cat $1 | lzop -dc | head -1000 | less
}

# Add Hadoop bin/ directory to PATH
export PATH=$PATH:$HADOOP_HOME/bin

第 2 步:编辑 hadoop-env.sh 如下:

# The java implementation to use.  Required.
export JAVA_HOME=/usr/lib/jvm/java-6-sun

第 3 步:现在创建一个目录并设置所需的所有权和权限

$ sudo mkdir -p /app/hadoop/tmp
$ sudo chown hduser:hadoop /app/hadoop/tmp
# ...and if you want to tighten up security, chmod from 755 to 750...
$ sudo chmod 750 /app/hadoop/tmp

第 4 步:编辑 core-site.xml

<property>
  <name>hadoop.tmp.dir</name>
  <value>/app/hadoop/tmp</value>
</property>

<property>
  <name>fs.default.name</name>
  <value>hdfs://localhost:54310</value>
</property>

第 5 步:编辑 mapred-site.xml

<property>
  <name>mapred.job.tracker</name>
  <value>localhost:54311</value>
</property>

第 6 步:编辑 hdfs-site.xml

<property>
  <name>dfs.replication</name>
  <value>1</value>
</property>

最后格式化你的hdfs(你需要在第一次设置Hadoop集群时这样做)

 $ /usr/local/hadoop/bin/hadoop namenode -format

希望对你有帮助

于 2015-04-28T16:04:40.017 回答
0

我遇到了同样的问题。您可以在键入时看到名称节点、数据节点、资源管理器和任务管理器守护程序正在运行。所以只需执行 start-all.sh 然后所有守护程序开始运行,现在您可以访问 HDFS。

于 2017-06-04T20:33:54.400 回答
0

我遇到了类似的错误。检查后我发现我的namenode服务处于停止状态。

检查名称节点的状态sudo status hadoop-hdfs-namenode

如果它没有处于启动/运行状态

启动namenode服务sudo start hadoop-hdfs-namenode

请记住,名称节点服务在重新启动后需要一段时间才能完全正常运行。它读取内存中的所有 hdfs 编辑。您可以使用命令在 /var/log/hadoop-hdfs/ 中检查进度tail -f /var/log/hadoop-hdfs/{Latest log file}

于 2017-09-16T15:30:00.410 回答
0

首先通过在命令行上键入jps命令来检查 java 进程是否正在工作。在运行 jps 命令时,必须运行以下进程-->>

  • 数据节点
  • JP
  • 名称节点
  • 次要名称节点

如果以下进程未运行,则首先使用以下命令启动名称节点-->> start-dfs.sh

这对我有用,并消除了你所说的错误。

于 2017-09-08T14:20:20.437 回答