在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。
分享到:
相关推荐
在使用DataParallel训练中遇到的一些问题。 1.模型无法识别自定义模块。 如图示,会出现如AttributeError: ‘DataParallel’ object has no attribute ‘xxx’的错误。 原因:在使用net = torch.nn.DataParallel...
非线性扩展卡尔曼滤波(Extended Kalman Filter, EKF)是一种在处理非线性系统状态估计问题时广泛使用的算法。它扩展了经典的卡尔曼滤波理论,使其能够处理不能用线性方程精确描述的动态系统。在这个“NN_EKF”...
MTK 芯片双频 WiFi 模块 MT7628NN 路由器方案定制的特性与应用 MTK 芯片双频 WiFi 模块 MT7628NN 路由器方案定制的特性与应用是物联网智能家居 WiFi 远程控制的核心组件。该模块整合了 2T2R IEEE 802.11 b/g/n WiFi...
3.仿真效果:仿真效果可以参考博客同名文章《基于NN最近邻优化算法的TSP问题求解matlab仿真》 4.内容:基于NN最近邻优化算法的TSP问题求解matlab仿真。最近邻算法(Nearest Neighbor, NN)是一种简单且直观的贪婪...
NN全书程序夹NN全书程序夹NN全书程序夹
Pythorch中torch.nn.LSTM()参数详解;Pythorch中torch.nn.LSTM()参数详解;Pythorch中torch.nn.LSTM()参数详解;Pythorch中torch.nn.LSTM()参数详解;Pythorch中torch.nn.LSTM()参数详解;Pythorch中torch.nn.LSTM()...
粒子群优化(PSO)是一种基于群体智能的全局优化算法,而神经网络(NN)则是机器学习领域的一种模型,常用于解决非线性、复杂问题。将两者结合,可以在神经网络的训练过程中利用PSO的全局寻优能力,提高网络的性能。...
通过对鸢尾花数据集的k-NN分析,我们可以深入理解算法的工作原理,观察不同训练集和测试集比例对模型性能的影响,以及在实际应用中如何优化k值和数据划分策略。此外,这也是一个很好的机会去实践MATLAB编程,熟悉其...
当我们对未知标签的测试图像应用k-NN时,我们会计算它与所有训练样本的距离,并选择最近的k个邻居。根据这些邻居的类别及其出现频率,我们可以预测测试图像的类别。 在本例中,我们可能需要编写Python脚本来加载、...
在1NN算法中,“最近”的含义是最接近的一个训练样本,即对于一个测试样本,找到与其距离最近的训练样本,并将该训练样本的类别作为测试样本的预测类别。 #### 算法流程 1. **加载数据**:首先需要加载训练数据和...
小波神经网络(Wavelet Neural Network,简称WNN)是一种结合了小波理论与神经网络的模型,广泛应用于模式识别、信号处理、图像分析等领域。...通过不断学习和实践,我们可以进一步挖掘WNN在各种复杂问题中的潜力。
NN算法是一种简单的监督学习方法,常用于分类问题,它根据训练集中最接近(或几个最接近)的新实例进行预测。这里,MATLAB被用作实现这种算法的工具。 描述中的"基于MATLAB的1-NN和3—NN法实现0-9的数字识别,功能...
K-最近邻(K-Nearest Neighbors,简称K-NN)是一种简单而强大的非参数机器学习算法,它在分类和回归问题中都有广泛的应用。Python作为数据科学的主流语言,拥有丰富的库支持,使得实现K-NN算法变得相对容易。本文将...
在解决神经网络的权重和阈值初始化问题时,PSO能有效地搜索解决方案空间,寻找最优参数配置。通过迭代过程,每个粒子(代表可能的解)会更新其位置和速度,以接近全局最佳位置。 在描述中提到,“遗传算法初始化...
它在简单的分类问题和作为其他复杂网络的组成部分时仍然有用。 2. **LeNet**:由Yann LeCun等人在1998年提出的LeNet是最早的卷积神经网络之一,主要用于手写数字识别。LeNet的设计包含卷积层、池化层和全连接层,它...
如果dl2050nn与ZooKeeper集成,那么它可能提供了在Python环境中操作ZooKeeper的接口,使得Python开发者能够更方便地处理分布式系统的协调问题。 “分布式”标签表明dl2050nn可能设计用于处理分布式计算任务,如大...
在编程领域,C#是一种广泛使用的面向对象的编程语言,由...总之,“NN乘法表 C#源代码”项目是一个不错的实践C#编程和面向对象设计的起点,不仅可以帮助初学者巩固基础,也能让经验丰富的开发者锻炼解决问题的能力。
blink适用于7628nn路由器芯片固件
3. **测试**:可能包含测试用例,用于验证库的功能和性能,确保代码的正确性。 4. **示例**:可能有示例脚本或Jupyter Notebook,展示如何使用labml-nn构建和训练模型,这对于初学者尤其有用。 5. **安装脚本**:...
根据提供的文件内容,本文的主题集中在设计和开发国家数值风洞(NNW)软件自动化集成与测试平台。以下是对文件内容的知识点梳理和详细阐述。 ## 国家数值风洞(NNW)项目背景 国家数值风洞(National Numerical Wind...