Articles of hadoop

Hadoop安装:namenode无法启动

目前我正在尝试在我的ubuntu 14.10(32位utopic)上安装hadoop-2.6.0。 我遵循这里的指示: Install Apache Hadoop on Debian 9 / Ubuntu 16.04 / CentOS 7 (Single Node Cluster) 但是,当我尝试格式化namenode时,namenode无法启动。 这是当我尝试做hdfs或hadoop namenode -format时,我一直收到的: 15/04/11 16:32:13 FATAL namenode.NameNode: Fialed to start namenode java.lang.IllegalArgumentException: URI has an authority component at java.io.File.<init>(File.java:423) at org.apache.hadoop.hdfs.server.namenode.NNSStorage.getStorageDirectory(NNStorage.java:329) at org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournals(FSEditLog.java: 270) at org.apache.hadoop.hdfs.server.namenode.FSEditLog.initJournalsForWrite(FSEditLog.java:241) at org.apache.hadoop.hdfs.server.namenode.NameNode.format(NameNode.java:935) at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1379) at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1504) 15/04/11 16:32:13 INFO util.ExitUtil: […]

如何访问Hadoop HDFS中的文件?

我在我的Hadoop HDFS中有一个.jar文件(包含一个我想要修改的Java项目),我想在Eclipse中打开它。 当我键入hdfs dfs -ls /user/…我可以看到.jar文件存在 – 但是,当我打开Eclipse并尝试导入它时,我似乎无法在任何地方find它。 我在我的文件系统中看到一个hadoop / hdfs文件夹,它将我带到2个文件夹; namenode和namesecondary – 这些都没有我正在寻找的文件。 有任何想法吗? 我一直坚持这一点。 在此先感谢您的帮助。

目录中的子目录数量?

如何在HDFS中查找指定目录下的子目录数量? 当我做hadoop fs -ls /mydir/ ,我得到一个Java堆空间的错误,因为目录太大,但我感兴趣的是该目录中的子目录的数量。 我试过了: gsamaras@gwta3000 ~]$ hadoop fs -find /mydir/ -maxdepth 1 -type d -print| wc -l find: Unexpected argument: -maxdepth 0 我知道该目录不是空的,因此0是不正确的: [gsamaras@gwta3000 ~]$ hadoop fs -du -s -h /mydir 737.5 G /mydir

如何检查Hadoop守护进程是否正在运行?

什么是简单的命令来检查Hadoop守护进程是否正在运行? 例如,如果我想弄清楚为什么HDFS没有正确设置,我想知道一个方法来检查是否namemonode / datanode / jobtracker / tasktracker正在这台机器上运行。 有没有什么办法可以快速检查它,而无需查看日志或使用ps(在Linux上)?

程序的hadoop启动错误:PriviledgedActionException

我写了下面的程序 using namespace std; #include "hadoop/Pipes.hh" #include "hadoop/TemplateFactory.hh" #include "hadoop/StringUtils.hh" #include "libpq-fe.h" extern "C" { #include "traverser.h" } class IndexMap:public HadoopPipes::Mapper { public: IndexMap(HadoopPipes::TaskContext & context) { } void map(HadoopPipes::MapContext & context) { std::vector<std::string> paths = HadoopUtils::splitString(context.getInputValue(), "rn"); unsigned int k = 4; unsigned int l = 0; string concatpaths[k]; if (paths.size() % k == […]

线程“main”中的exceptionjava.lang.NoClassDefFoundError:org / apache / hadoop / util / PlatformName

我知道这个例外有很多post,但我无法解决这个问题。 类path必须被编辑,我认为要解决它。 我试图在hadoop基础结构中运行一个名为DistMap的程序。 这是我得到的错误。 Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.util.PlatformName at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could not find the main class: org.apache.hadoop.util.PlatformName. Program will exit. Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/fs/FsShell Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.fs.FsShell at java.net.URLClassLoader$1.run(URLClassLoader.java:202) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:190) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) at java.lang.ClassLoader.loadClass(ClassLoader.java:247) Could […]

Apache Pig:使用hadoop fs -text加载显示正常的文件

我有名为part-r-000 [0-9] [0-9]并包含制表符分隔字段的文件。 我可以使用hadoop fs -text part-r-00000来查看它们,但是无法使用pig加载它们。 我试过了: x = load 'part-r-00000'; dump x; x = load 'part-r-00000' using TextLoader(); dump x; 但那只会给我垃圾。 如何使用猪查看文件? 可能相关的是我的hdfs目前仍在使用CDH-2。 此外,如果我将文件下载到本地并运行file part-r-00000它说part-r-00000: data ,我不知道如何解压缩到本地。

Hadoop:«错误:JAVA_HOME未设置»

我试图在Ubuntu 11.10上安装Hadoop。 我把文件conf/hadoop-env.sh的JAVA_HOMEvariables设置为: # export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk 然后我执行这些命令(独立操作): $ mkdir input $ cp conf/*.xml input $ bin/hadoop jar hadoop-examples-*.jar grep input output 'dfs[az.]+' $ cat output/* 但执行第三个命令时出现以下错误: 错误:未设置JAVA_HOME JAVA_HOMEvariables设置不正确?

在Python中更改用户

我正在写一个简单的脚本,重新启动一个hadoop奴隶。 在脚本中,我必须以root用户身份进行一些初始更改。 之后,我必须更改为用户“hadoop”并执行一组命令。 我使用os.system来运行命令,但我怀疑它是否工作正常。 例如: uid=pwd.getpwnam('hadoop')[2] os.setuid(uid) os.system('whoami') os.chdir('/home/hadoop/hadoop/') os.system('bin/hadoop-daemon.sh stop tasktracker') 再次,我必须以root身份执行一些命令,并再次成为用户“hadoop”并执行: os.system('bin/hadoop-daemon.sh stop tasktracker') 我在这里有三个问题, os.system是我可以用来发行linux命令的最好命令吗? 我可以通过上面的命令从root用户更改为用户hadoop,但我无法更改为root用户(我可以理解,如果他们允许这样做会有安全问题,我想知道是否有任何可能做到这一点,至less通过传递密码)? os.setuid()是否工作? whoami打印用户hadoop但进程“tasktracker”不停止使用这些命令,但如果我手动执行相同的命令,它工作正常(手动尝试出来时,我使用“su hadoop”而不是setuid)。 感谢你的帮助。 Sethu

java.io.IOException:在Hadoop二进制文件中找不到可执行文件\ bin \ winutils.exe

$ bin/start-hbase.sh 2015-07-01 19:21:34,971 ERROR [main] util.Shell: Failed to locate the winutils binary in the hadoop binary path java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries. at org.apache.hadoop.util.Shell.getQualifiedBinPath(Shell.java:355) at org.apache.hadoop.util.Shell.getWinUtilsPath(Shell.java:370) at org.apache.hadoop.util.Shell.<clinit>(Shell.java:363) at org.apache.hadoop.util.StringUtils.<clinit>(StringUtils.java:78) at org.apache.hadoop.conf.Configuration.getStrings(Configuration.java:1699) at org.apache.hadoop.hbase.zookeeper.ZKConfig.makeZKProps(ZKConfig.java:113) at org.apache.hadoop.hbase.zookeeper.ZKServerTool.main(ZKServerTool.java:45)