大数据与云计算
文章平均质量分 75
汤高
喜欢开源的框架技术、乐于研究其底层源码,把个人从学习到工作中用到的所有技术梳理总结,也分享给所有爱学习新技术的朋友们,相互交流,一起进步
展开
-
自定义分区、数据类型、排序、分组
自定义分区、数据类型、排序、分组/** * * @author 自定义数据类型 键对象 * */public class KeyPair implements WritableComparable<KeyPair> { private int year; private double hot; public int getYear() { ret原创 2016-06-15 10:40:50 · 1062 阅读 · 0 评论 -
Shuffle过程详解
Shuffle过程详解 Shuffle过程是MapReduce的核心,最近看了很多资料,网上说法大体相同,但有些地方有一点点出入,就是各个阶段的执行顺序总个shuffle过程可以看做是从map输出到reduce输入的这个中间过程,在这个中间过程中,经过了一系列的步骤 下面看看官方给出的图 Map端下面是我画的一张图 1.In原创 2016-06-15 10:30:31 · 12776 阅读 · 2 评论 -
storm的数据流组
数据流组设计一个拓扑时,你要做的最重要的事情之一就是定义如何在各组件之间交换数据(数据流是如何被bolts消费的)。一个数据流组指定了每个bolt会消费哪些数据流,以及如何消费它们。NOTE:一个节点能够发布一个以上的数据流,一个数据流组允许我们选择接收哪个。数据流组在定义拓扑时设置··· builder.setBolt("word-normalizer",转载 2016-07-23 16:04:22 · 3330 阅读 · 1 评论 -
storm概述
1.Storm是什么,应用场景有哪些? 2.Storm有什么特点? 3.spout发出的消息后续可能会触发产生成千上万条消息,Storm如何跟踪这条消息树的? 4.Storm本地模式的作用是什么?一、实时流计算互联网从诞生的第一时间起,对世界的最大的改变就是让信息能够实时交互,从而大大加速了各个环节的效率。正因为大家对转载 2016-07-23 14:58:32 · 1130 阅读 · 0 评论 -
Spark 算子
RDD算子分类,大致可以分为两类,即:Transformation:转换算子,这类转换并不触发提交作业,完成作业中间过程处理。Action:行动算子,这类算子会触发SparkContext提交Job作业。一:Transformation:转换算子1.map map是对RDD中的每个元素都执行一个指定的函数来产生一个新的RDD。任何原RDD中的元素在新RDD中都有且只有一个元素与之对应。举例:原创 2016-06-03 22:07:35 · 10421 阅读 · 0 评论 -
Spark安装
我的安装版本是spark-1.6.1-bin-hadoop2.6.tgz 这个版本必须要求jdk1.7或者1.7以上安装spark必须要scala-2.11 版本支撑 我安装的是scala-2.11.8.tgz tg@master:/software$ tar -zxvf scala-2.11.8.tgz tg@master:/sof原创 2016-05-31 17:30:36 · 8510 阅读 · 0 评论 -
30分钟--Spark快速入门指南
Spark快速入门指南 – Spark安装与基础使用 2016-01-15 (updated: 2016-03-07) 6309 29Apache Spark 是一个新兴的大数据处理通用引擎,提供了分布式的内存抽象。Spark 正如其名,最大的特点就是快(Lightning-fast),可比 Hadoop MapReduce 的处理速度快 100 倍。此外,Spark 提供了简单易用的转载 2016-06-01 17:05:56 · 17890 阅读 · 3 评论 -
Java接入Spark之创建RDD的两种方式和操作RDD
Java接入Spark之创建RDD的两种方式和操作RDD原创 2016-06-02 21:49:20 · 46205 阅读 · 1 评论 -
Spark(1.6.1) Sql 编程指南+实战案例分析
Spark SQL是Spark的一个模块,用于结构化数据处理。它提供了一个编程的抽象被称为DataFrames,也可以作为分布式SQL查询引擎。概述(Overview)Spark SQL是Spark的一个模块,用于结构化数据处理。它提供了一个编程的抽象被称为DataFrames,也可以作为分布式SQL查询引擎。开始Spark SQLSpark SQL中所有功能的入口点是SQLContext类,或者它子类中的一个。为了创建一个基本的SQLCont原创 2016-06-06 14:12:20 · 13109 阅读 · 3 评论 -
Spark实时流计算Java案例
现在,网上基于spark的代码基本上都是Scala,很多书上也都是基于Scala,没办法,谁叫spark是Scala写出来的了,但是我现在还没系统的学习Scala,所以只能用java写spark程序了,spark支持java,而且Scala也基于JVM,不说了,直接上代码这是官网上给出的例子,大数据学习中经典案例单词计数 在linux下一个终端 输入 $ nc -lk 9999 然后运行下面的代码原创 2016-06-07 21:20:07 · 16411 阅读 · 1 评论 -
kafka学习之路(一)——入门
kafka学习之路(一)——入门Kafka学习之路...一、入门..1、 简介2、 主题(Topics)、日志(Logs)3、 分布式(Distribution)4、 生产者(Producers)5、 消费者(Consumers) 一、入门1、简介Kafka 是linkedin 公司用于日志处理的分布式消息队列,同时支持离线和在线日志处理。kafk...原创 2016-07-16 23:32:26 · 20214 阅读 · 6 评论 -
strom架构和构建Topology
一、Storm基本概念在运行一个Storm任务之前,需要了解一些概念:TopologiesStreamsSpoutsBoltsStream groupingsReliabilityTasksWorkersConfiguration 架构:在Storm的集群里面有两种节点: 控制节点(master node)和工作节点(w转载 2016-07-23 15:22:15 · 7798 阅读 · 5 评论 -
storm一致性事务
Storm是一个分布式的流处理系统,利用anchor和ack机制保证所有tuple都被成功处理。如果tuple出错,则可以被重传,但是如何保证出错的tuple只被处理一次呢?Storm提供了一套事务性组件Transaction Topology,用来解决这个问题。Transactional Topology目前已经不再维护,由Trident来实现事务性topology,但是原理相同。转载 2016-07-23 23:43:04 · 4513 阅读 · 1 评论 -
Python快速学习第八天
本文内容全部出自《Python基础教程》第二版10.1 模块现在你已经知道如何创建和执行自己的程序(或脚本)了,也学会了怎么用import从外部模块获取函数并且为自己的程序所用:>>> import math>>> math.sin(0)0.0让我们来看看怎样编写自己的模块。 10.1.1 模块是程序任何Python程序都可以作为转载 2016-08-17 15:49:10 · 3020 阅读 · 1 评论 -
Python快速学习第六天
第六天:面向对象 1. 面向对象的特点——多态,封装,继承 对象:包括特性和方法,特性只是作为对象的一部分变量,而方法则是存储在对象内的函数。(1)多态——对不同类的对象,使用同样操作。不知道对象到底是什么类型,但又要对对象做一些操作 很多内置的函数和运算符都是多态的 不用关注x到底是什么类型,都可以使用count函数,另外还有repr(),连接符+等原创 2016-08-15 14:30:59 · 2075 阅读 · 1 评论 -
Python快速学习第五天
第五天:抽象1、 函数检测函数是否可调用:callable>>> import math>>> y=math.sqrt>>> callable(y)True>>> x=1>>> callable(x)False 注意:Python3.0不在支持callable,需要使用表达式hasattr(func,_call_call_)代替 创原创 2016-08-14 22:21:31 · 2382 阅读 · 3 评论 -
Python快速学习第四天
第四天:条件 、循环和其他语句1、 print使用逗号输出 - 打印多个表达式也是可行的,但要用逗号隔开>>> print 'tanggao ',20tanggao 20>>> 1,2,3(1, 2, 3)>>> print 1,2,31 2 3>>> print(1,2,3)(1, 2, 3) 注意:python3.0以后,pr原创 2016-08-14 11:18:34 · 1703 阅读 · 2 评论 -
Python快速学习第三天
第三天:字典什么是字典?字典是Python语言中唯一的映射类型。映射类型对象里哈希值(键,key)和指向的对象(值,value)是一对多的的关系,通常被认为是可变的哈希表。字典对象是可变的,它是一个容器类型,能存储任意个数的Python对象,其中也可包括其他容器类型。字典类型与序列类型的区别:1.存取和访问数据的方式不同。2.序列类型只用数字类型的键(从序列的开始按原创 2016-08-13 13:33:23 · 1238 阅读 · 1 评论 -
Python快速学习第二天
第二天 字符串的使用1、字符串格式化 a) %s格式化为字符串 >>> format ="Hello, %s. %s enough for ya?">>> values =('world', 'Hot') >>> print format %valuesHello, world. Hot enough fory原创 2016-08-12 17:17:17 · 28485 阅读 · 1 评论 -
Python快速学习第十二天--生成器和协程
yield指令,可以暂停一个函数并返回中间结果。使用该指令的函数将保存执行环境,并且在必要时恢复。生成器比迭代器更加强大也更加复杂,需要花点功夫好好理解贯通。看下面一段代码:[python] view plain copydef gen(): for x in xrange(4): tmp转载 2016-08-21 23:14:24 · 1408 阅读 · 2 评论 -
Python快速学习第十一天--Python多线程
Python中使用线程有三种方式:方法一:函数式调用thread模块中的start_new_thread()函数来产生新线程。语法如下:thread.start_new_thread ( function, args[, kwargs] )参数说明:function - 线程函数。args - 传递给线程函数的参数,他必须是个tuple类型。kwar原创 2016-08-21 16:33:34 · 1649 阅读 · 2 评论 -
Python快速学习第十天
11.1 打开文件open函数用来打开文件,语法如下:open(name[, mode[, buffering]])open函数使用一个文件名作为唯一的强制参数,然后返回一个文件对象。模式(mode)和缓冲(buffering)参数都是可选的,我会在后面的内容中对它们进行解释。因此,假设有一个名为somefile.txt的文本文件(可能是用文本编辑器创建的),其转载 2016-08-20 11:15:00 · 2178 阅读 · 1 评论 -
Python快速学习第九天--安装并操作Mysql数据库
python操作mysql数据库Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口。Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库:GadFlymSQLMySQLPostgreSQLMicrosoft SQL Server 2000InformixIn原创 2016-08-18 10:19:20 · 2658 阅读 · 1 评论 -
搭建storm集群
搭建storm集群系统centos71、安装Java jdk 1.72、安装zookeeper 3.4.83、安装Python2.7X4、安装storm0.95、安装git6、安装maven所有安装包,等会我会打包上传,地址会放到最后,大家需要可以下载1、安装jdk很简单下载jdk压缩包解压压缩包 ,我的安装目录是/software原创 2016-08-28 22:58:41 · 3156 阅读 · 2 评论 -
KafKa(0.10)安装部署和测试
Step 1: 下载代码http://kafka.apache.org/downloads.html0.10.0.0是最新版本。 当前的稳定版本是0.10.0.0。下载0.10.0.0版本并且解压它。> tar -zxvf kafka_2.10-0.10.0.0.tgz > cd kafka_2.11-0.10.0.0Step 2: 启动服务运行kafka需要使用原创 2016-06-25 14:14:51 · 11123 阅读 · 0 评论 -
kafka学习之路(二)——提高
kafka学习之路(二)——提高消息发送流程因为Kafka内在就是分布式的,一个Kafka集群通常包括多个代理。为了均衡负载,将话题分成多个分区,每个代理存储一或多个分区。多个生产者和消费者能够同时生产和获取消息。 过程:1.Producer根据指定的partition方法(round-robin、hash等),将消息发布到指定topic的partition里面2.kafka集群接收到Produ...原创 2016-07-17 14:59:26 · 11616 阅读 · 3 评论 -
kafka学习之路(三)——高级
设计原理kafka的设计初衷是希望作为一个统一的信息收集平台,能够实时的收集反馈信息,并需要能够支撑较大的数据量,且具备良好的容错能力.持久性kafka使用文件存储消息,这就直接决定kafka在性能上严重依赖文件系统的本身特性.且无论任何OS下,对文件系统本身的优化几乎没有可能.文件缓存/直接内存映射等是常用的手段.因为kafka是对日志文件进行append操作,因此磁盘检索的开支是较小的;同时为...原创 2016-07-17 21:34:43 · 8522 阅读 · 0 评论 -
Hadoop整合Hive之API封装及操作
首先看依赖<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven原创 2016-05-27 20:34:59 · 6259 阅读 · 0 评论 -
HBase新版本Java API编程实战及基本操作方法封装
我的HBase版本是0.98 首先说明一下,如果用eclipse操作hbase时,如果报Unknown host错误,找不到主机,是因为你没有配IP地址的映射 方法是 找到你的系统盘里面的C:\Windows\System32\drivers\etc下的hosts文件,打开,增加一个映射 加一个映射 192.168.52.140 master话不多说,直接看代码,注释很详细import原创 2016-05-14 21:34:24 · 21075 阅读 · 7 评论 -
研究MapReduce源码之实现自定义LineRecordReader完成多行读取文件内容
TextInputFormat是Hadoop默认的数据输入格式,但是它只能一行一行的读记录,如果要读取多行怎么办? 很简单 自己写一个输入格式,然后写一个对应的Recordreader就可以了,但是要实现确不是这么简单的首先看看TextInputFormat是怎么实现一行一行读取的大家看一看源码public class TextInputFormat extends FileInputFormat原创 2016-05-03 20:54:21 · 15830 阅读 · 20 评论 -
干货--Hadoop自定义数据类型和自定义输入输出格式整合项目案例
数据输入格式(InputFormat) 用于描述MapReduce作业的数据输入规范。MapReduce框架依靠数据输入格式完成输入规范检查(比如输入文件目录的检查)、对数据文件进行输入分块(也叫分片,InputSplit),以及提供从输入分块(分片)中将数据记录逐一读出,并转化为Map过程的输入键值对等功能Hadoop提供了丰富的内置数据输入格式。最常用的数据输入格式包括:TextInputFormat和KeyValueInputFormatTextInputFormat是系统默认的数据输入格式,可原创 2016-05-03 16:59:46 · 14389 阅读 · 2 评论 -
Java使用JDBC连接Hive(新版本)API封装
网上找了很多封装的API,发现都是过时了的,运行报各种错误,经过了几天的调错,终于可以使用java代码操作hive了首先看看所需的包所有的分析都在代码里面package com.berg.hive.test1.api;import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet;原创 2016-05-26 21:44:29 · 15880 阅读 · 1 评论 -
Hbase原理、基本概念、基本架构
Hbase原理、基本概念、基本架构 概述HBase是一个构建在HDFS上的分布式列存储系统;HBase是基于Google BigTable模型开发的,典型的key/value系统;HBase是Apache Hadoop生态系统中的重要一员,主要用于海量结构化数据存储;从逻辑上讲,HBase将数据按照表、行和列进行存储。与hadoop一转载 2016-05-13 12:57:43 · 3211 阅读 · 0 评论 -
15分钟熟悉HBase Shell命令
下面我们看看HBase Shell的一些基本操作命令,我列出了几个常用的HBase Shell命令,如下:名称命令表达式创建表create '表名称', '列名称1','列名称2','列名称N'添加记录 put '表名称', '行名称', '列名称:', '值'查看记录原创 2016-05-12 21:05:48 · 26006 阅读 · 0 评论 -
Hadoop学习之网络爬虫+分词+倒排索引实现搜索引擎案例
本项目实现的是:自己写一个网络爬虫,对搜狐(或者csdn)爬取新闻(博客)标题,然后把这些新闻标题和它的链接地址上传到hdfs多个文件上,一个文件对应一个标题和链接地址,然后通过分词技术对每个文件中的标题进行分词,分词后建立倒排索引以此来实现搜索引擎的功能,建立倒排索引不熟悉的朋友可以看看我上篇博客 Hadoop–倒排索引过程详解 首先 要自己写一个网络爬虫由于我开始写爬虫的时候用了htmlp原创 2016-05-12 11:02:59 · 15912 阅读 · 3 评论 -
windows下hadoop-eclipse的编程所引起的一系列错误
解决Exception: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)Z 等一系列问题,ljavalangstring 一.简介 Windows下的 Eclipse上调试Hadoop2代码,所以我们在windows下的Eclipse配置hadoop-eclipse-plu转载 2016-04-28 19:25:38 · 1278 阅读 · 0 评论 -
Hive2.0.0操作HBase 1.2.1报错解决
org.apache.hive.service.cli.HiveSQLException: Failed to open new session: java.lang.RuntimeException: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.security.authorize.AuthorizationException): User: hadoop is not allowed to impersonate hive at or原创 2016-05-28 22:03:56 · 1825 阅读 · 0 评论 -
hadoop与hbase伪分布式的基本配制文件设置
Hadoop0.hbase-env.shexport JAVA_HOME=/software/jdk1.7.0_801.core-site.xml fs.defaultFS hdfs://master:9000 hadoop.tmp.dir原创 2016-05-16 19:02:14 · 5842 阅读 · 0 评论 -
Hive与HBase实现数据互导
Hive与HBase实现数据互导建立与HBase的识别表hive> create table hive_hbase_1(key int,value string) > stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' > WITH SERDEPROPERTIES ("hbase.columns.ma原创 2016-05-29 16:30:32 · 18965 阅读 · 0 评论 -
kafka自学之路--zookeeper中存储结构
1.topic注册信息/brokers/topics/[topic] :存储某个topic的partitions所有分配信息Schema:{ "version": "版本编号目前固定为数字1", "partitions": { "partitionId编号": [ 同步副本组brok转载 2016-07-18 16:33:06 · 3422 阅读 · 0 评论