标签: hdfs

从Java写入HDFS,"只能复制到0个节点而不是minReplication"

我已经下载并启动了Cloudera的Hadoop Demo VM for CDH4(运行Hadoop 2.0.0).我正在尝试编写一个将从我的Windows 7机器运行的Java程序(与运行VM的机器/操作系统相同).我有一个示例程序,如:

public static void main(String[] args) {
    try{
        Configuration conf = new Configuration();
        conf.addResource("config.xml");
        FileSystem fs = FileSystem.get(conf);
        FSDataOutputStream fdos=fs.create(new Path("/testing/file01.txt"), true);
        fdos.writeBytes("Test text for the txt file");
        fdos.flush();
        fdos.close();
        fs.close();
    }catch(Exception e){
        e.printStackTrace();
    }

}
Run Code Online (Sandbox Code Playgroud)

我的config.xml文件只定义了属性:fs.default.name = hdfs:// CDH4_IP:8020.

当我运行它时,我得到以下异常:

org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /testing/file01.txt could only be replicated to 0 nodes instead of minReplication (=1).  There are 1 datanode(s) running and 1 node(s) are excluded in this operation.
    at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget(BlockManager.java:1322)
    at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:2170)
    at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:471) …
Run Code Online (Sandbox Code Playgroud)

java hadoop hdfs

19
推荐指数
2
解决办法
2万
查看次数

合并hdfs文件

我在HDFS中有1000多个文件,其命名约定1_fileName.txtN_fileName.txt.每个文件的大小为1024 MB.我需要将这些文件合并为一个(HDFS)并保持文件的顺序.说5_FileName.txt应该只追加4_fileName.txt

执行此操作的最佳和最快方法是什么.

是否有任何方法可以在不复制数据节点之间的实际数据的情况下执行此合并?例如:获取此文件的块位置并在Namenode中创建具有这些块位置的新条目(FileName)?

hadoop hdfs

19
推荐指数
3
解决办法
4万
查看次数

Hadoop重命名文件

是否有一个简单的hadoop命令可以将文件名(在HDFS中)从旧名称更改为新名称?

hadoop file hdfs

19
推荐指数
1
解决办法
3万
查看次数

HDFS存储数据的位置

我试图了解hadoop在HDFS中存储数据的位置.我指的是配置文件即:core-site.xmlhdfs-site.xml

我设置的属性是:

通过上述安排,dfs.datanode.data.dir数据块应该存储在该目录中.它是否正确?

我提到了apache hadoop链接,从中我看到了这个:

  • core-default.xml: hadoop.tmp.dir- >其他临时目录的基础.

  • hdfs-default.xml dfs.datanode.data.dir - >确定DFS数据节点应在何处存储其块的本地文件系统.

    此属性的默认值为 - > file://${hadoop.tmp.dir}/dfs/data

由于我明确提供了dfs.datanode.data.dir(hdfs-site.xml)的值,它是否意味着数据将存储在该位置?如果是这样,将dfs/data添加到目录中${dfs.datanode.data.dir},特别是它会变成 - > /hadoop/hdfs/datanode/dfs/data

但是我没有看到这个目录结构被创建.

我在环境中看到的一个观察结果:

我看到在运行一些MapReduce程序之后,创建了这个目录,即: /hadoop/tmp/dfs/data正在创建.

因此,不确定数据是否存储在属性dfs.datanode.data.dir所建议的目录中.

有没有人有类似的经历?

configuration hadoop hdfs

19
推荐指数
1
解决办法
3万
查看次数

使用Apache Spark和Java将CSV解析为DataFrame/DataSet

我是新来的火花,我想使用group-by&reduce从CSV中找到以下内容(使用一行):

  Department, Designation, costToCompany, State
  Sales, Trainee, 12000, UP
  Sales, Lead, 32000, AP
  Sales, Lead, 32000, LA
  Sales, Lead, 32000, TN
  Sales, Lead, 32000, AP
  Sales, Lead, 32000, TN 
  Sales, Lead, 32000, LA
  Sales, Lead, 32000, LA
  Marketing, Associate, 18000, TN
  Marketing, Associate, 18000, TN
  HR, Manager, 58000, TN
Run Code Online (Sandbox Code Playgroud)

我想通过Department,Designation,State简化包含sum(costToCompany)TotalEmployeeCount的附加列的CSV

应得到如下结果:

  Dept, Desg, state, empCount, totalCost
  Sales,Lead,AP,2,64000
  Sales,Lead,LA,3,96000  
  Sales,Lead,TN,2,64000
Run Code Online (Sandbox Code Playgroud)

有没有办法使用转换和动作来实现这一点.或者我们应该进行RDD操作?

java hadoop hdfs apache-spark apache-spark-sql

19
推荐指数
2
解决办法
6万
查看次数

将数据写入Hadoop

