最近接触到大数据,对于Skpark和Hadoop的料及都停留在第一次听到这个名词时去搜一把看看大概介绍免得跟不上时代的层次。

在实际读了点别人的代码,又自己写了一些之后,虽然谈不上理解加深,至少对于大数据技术的整体布局有了更清晰的认识。

HDFS主要用来存储文件系统,虽然Spark有自己的RDD,但是似乎并未被启用。我需要的数据,是通过Spark服务启动的计算程序,写入HDFS中的。

#这结构怎么看都感觉有点怪。

Spark支持Java、Scala和Python开发,对我来说是个好事。唯一的问题就是如何从HDFS中读取我需要的数据。

Python的HDFS相关包有很多,我使用的是hdfs,根据官方文档的说法,同时支持hdfs和WebHDFS,默认创建client的方式好像是WebHDFS,

需要通过datanode进行文件操作,而HDFS则是通过namenode进行文件操作,在这里卡了很久,也换过snakebite等包,直到把端口换成datanode,才正常连接。

※参照文档:http://fatkun.com/2014/11/httpfs-and-webhdfs.html

hdfs包的安装命令:

sudo pip install hdfs

启动hdfs:

>>> from hdfs.client import Client

>>> client = Client("http://localhost:50070")  # 50070: Hadoop默认namenode

>>> dir(client)

['__class__', '__delattr__', '__dict__', '__doc__', '__format__', '__getattribute__', '__hash__', '__init__', '__module__', '__new__', '__reduce__', '__reduce_ex__', '__registry__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', '_append', '_append_1', '_create', '_create_1', '_delete', '_get_content_summary', '_get_file_checksum', '_get_file_status', '_get_home_directory', '_list_status', '_mkdirs', '_open', '_rename', '_request', '_session', '_set_owner', '_set_permission', '_set_replication', '_set_times', '_timeout', 'checksum', 'content', 'delete', 'download', 'from_options', 'list', 'makedirs', 'parts', 'read', 'rename', 'resolve', 'root', 'set_owner', 'set_permission', 'set_replication', 'set_times', 'status', 'upload', 'url', 'walk', 'write']

>>>

其中用到的方法有:

walk() 类似os.walk,返回值也是包含(路径,目录名,文件名)元素的数组,每层迭代。

read() 类似file.read,官方文档的说法是client.read必须在with块里使用:

with client.read(filepath) as fs:

content = fs.read()

write() 写文件,同样需要在with块中使用:

client.write(filepath, data=data_str, encoding='utf-8')

还有一种写法:

from hdfs.hfile import Hfile

hfile = Hfile(hostname, port, path, mode='w')

hfile.write(data)

hfile.close()

hfile = Hfile(hostname, port, path)

data = hfile.read()

hfile.close()

在filepath中,如果有不存在的路径,会被直接创建出来。

目前用到的只有这些,后面如果涉及新的方法或者模块,会继续增加。

※ 关于Spark部署任务

Spark部署任务的命令,是spark-submit,语法是

./bin/spark-submit \

--class

--master \

--deploy-mode \

--conf = \

... # other options

\

[application-arguments]

默认可以直接使用Java程序的jar包,Scala是基于Java的,同样可以打包成jar,对于python文件,需要在处使用--py-files定义,单个文件可以直接写出,多个文件的话可以打包成.zip或.egg。

参考:http://spark.apache.org/docs/latest/submitting-applications.html

