我正在使用具有单节点集群的默认配置运行hadoop,并希望找到HDFS在本地存储文件的位置.
有任何想法吗?
谢谢.
我在HDFS上有一个目录目录,我想迭代这些目录.使用SparkContext对象有没有简单的方法来使用Spark?
我正在尝试使用以下指南在伪分布式配置中设置Hadoop版本0.20.203.0:
http://www.javacodegeeks.com/2012/01/hadoop-modes-explained-standalone.html
运行start-all.sh脚本后,我运行"jps".
我得到这个输出:
4825 NameNode
5391 TaskTracker
5242 JobTracker
5477 Jps
5140 SecondaryNameNode
Run Code Online (Sandbox Code Playgroud)
当我尝试使用以下方法向hdfs添加信息时:
bin/hadoop fs -put conf input
Run Code Online (Sandbox Code Playgroud)
我收到一个错误:
hadoop@m1a2:~/software/hadoop$ bin/hadoop fs -put conf input
12/04/10 18:15:31 WARN hdfs.DFSClient: DataStreamer Exception: org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /user/hadoop/input/core-site.xml could only be replicated to 0 nodes, instead of 1
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1417)
at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:596)
at sun.reflect.GeneratedMethodAccessor6.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:523)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1383)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1379)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:416)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1059)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1377)
at org.apache.hadoop.ipc.Client.call(Client.java:1030)
at …Run Code Online (Sandbox Code Playgroud) 我有一个Hadoop集群设置,并在一个通用的默认用户名"user1"下工作.我想将文件放入远程机器中的hadoop,而远程机器不是hadoop集群的一部分.我在远程计算机上配置了hadoop文件
hadoop dfs -put file1 ...
Run Code Online (Sandbox Code Playgroud)
从远程计算机调用,它将file1放在Hadoop集群上.
唯一的问题是我在远程计算机上以"user2"身份登录,并且没有给出我期望的结果.实际上,上述代码只能在远程机器上执行:
hadoop dfs -put file1 /user/user2/testFolder
Run Code Online (Sandbox Code Playgroud)
但是,我真正想要的是能够将文件存储为:
hadoop dfs -put file1 /user/user1/testFolder
Run Code Online (Sandbox Code Playgroud)
如果我尝试运行最后一个代码,hadoop会因访问权限而抛出错误.无论如何我可以在hadoop dfs命令中指定用户名吗?
我正在寻找类似的东西:
hadoop dfs -username user1 file1 /user/user1/testFolder
Run Code Online (Sandbox Code Playgroud)
谢谢
我正在尝试使用bin/spark-submit运行spark应用程序.当我在我的本地文件系统中引用我的应用程序jar时,它可以工作.但是,当我将我的应用程序jar复制到hdfs中的目录时,我得到以下异常:
警告:跳过远程jar hdfs:// localhost:9000/user/hdfs/jars/simple-project-1.0-SNAPSHOT.jar.java.lang.ClassNotFoundException:com.example.SimpleApp
这是命令:
$ ./bin/spark-submit --class com.example.SimpleApp --master local hdfs://localhost:9000/user/hdfs/jars/simple-project-1.0-SNAPSHOT.jar
我正在使用hadoop版本2.6.0,火花版本1.2.1
我正在尝试将大数据加载到HDFS,我有时会得到以下错误.任何想法为什么?
错误:
org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.hdfs.server.namenode.LeaseExpiredException: No lease on /data/work/20110926-134514/_temporary/_attempt_201109110407_0167_r_000026_0/hbase/site=3815120/day=20110925/107-107-3815120-20110926-134514-r-00026 File does not exist. Holder DFSClient_attempt_201109110407_0167_r_000026_0 does not have any open files.
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:1557)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkLease(FSNamesystem.java:1548)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.completeFileInternal(FSNamesystem.java:1603)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.completeFile(FSNamesystem.java:1591)
at org.apache.hadoop.hdfs.server.namenode.NameNode.complete(NameNode.java:675)
at sun.reflect.GeneratedMethodAccessor16.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:557)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1434)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1430)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1127)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1428)
at org.apache.hadoop.ipc.Client.call(Client.java:1107)
at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:226)
at $Proxy1.complete(Unknown Source)
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.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:82)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59)
at $Proxy1.complete(Unknown Source)
at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.closeInternal(DFSClient.java:3566)
at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.close(DFSClient.java:3481)
at …Run Code Online (Sandbox Code Playgroud) Hadoop有配置参数hadoop.tmp.dir,根据文档,它是" 其他临时目录的基础".我认为,这条路径指的是本地文件系统.
我将此值设置为/mnt/hadoop-tmp/hadoop-${user.name}.格式化namenode并启动所有服务后,我看到在HDFS上创建的路径完全相同.
这是否意味着, hadoop.tmp.dir是指HDFS上的临时位置?
我在EMR上运行配置单元,需要将一些文件复制到所有EMR实例.
我理解的一种方法是将文件复制到每个节点上的本地文件系统,另一种方法是将文件复制到HDFS但是我还没有找到一种简单的方法将stright从S3复制到HDFS.
最好的方法是什么?
我在用
hdfs dfs -put myfile mypath
Run Code Online (Sandbox Code Playgroud)
对于我得到的一些文件
put: 'myfile': File Exists
Run Code Online (Sandbox Code Playgroud)
谢谢!