分享

Spark Standalone 读取分机文件失败

shui0855 发表于 2017-2-15 11:17:07 [显示全部楼层] 回帖奖励 阅读模式 关闭右栏 7 6437
集群部署:
master: node0
slave: node0, node1, node2

数据存放:
node0: /home/uname/data/t_0.txt
node1: /home/uname/data/t_1.txt
node2: /home/uname/data/t_2.txt

进入spark-shell操作:
[mw_shl_code=scala,true]
val lines = sc.textFile("file:///home/uname/data/*.txt")
lines.count
[/mw_shl_code]

问题出现了:
在node1/node2的worker上出现找不到文件"/home/uname/data/t_0.txt"的异常


本意是统计所有节点(node0,node1,node2)上面的"/home/uname/data/*.txt"所有文件的总行数,上面的写法不对,应该怎么做才正确呢?


已有(7)人评论

跳转到指定楼层
desehawk 发表于 2017-2-15 11:49:31
本帖最后由 desehawk 于 2017-2-15 11:53 编辑

val lines = sc.textFile("file:///home/uname/data/*.txt")
改为下面:
val lines = sc.textFile("file:///home/uname/data")
或则
val lines = sc.textFile("file:///home/uname/data/*")试试

回复

使用道具 举报

shui0855 发表于 2017-2-15 11:54:52
desehawk 发表于 2017-2-15 11:49
val lines = sc.textFile("file:///home/uname/data/*.txt")
改为下面:
val lines = sc.textFile("file: ...

file:///home/uname/data
file:///home/uname/data/
file:///home/uname/data/*
file:///home/uname/data/*.txt
/home/uname/data
/home/uname/data/
/home/uname/data/*
/home/uname/data/*.txt
这些个写法都试过了的,应该不是path书写格式的问题

回复

使用道具 举报

arsenduan 发表于 2017-2-15 11:58:08
shui0855 发表于 2017-2-15 11:54
file:///home/uname/data
file:///home/uname/data/
file:///home/uname/data/*

你这是本地文件,在哪台机器上只能读取那台的吧。你把他们都放到一个机器上,并且在上面执行,在试试
回复

使用道具 举报

shui0855 发表于 2017-2-15 12:02:15
arsenduan 发表于 2017-2-15 11:58
你这是本地文件,在哪台机器上只能读取那台的吧。你把他们都放到一个机器上,并且在上面执行,在试试

是磁盘文件,但必须分开存储,目标数据是很庞大的,一台机子存不了,所以才想拆开来分别存放
回复

使用道具 举报

arsenduan 发表于 2017-2-15 12:03:16
shui0855 发表于 2017-2-15 12:02
是磁盘文件,但必须分开存储,目标数据是很庞大的,一台机子存不了,所以才想拆开来分别存放

放hdfs上
回复

使用道具 举报

shui0855 发表于 2017-2-15 13:03:42
本帖最后由 shui0855 于 2017-2-15 13:05 编辑

数据量大了,网络上传数据到hdfs也会很慢的,还不如直接用移动硬盘拷贝文件到目标机子的磁盘中来得快。
先别考虑去hdfs,理论上用分机存储的集群也是能完成的。
回复

使用道具 举报

arsenduan 发表于 2017-2-15 14:15:08
shui0855 发表于 2017-2-15 13:03
数据量大了,网络上传数据到hdfs也会很慢的,还不如直接用移动硬盘拷贝文件到目标机子的磁盘中来得快。
...

别的方法还真没有,楼主可以自己权衡。
可以移动硬盘或则放到hdfs
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条