启动hadoop找不到方法 SocketFactory.createSocket()

zhangheng 发布于 2011/11/06 13:05
阅读 1K+
收藏 0
近学习配置hadoop

启动namenode,datanode,都找不到,javax.net.SocketFactory.createSocket(),

那位高手能指点一下吗?

2011-11-06 12:58:45,886 FATAL org.apache.hadoop.mapred.JobTracker: java.lang.NoSuchMethodError: javax.net.SocketFactory.createSocket()Ljava/net/Socket;

    at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:390)
    at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:527)
    at org.apache.hadoop.ipc.Client$Connection.access$1800(Client.java:187)
    at org.apache.hadoop.ipc.Client.getConnection(Client.java:1164)
    at org.apache.hadoop.ipc.Client.call(Client.java:1010)
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:224)
加载中
0
逝水fox
逝水fox
预先有装JDK吗? 另外JAVA_HOME等环境变量需要配置好 特别是要去conf/hadoop_env.sh配置JAVA_HOME
0
zhangheng
zhangheng

conf/hadoop_env.sh 的这样配置的。

export JAVA_HOME=/opt/jdk/jdk1.6.0_16

  export HADOOP_HOME=/opt/hadoop
  export HADOOP_INSTALL=/opt/hadoop
  export PATH=$PATH:$HADOOP_INSTALL/bin

  export CLASSPATH=.:$CLASSPATH

 用的是opensuse:在/etc/profile 这样配置的:

JAVA_HOME=/opt/jdk/jdk1.6.0_16
HADOOP_HOME=/opt/hadoop
PATH=$JAVA_HOME/bin/:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

jdk应该没有问题,能够编译执行java程序。

 

 


0
开源中国射线科科长
开源中国射线科科长
该评论暂时无法显示,详情咨询 QQ 群:点此入群
0
逝水fox
逝水fox

引用来自“zhangheng”的答案

conf/hadoop_env.sh 的这样配置的。

export JAVA_HOME=/opt/jdk/jdk1.6.0_16

  export HADOOP_HOME=/opt/hadoop
  export HADOOP_INSTALL=/opt/hadoop
  export PATH=$PATH:$HADOOP_INSTALL/bin

  export CLASSPATH=.:$CLASSPATH

 用的是opensuse:在/etc/profile 这样配置的:

JAVA_HOME=/opt/jdk/jdk1.6.0_16
HADOOP_HOME=/opt/hadoop
PATH=$JAVA_HOME/bin/:$JAVA_HOME/jre/bin:$HADOOP_HOME/bin:$PATH
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

jdk应该没有问题,能够编译执行java程序。

 

 


那就不是很明白了

我的hadoop-env.sh只加了JAVA_HOME的 也沒发现有什么问题

0
zhangheng
zhangheng

谢谢各位!

包依赖问题,问题已经解决了:

1,装jdk时jsse.pack这个包没有unpack,当时报错找不到SocketFactory这个类。

2,然后我下了个jnet包,这个包里的SocketFactory没有createSocket()这个方法,所以报了上面的错误。

3,现在不用jnet包,打开jsse.pack就可以了。

OSCHINA
登录后可查看更多优质内容
返回顶部
顶部