C程序访问Hadoop运行时遇到的各种问题以及解决方案

2019-03-28 13:01|来源: 网络

C程序访问Hadoop运行时遇到的各种问题以及解决方案

问题1:当编译通过后,运行时,会出现:

hadoop@springwater-Aspire-4743:/usr/local/hadoop/test$ ./test
Exception in thread "main" java.io.IOException: Mkdirs failed to create /my
 at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:378)
 at org.apache.hadoop.fs.ChecksumFileSystem.create(ChecksumFileSystem.java:364)
 at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:555)
 at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:536)
Call to org.apache.hadoop.conf.FileSystem::create((Lorg/apache/hadoop/fs/Path;ZISJ)Lorg/apache/hadoop/fs/FSDataOutputStream;) failed!
Failed to open /my/t.txt for writing!

原因分析,读写权限不够。

解决方法:

sudo ./test

可是又有新的问题:

hadoop@springwater-Aspire-4743:/usr/local/hadoop/test$ sudo ./test
Environment variable CLASSPATH not set!
Environment variable CLASSPATH not set!
Failed to open /my/t.txt for writing!

问题2: sudo env发现 我在~/.bashrc中定义的环境变量CLASSPATH没有被sudo继承。

所以sudo ./test会显示CLASSPATH没有定义

解决方法:

在/etc/sudoers中修改:

 Defaults    env_reset

 为:

 Defaults    !env_rese

问题3:当我sudo chmod 777 /etc/sudoers,修改之后,

再 sudo chmod 777 /etc/sudoers发生错误:

springwater@springwater-Aspire-4743:/etc$ sudo chmod 440 sudoers
sudo: /etc/sudoers 的模式为 0777,应为 0440
sudo: 没有找到有效的 sudoers 资源,退出
sudo: 无法初始化策略插件

解决方法:
 
su root
 
进入root模式修改即可。

更多Hadoop相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

相关问答

更多

非运行时分配解决方案 - ArrayList(Non runtime allocation solution - ArrayList)

我看到ArrayList实现速度很慢,导致时滞... 如果你看到这一点,你就错误地解释了证据并跳到无理的结论。 ArrayList不会很慢,并且不会导致时滞......除非您以特别欠佳的方式使用该类。 数组列表分配内存的唯一时间是创建列表,添加更多元素,复制列表或调用iterator() 。 在创建数组列表时,会创建2个java对象; 一个用于ArrayList,另一个用于其后备数组。 如果使用initialCapacity参数并给出适当的值,则可以安排后续更新不会分配内存。 添加或插入元素时,数 ...

在WPF中的同一解决方案中,在运行时在不同的类库项目中更改资源文件(Change Resource file at runtime in different class library project in same solution in WPF)

我完成了这样的工作: var rDictionary = new ResourceDictionary(); rDictionary.Source = new Uri(string.Format("pack://application:,,,/Ferhad.Wpf.SystemStyles;component/OStyles.xaml"), UriKind.Absolute); this.Resources.MergedDictionaries.Add(rDictionary); I ...

wro4j - 使用运行时解决方案构建所有组(wro4j - build all groups using runtime solution)

一种可能的解决方案是创建一个自定义的requestHandler ,它将遍历所有组并触发处理。 您必须在应用程序启动期间调用该请求处理程序。 如果您希望开箱即用此功能,请随时打开一个问题 。 A possible solution is to create a custom requestHandler which would iterate through all the groups and would trigger processing. You would have to invoke ...

具有O(n)运行时的堆栈溢出解决方案(Stack overflow solution with O(n) runtime)

如果不比常数时间替代方案更好,摊销的固定时间在实践中通常同样好。 生成一个大小为原始数组的两倍的新数组。 将原始堆栈中的所有元素以相同的顺序复制到新数组。 对于堆栈实现来说,这实际上是一个非常体面和可敬的解决方案,因为它具有良好的引用局部性,并且重新分配和复制的成本被分摊到几乎可以忽略不计的程度。 Java中的ArrayList或C ++中的std::vector “可扩展数组”的大多数通用解决方案依赖于这种类型的解决方案,尽管它们的大小可能不会完全加倍(许多std::vector实现将其大小增加 ...

以下代码的最佳解决方案可减少运行时间(Optimal Solution for the following code to reduce running time)

(这看起来有点像家庭作业,或者是Java初学者的私人练习,所以我不想给你完整的代码,只是想法或算法,所以你可以自己提出实际的实现。) 没有必要列举所有的排列,看看其中一个是否是回文。 您需要做的就是计算单词中的所有字母 ,看看最多只有一个字母是否有奇数出现。 以回文racecar为例。 它可以被视为有三个部分: rac e car 。 第一和第三部分中的字母是相同的,因此每个字母必须具有偶数。 第二部分只有一种字母,但它可以重复多次。 所以,基本算法是这样的: 创建一个字典, map ,用于计算字 ...

当UWP解决方案包含Windows运行时组件(C#)时,WACK失败(WACK fails when UWP solution includes Windows Runtime Component (C#))

它实际上是受支持的场景 - 您可以将此类应用程序发布到Windows Store,并且错误只是WACK部分的错误,可以忽略。 It is actually supported scenario - you can publish such apps to Windows Store just fine and error is just a bug on the WACK part and can be ignored.

在Hadoop中实现故障注入有哪些解决方案[关闭](What are the solutions to implementing the fault-injection in Hadoop [closed])

Hadoop实际上有一个故障注入框架。 看到这个 。 Hadoop actually has a fault injection framework. See this.

运行时错误'1004',已经研究并尝试了几个推荐的解决方案无济于事(Run Time Error '1004', have researched and tried several recommended solutions to no avail)

这应该工作: formulaTest = "=IF(" & Numbering.Address(False, False) & "<" & Approval.Address & ",""""," & PeakShare.Address & "*" & RampUp.Address & ")" 正如@Comintern指出的那样,您需要使用""""在公式中包含双空语音标记。 我还删除了*旁边的空格 This should work: formulaTest = "=IF(" & Numbering ...

在本地主机上运行时,从sitefinity项目中的url中删除解决方案/文件夹名称(Remove solution/folder name from url in sitefinity project while running on localhost)

只需在IIS中创建一个新网站并将其指向项目文件夹即可。 然后使用该站点的主机头来浏览它,例如localhost,甚至像mysite.localtest.me(* .localtest.me将指向127.0.0.1) Just create a new website in IIS and point it to the project folder. Then browse it using the host header of the site, e.g. localhost or even s ...

在构建时或运行时获取解决方案路径(get solution path at build time or runtime)

您可以做的是修改项目文件并添加MsBuild目标 。 目标可以使用自定义内联任务 ,该任务的源代码已集成到项目文件中。 所以要添加这个任务: 1)卸载项目(右键单击项目节点,选择“卸载项目”) 2)编辑项目文件(右键单击项目节点,选择“编辑”) 3)将以下内容添加到项目文件中(例如到最后)并重新加载它,现在在构建时,配置文件将相应地进行修改。 <Project ...> ... <Target Name="AfterBuild"> <RegexReplace FilePat ...