08 2016 档案
摘要:[TOC] 标识符 可用的字符 处理括号类字符,分隔符之外,其他所有的可打印的ASCII字符,如字母,数字,下划线和美元符号($)均可出现在Scala标识符中 插入符包括了(,) [,] {,and} 分隔符包括 \` ' " . ; ,等 Scala还允许在标识符中使用编码在 \u0020到\u0
阅读全文
摘要:[TOC] Spark:一个独立应用 关于构建 Java和Scala 在Java和Scala中,只需要给你的应用添加一个对于spark core的Maven依赖. Python 在Python中,可以把应用写成脚本,然后使用Spark自带的bin/spark submit脚本来运行.spark su
阅读全文
摘要:[TOC] 保留字 | 保留字 | 说明 | | | | | abstract | 抽象声明 | | case | match表达式中的case子句;定义一个case类 | | catch | 捕捉抛出的异常 | | class | 声明一个类 | | def | 定义一个方法 | | do | 用
阅读全文
摘要:Spark:使用Spark Shell的两个示例 Python 行数统计 注意: 使用的是Hadoop的HDFS作为持久层,需要先配置Hadoop 命令行代码 如果运行出错,可以排查如下情况: Spark没有运行 没有放在对应的文件 结果示例 Scala 行数统计 命令及结果示例
阅读全文
摘要:Spark工作机制 主要模块 调度与任务分配 I/O模块 通信控制模块 容错模块 Shuffle模块 调度层次 应用 作业 Stage Task 调度算法 FIFO FAIR(公平调度) Spark应用执行机制 总览 Spark应用提交后经历了一系列的转换,最后成为Task在每个节点上执行. RDD
阅读全文
摘要:Spark:控制日志输出级别 终端修改 在 终端可使用下面命令来改变日志级别 修改日志设置文件 通过调整日志的级别来控制输出的信息量.减少 使用过程中在终端显示的日志. 切换当前路径到Spark安装路径 拷贝一份日志设置文件的模板文件 找到下面一行内容 改为如下 `log4j.rootCategor
阅读全文
摘要:[TOC] Spark计算模型 Spark程序模型 一个经典的示例模型 中的 函数从HDFS读取日志文件,输出变量 RDD中的 函数过滤带有'ERROR'的行,输出 (一个RDD) RDD中的 函数返回"ERROR"的行数: 小结 用户程序对RDD通过多个函数进行操作,将RDD进行转换 BlockM
阅读全文
摘要:安装Hadoop及Spark(Ubuntu 16.04) 安装JDK 下载jdk(以jdk 8u91 linux x64.tar.gz为例) 新建文件夹 解压下载的jdk文件并移动到新建的文件夹下 进入jvm文件夹并重命名解压出来的文件夹 添加环境变量 使配置生效 测试 安装Scala 类似于jdk
阅读全文
摘要:Ubuntu 16.04 几个国内更新源 如何更改源 可以在软件更新中选择源 使用如下命令更改(修改前先备份): 东北大学 清华大学 阿里云
阅读全文
摘要:Spark简介 [TOC] Spark是什么 Spark是基于内存计算的大数据并行计算框架 Spark是MapReduce的替代方案 Spark与Hadoop Spark是一个计算框架,而Hadoop中包含计算框架MapReduce和分布式文件系统HDFS,Hadoop更广泛地说还包括在其生态系统上
阅读全文
摘要:Hadoop权威指南:MapReduce应用开发 [TOC] 一般流程 1. 编写map函数和reduce函数 2. 编写驱动程序运行作业 用于配置的API Hadoop中的组件是通过Hadoop自己的配置API来配置的 一个 类的实例代表配置属性及其取值的一个集合 从资源(XML文件)中读取属性值
阅读全文
摘要:InputFormat和RecordReader Hadoop提出了InputFormat的概念 org.apache.hadoop.mapreduce包里的InputFormat抽象类提供了如下列代码所示的两个方法 这些方法展示了InputFormat类的两个功能: 将输入文件切分为map处理所需
阅读全文
摘要:Writable 和 WritableComparable接口 Writable接口 Writable接口的主要目的是,当数据在网络上传输或从硬盘读写时,提供数据的序列化和反序列化机智 所有用作mapper或reducer输入或输出的数据类型都必须实现这个接口 Comparable接口 用作键的数据
阅读全文
摘要:Hadoop权威指南:通过FileSystem API读取数据 [TOC] 在Hadoop中,FileSystem是一个通用的文件系统API 获取FileSystem实例的几个静态方法 Configuration对象封装了客户端或服务器的配置,通过设置配置文件读取类路径来实现 第一种方法返回的是默认
阅读全文
摘要:[TOC] Hadoop权威指南:从Hadoop URL读取数据 使用java.net.URL对象从Hadoop文件系统读取文件 实现类似linux中cat命令的程序 文件名 程序代码 编译 运行 说明 需要运行在配置hadoop的linux系统上 编译前,需要设置CLASSPATH "点击查看"
阅读全文
摘要:Hadoop权威指南:压缩 [TOC] 文件压缩的两个好处: 减少储存文件所需要的磁盘空间 加速数据在网络和磁盘上的传输 压缩格式总结: | 压缩格式 | 工具 | 算法 | 文件扩展名 | 是否可切分 | | | | | | | | DEFLATE | 无 | DEFLATE | .deflate
阅读全文
摘要:Hadoop权威指南:数据完整性 [TOC] 常用的错误检测码是CRC 32(循环冗余校验) HDFS的数据完整性 HDFS会对写入的所有数据计算校验和,并在读取数据时验证校验和 datanode负责在收到数据后储存该数据及其验证校验和 客户端从datanode读取数据时也会验证校验和,与datan
阅读全文
摘要:Hadoop权威指南:HDFS Hadoop存档 [TOC] 每个文件按块方式存储, 每个块的元数据存储在namenode的内存中 Hadoop存档文件或HAR文件是一个更高效的文件存档工具,它将文件存入HDFS块,在减少内存使用的同时,允许对文件进行透明地访问 Hadoop存档文件可以用作MapR
阅读全文
摘要:Hadoop权威指南:通过distcp并行复制 distcp是一个分布式复制程序,改程序可以从Hadoop文件系统间复制大量数据,也可以将大量的数据复制到Hadoop中 distcp的典型应用是在两个HDFS集群间传输数据 默认情况下, distcp会跳过目标路径下已经存在的文件,可以通过overw
阅读全文
摘要:Hadoop权威指南:HDFS 数据流 [TOC] 剖析文件读取 1. 客户端通过调用 对象的 方法来打开希望读取的文件,对于HDFS来说, 这个对象是分布式文件系统的一个实例 2. 通过使用RPC来调用 ,以确定文件起始块的位置. 对于每一个块, 返回存有该块副本的 的地址, 这些datanode
阅读全文
摘要:Hadoop权威指南:HDFS 目录,查询文件系统,删除文件 [TOC] 目录 实例提供了创建目录的方法 这个方法一次性创建所有必要但还没有的父目录 通常不需要显式创建一个目录,因为 调用 方法写入文件时会自动创建所有父目录 查询文件系统 文件元数据:FileStatus 类封装了文件系统中文件和目
阅读全文
摘要:Hadoop权威指南:HDFS 写入数据 FileSystem类有一系列的新建文件的方法.最简单的方法是给准备建的文件指定一个Path对象,然后返回一个用于写入数据的输出流: 此方法有多个重载版本, 指定是否需要覆盖现有文件,文件备份数量,写入文件时所用缓冲区大小,文件块大小及文件权限. 方法能够为
阅读全文
摘要:Hadoop权威指南:FSDataInputStream对象 FileSystem对象中的open()方法返回的是FSDataInputStream对象, 而不是标准的java.io类对象,这个类是继承了java.io.DataInputStream接口的一个特殊类,并支持随机访问,可以从流中的任意
阅读全文