我需要从外部源(如Windows框)将数据写入Hadoop(HDFS).现在我一直在将数据复制到namenode上,并使用HDFS的put命令将其摄取到集群中.在我浏览代码时,我没有看到用于执行此操作的API.我希望有人可以告诉我我错了,并且有一种简单的方法可以对外部客户端进行HDFS编码.

hadoop hdfs

18
推荐指数
4
解决办法
5万
查看次数

从pandas.HDFStore表中选择列

如何从pandas HDFStore中检索特定列?我经常处理非常大的数据集,这些数据集太大而无法在内存中操作.我想迭代地读取一个csv文件,将每个块附加到HDFStore对象中,然后处理数据的子集.我已经阅读了一个简单的csv文件,并使用以下代码将其加载到HDFStore中:

tmp = pd.HDFStore('test.h5')
chunker = pd.read_csv('cars.csv', iterator=True, chunksize=10, names=['make','model','drop'])
tmp.append('df', pd.concat([chunk for chunk in chunker], ignore_index=True))
Run Code Online (Sandbox Code Playgroud)

并输出:

In [97]: tmp
Out[97]:
<class 'pandas.io.pytables.HDFStore'>
File path: test.h5
/df     frame_table (typ->appendable,nrows->1930,indexers->[index])
Run Code Online (Sandbox Code Playgroud)

我的问题是如何从中访问特定列tmp['df']?该文档提到了一种select()方法和一些Term对象.提供的示例适用于小组数据; 然而,我太过新手,无法将其扩展到更简单的数据框案例.我的猜测是我必须以某种方式创建列的索引.谢谢!

python hdfs pandas

18
推荐指数
2
解决办法
2万
查看次数

Hadoop:Datanode进程被杀死

我目前正在使用Hadoop-2.0.3-alpha,之后我可以完美地使用HDFS(将文件复制到HDFS,从外部框架获得成功,使用webfrontend),在我的VM重新启动后,datanode进程正在停止过了一会儿.namenode进程和所有纱线进程都没有问题.我在另一个用户下的一个文件夹中安装了Hadoop,因为我还安装了Hadoop 0.2,它也运行良好.看一下所有datanode进程的日志文件,我得到了以下信息:

2013-04-11 16:23:50,475 WARN org.apache.hadoop.util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
2013-04-11 16:24:17,451 INFO org.apache.hadoop.metrics2.impl.MetricsConfig: loaded properties from hadoop-metrics2.properties
2013-04-11 16:24:23,276 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: Scheduled snapshot period at 10 second(s).
2013-04-11 16:24:23,279 INFO org.apache.hadoop.metrics2.impl.MetricsSystemImpl: DataNode metrics system started
2013-04-11 16:24:23,480 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Configured hostname is user-VirtualBox
2013-04-11 16:24:28,896 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Opened streaming server at /0.0.0.0:50010
2013-04-11 16:24:29,239 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: Balancing bandwith is 1048576 bytes/s
2013-04-11 16:24:38,348 INFO org.mortbay.log: Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog …
Run Code Online (Sandbox Code Playgroud)

hadoop hdfs

18
推荐指数
3
解决办法
3万
查看次数

"HDFS缺少随机读写访问"是什么意思?

任何文件系统都应提供API来访问其文件和目录等.

那么,"HDFS缺少随机读写访问"是什么意思?

所以,我们应该使用HBase.

hadoop hbase hdfs

18
推荐指数
1
解决办法
6907
查看次数

问题在Yarn Cluster上运行Spark Job

我想在Hadoop YARN集群模式下运行我的spark Job ,我使用以下命令:

spark-submit --master yarn-cluster 
             --driver-memory 1g 
             --executor-memory 1g
             --executor-cores 1 
             --class com.dc.analysis.jobs.AggregationJob
               sparkanalitic.jar param1 param2 param3
Run Code Online (Sandbox Code Playgroud)

我收到错误,请提出错误,命令是否正确.我正在使用CDH 5.3.1.

Diagnostics: Application application_1424284032717_0066 failed 2 times due 
to AM Container for appattempt_1424284032717_0066_000002 exited with  
exitCode: 15 due to: Exception from container-launch.

Container id: container_1424284032717_0066_02_000001
Exit code: 15
Stack trace: ExitCodeException exitCode=15: 
    at org.apache.hadoop.util.Shell.runCommand(Shell.java:538)
    at org.apache.hadoop.util.Shell.run(Shell.java:455)
    at org.apache.hadoop.util.Shell$ShellCommandExecutor.execute(Shell.java:702)
    at org.apache.hadoop.yarn.server.nodemanager.DefaultContainerExecutor.launchContainer(DefaultContainerExecutor.java:197)
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:299)
    at org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:81)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)  

Container exited with a non-zero exit …
Run Code Online (Sandbox Code Playgroud)

hadoop hdfs cloudera hadoop-yarn apache-spark

18
推荐指数
2
解决办法
3万
查看次数