python读取hadoop库数据_使用Python访问HDFS相关推荐

  1. python 读取地震道头数据_【Python】OGR库(1):读取矢量数据

    OGR库是一个非常流行的处理地理空间矢量数据的开源库.它可以读取丰富的数据格式,允许用户进行几何处理.属性表操作.数据分析,是个非常强大的开源GIS库.目前OGR已集成在GDAL库中,可以说是GIS的 ...

  2. python读取网络端口数据_在Python中从SNMP端口获取数据

    我专门尝试使用PySNMP库从python中的SNMP端口读取数据.我有兴趣仅通过此库获取数据.这是因为我正在从NetSNMP迁移到PySNMP. 这是我为NetSNMP编写的工作代码,它实际上为我提 ...

  3. python 读取地震道头数据_使用python获取(宜宾市地震信息)地震信息

    6月17日22分25分,四川省宜宾市长宁县发生了6.0级地震,成都高新减灾研究所与应急管理部门联合建设的大陆地震预警网成功预警本次地震,提前10秒向宜宾市预警,提前61秒向成都预警. 虽然自己还不能写 ...

  4. python二进制文件 删除尾部数据_在Python中读取和切片二进制数据文件的最快方法...

    我有一个处理脚本,用于提取"uint16"类型的二进制数据文件,并一次以6400块的形式进行各种处理.该代码最初是用Matlab编写的,但由于分析代码是用 Python编写的,我们 ...

  5. python读取oracle数据库性能_用python对oracle进行简单性能测试

    一.概述 dba在工作中避不开的两个问题,sql使用绑定变量到底会有多少的性能提升?数据库的审计功能如果打开对数据库的性能会产生多大的影响?最近恰好都碰到了,索性做个实验. sql使用绑定变量对性能的 ...

  6. python爬取餐饮数据_使用 Python 分析全国所有必胜客餐厅

    本文原创发布于微信公众号「极客猴」,欢迎关注第一时间获取更多原创分享 在之前的一篇文章中,我讲到如何爬取必胜客官网中全国各大城市餐厅的信息.虽然餐厅数据信息被抓取下来,但是数据一直在硬盘中" ...

  7. python读取raw图片文件_在python下读取并展示raw格式的图片实例

    raw文件可能有些人没有,因此,先用一张图片创建一个raw格式的文件(其实可以是其他类型的格式文件) import numpy as np import cv2 img = cv2.imread('c ...

  8. 利用python从网页查找数据_利用Python模拟淘宝的搜索过程并对数据进行可视化分析...

    数据挖掘入门与实战 公众号: datadw 本文讲述如何利用Python模拟淘宝的搜索过程并对搜索结果进行初步的数据可视化分析. 搜索过程的模拟:淘宝的搜索页面有两种形式, 一种形式是, 2019/2 ...

  9. python 读取数据库内存爆_解决python读取几千万行的大表内存问题

    Python导数据的时候,需要在一个大表上读取很大的结果集. 如果用传统的方法,Python的内存会爆掉,传统的读取方式默认在内存里缓存下所有行然后再处理,内存容易溢出 解决的方法: 1)使用SSCu ...

最新文章

  1. 近期活动盘点:清华严飞大数据探寻中国文脉讲座、2019前沿信息科技创新论坛...
  2. 文本编辑器创建工具栏
  3. KNN实现“手写识别”
  4. 阿里云服务器怎么去掉tomcat的8080端口
  5. 大数据互联网架构阶段 Java爬虫
  6. windows下通过eclipse进行远程执行出错:Permission denied:
  7. redis基础一_常用指令
  8. 【活动(广州)】office365的开发者训练营
  9. Taro+react开发(28)本地用require线上不必
  10. php sql获取字段名称,mssql获取字段名及注释,以及一系列问题
  11. u-boot中断功能初步分析之---------按键中断
  12. PopClip翻译插件开发记录-microsoft_translate.popclipext
  13. 数据挖掘实战 —— 泰坦尼克号
  14. 怎么开启远程重启服务器,怎么正确重启服务器
  15. Android基础夯实--重温动画(四)之属性动画 ValueAnimator详解
  16. 我37岁,从互联网大厂跳槽到国企后,发现没有一劳永逸的工作。。。
  17. 阿里巴巴分布式消息系统的实践之路
  18. 应用程序清单 Manifest 中各种 UAC 权限级别的含义和效果
  19. 计算机黑屏修改设置,电脑黑屏密码怎么设置
  20. SpringCloud微服务实战——搭建企业级开发框架(二十七):集成多数据源+Seata分布式事务+读写分离+分库分表

热门文章

  1. 进程与线程的一个简单解释(转)
  2. html5 Canvas API
  3. Linux改变文件和目录权限-chmodchown
  4. 程序员|那天下班回家,突然民警叫住我....
  5. 10 个利用Eclipse调试Java的常见技巧
  6. 从功能、交互、性能全方位解读,BI工具FineBI4.0.2测评报告
  7. 蚊子132 各方人员都“照顾”到位则业务会很乐观
  8. 虽然在修行初期的飞鸽传书
  9. 局域网聊天软件的设计思路
  10. 局域网聊天的本质是函数