设为首页 收藏本站
查看: 1004|回复: 0

[经验分享] 单机测试NN时遇到的问题

[复制链接]

尚未签到

发表于 2016-12-14 07:01:12 | 显示全部楼层 |阅读模式
  在Hadoop的测试框架上写了一个小测试,用于比对NN使用不同策略分配数据块位置的速度:
  Configuration conf = new Configuration();
    FileSystem.setDefaultUri(conf, "hdfs://localhost:" + 0);
    conf.set("dfs.http.address", "0.0.0.0:0");
  然后用该conf去NameNode.createNameNode()
  ->new Namenode()
  ->new FSNamesystem()
  ->this.replicator = BlockPlacementPolicy.getInstance(conf,  this,  clusterMap);//这里我用了Raid的Policy
  ->BlockPlacementPolicyRaid.initialize()
  ->为了得到this.xorPrefix调用RaidNode.xorDestinationPath(conf)
  ->FileSystem.get(p.toUri(), conf)
  ->CACHE.get(uri, conf)
  ->createFileSystem(uri, conf)
  ->FileSystem fs = (FileSystem)ReflectionUtils.newInstance(clazz, conf);得到DistributedFileSystem
  ->DistributedFileSystem.initialize()
  ->new DFSClient(namenode, conf, statistics)
  ->createRPCNamenode(nameNodeAddr, conf, ugi);
  OK这时问题来了,在NN的建立过程中建立到NN的RPC,所以程序程序会停住不动。。。这时用jstack就可以查看得详细的调用过程
  "main" prio=10 tid=0x0875ac00 nid=0xd70 in Object.wait() [0xb6d0d000]
   java.lang.Thread.State: WAITING (on object monitor)
    at java.lang.Object.wait(Native Method)
    - waiting on <0x506cdcc8> (a org.apache.hadoop.ipc.Client$Call)
    at java.lang.Object.wait(Object.java:485)
    at org.apache.hadoop.ipc.Client.call(Client.java:701)
    - locked <0x506cdcc8> (a org.apache.hadoop.ipc.Client$Call)
    at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:216)
    at $Proxy4.getProtocolVersion(Unknown Source)
    at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:348)
    at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:103)
    at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:176)
    at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:78)
    at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1443)
    at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:56)
    at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1456)
    - locked <0x50960460> (a org.apache.hadoop.fs.FileSystem$Cache)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:218)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:120)
    at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:207)
    at org.apache.hadoop.raid.RaidNode.xorDestinationPath(RaidNode.java:1072)
    at org.apache.hadoop.hdfs.server.namenode.BlockPlacementPolicyRaid.initialize(BlockPlacementPolicyRaid.java:96)
    at org.apache.hadoop.hdfs.server.namenode.BlockPlacementPolicy.getInstance(BlockPlacementPolicy.java:193)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.setConfigurationParameters(FSNamesystem.java:446)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:325)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:309)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:173)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:256)
    at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:998)
    at org.apache.hadoop.hdfs.NNThroughputBenchmark.<init>(NNThroughputBenchmark.java:112)
    at org.apache.hadoop.hdfs.NNThroughputBenchmark.runBenchmark(NNThroughputBenchmark.java:1250)
    at org.apache.hadoop.hdfs.NNThroughputBenchmark.main(NNThroughputBenchmark.java:1360)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.util.ProgramDriver$ProgramDescription.invoke(ProgramDriver.java:68)
    at org.apache.hadoop.util.ProgramDriver.driver(ProgramDriver.java:141)
    at org.apache.hadoop.test.AllTestDriver.main(AllTestDriver.java:90)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.hadoop.util.RunJar.main(RunJar.java:165)
    at org.apache.hadoop.mapred.JobShell.run(JobShell.java:54)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:65)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:79)
    at org.apache.hadoop.mapred.JobShell.main(JobShell.java:68)

  解决:由于测试不需要用到xorPrefix,rsPrefix,所以直接把xorPrefix=/raid,rsPrefix=/raidrs。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-313831-1-1.html 上篇帖子: HDFS基本命令 下篇帖子: hbase常见错误及解决方法
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表