我想连接到hdfs(在localhost中),我有一个错误:
从despubuntu-ThinkPad-E420 / 127.0.1.1调用localhost:54310连接异常失败:java.net.ConnectException:连接被拒绝;有关详细信息,请参阅:http://wiki.apache.org/hadoop/ConnectionRefused
我按照其他帖子中的所有步骤操作,但我没有解决我的问题。我使用hadoop 2.7,这是配置:
芯-site.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
我需要帮助......
答案 0 :(得分:4)
确保实际启动了core-site.xml
中设置为端口9000的DFS。您可以使用jps
命令进行检查。您可以使用sbin/start-dfs.sh
答案 1 :(得分:2)
我猜您没有正确设置您的hadoop群集请按照以下步骤操作:
Step1:从设置.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
希望这会对你有所帮助
答案 2 :(得分:0)
我遇到了同样的问题。您可以在键入时看到Name节点,DataNode,资源管理器和任务管理器守护程序正在运行。所以只需要start-all.sh然后所有守护进程开始运行,现在你可以访问HDFS。
答案 3 :(得分:0)
首先在命令行输入 jps 命令检查java进程是否正常。在运行jps命令时,必须执行以下过程 - &gt;&gt;
如果以下进程未运行,则首先使用以下命令启动名称节点 - &gt;&gt; 的 start-dfs.sh 强>
这对我有用,并删除了你说的错误。
答案 4 :(得分:0)
我得到了类似的错误。检查后发现我的namenode服务处于停止状态。
检查namenode
的状态sudo status hadoop-hdfs-namenode
如果它未处于启动/运行状态
启动namenode服务
sudo start hadoop-hdfs-namenode
请记住,名称节点服务在重新启动后完全正常运行需要一些时间。它读取内存中的所有hdfs编辑。您可以使用命令tail -f /var/log/hadoop-hdfs/{Latest log file}