Jonathan.Wei's Notes


  • 首页

  • 分类

  • 关于

  • 归档

  • 标签

Carbondata 1.4.0+Spark 2.2.1 On Yarn集成安装

发表于 2018-07-25 | 分类于 Carbondata | | 阅读次数

由于项目需要,近期一直在研究华为开源的carbondata项目,目前carbondata已经成为apache的顶级项目,项目活跃程度也比较高。

Carbondata介绍

纵观目前的大数据生态圈,针对于ad-hoc查询并没有什么好的解决方案,且查询效率不高。Carbondata针对ad-hoc给出了解决方案,但是目前版本这个方案并不完善。为什么说并不完善,后续会给大家解答,我们先来说下carbondata的优点

查询

  • 两级索引,减少IO:适合ad-hoc查询,任意维度组合查询场景
    • 第一级:文件索引,用于过滤hdfs block,避免扫描不必要的文件
    • 第二级:Blocklet索引,用于过滤文件内部的Blocklet,避免骚烤不必要的Blocklet
  • 延迟解码,向量化处理:适合全表扫描、汇总分析场景

数据管理

  • 数据增量入库,多级排序可调:有用户权衡入库时间和查询性能
    • 字典编码配置(Dictionary Encoding Configuration)
    • 反向索引配置(Inverted Index Configuration)
    • 排序列配置(Sort Columns Configuration)
  • 增量更新,批量合并:支持快速更新事实表或维表,闲时做Compaction合并

大规模

  • 计算与存储分离:支持从GB到PB大规模数据,万亿数据秒级响应

部署

  • Hadoop Native格式:与大数据生态无缝集成,利用已有hadoop集群资产
  • 与Spark2.x版本集成
    阅读全文 »

Spark集成TensorflowOnSpark standalone模式下测试mnist

发表于 2017-08-30 | 分类于 tensorflow | | 阅读次数

预先条件

安装tensorflow环境

下载tensorflowonspark代码

1
2
3
git clone https://github.com/yahoo/TensorFlowOnSpark.git
cd TensorFlowOnSpark
export TFoS_HOME=$(pwd)

安装Spark

这里tensorflowOnSpark中提供了一个脚本用于下载spark,我们直接执行这个命令。

1
2
3
4
${TFoS_HOME}/scripts/local-setup-spark.sh
rm spark-1.6.0-bin-hadoop2.6.tar
export SPARK_HOME=$(pwd)/spark-1.6.0-bin-hadoop2.6
export PATH=${SPARK_HOME}/bin:${PATH}

安装tensorflow以及tensorflowOnSpark

这里我们通过pip命令来安装tensorflow以及tensorflowOnSpark,目前最新版本的tensorflow是1.2.x,不过我这边测试是用的0.12.1版本。安装指定tensorflow版本可以通过==${version}来指定。

1
2
sudo pip install tensorflow==0.12.1
sudo pip install tensorflowonspark

阅读全文 »

使用aiml开发智能聊天机器人

发表于 2017-08-30 | 分类于 aiml | | 阅读次数

aiml介绍

AIML是Richard Wallace开发的。 他开发了一个叫A.L.I.C.E(Artificial Linguistics Internet Computer Entity)的机器人并且赢了几个人工智能的奖项。 有趣的是, 其中一个图灵测试是让一个人在文本界面跟一个机器人聊几分钟,看看人们是否认为它是个人类。 AIML是一种定义了匹配模式和决定响应的规则的一种XML。

要看完整的AIML入门,可以看一下 Alice Bot’s AIML Primer.你可以在AIML wiki页学更多关于AIML的知识并知道它能做什么。 我们先写一些AIML文件并用Python给它一点生命。

安装

1
pip install aiml

aiml自带简易英文语料库

Python aiml安装完成后在Python安装目录下的 site-packages/aiml下会有alice子目录,这个是系统自带的一个简单的语料库。

1
2
alice
standard

阅读全文 »

Apache beam - Pipeline设计

发表于 2017-06-16 | 分类于 apache beam | | 阅读次数

设计Pipeline时需要考虑什么?

当我们设计我们的beam pipeline时,需要考虑的一些基础问题:

  • 你的输入数据存储在哪里?这将决定Read在pipeline开始时需要使用哪些类型的转换
  • 你的数据是怎么样的?
  • 你想用数据做什么?
  • 你的输出数据是什么样的,应该存储到哪里?这个决定write在pipeline末端使用哪些类型的transforms

一条基本的Pipeline

最简单的Pipeline体现为一个线性的操作流程。如下图
img

阅读全文 »

Apache beam - 创建Pipeline

发表于 2017-06-16 | 分类于 apache beam | | 阅读次数

Beam程序从头到尾表达了一个数据处理流程。这里介绍在Beam SDK中使用类构建管道的机制。要使用Beam SDK中的类构建管道,您的程序将需要执行以下一般步骤:

  • 创建一个Pipeline对象
  • 使用Read或者Create转换去为管道数据创建一个或多个PCollections
  • 应用Transforms到每个PCollection.Transforms可以对PCollection中的每个元素进行修改,过滤,分组,解析以及其他处理
  • 最后使用Write或者其他输出方式,完成PCollection的转换
  • 运行Pipeline
    阅读全文 »

Apache Beam IO - KafkaIO

发表于 2017-06-09 | 分类于 apache beam | | 阅读次数

之前在网上看到这样一个例子
https://github.com/wtanaka/streaming/blob/d2e63184f604ea42d9711dd59951af3f3f4200f9/beam/src/main/java/com/wtanaka/streaming/beam/KafkaToKafka.java
但是从代码的设计上看对flink kafka存在依赖,而这样编写代码我觉得违背了apache beam的初衷,下面我自己写了一个很简单的例子,从kafka input-topic读取数据,写入kafka output-topic。
这里我只是做一个简单测试,所以使用的都是单机模式的kafka、zookeeper和flink

公共参数

1
2
3
4
5
6
7
8
9
10
private static final long WINDOW_SIZE = 10;
// Default window duration in seconds
private static final long SLIDE_SIZE = 5;
// Default window slide in seconds
private static final String KAFKA_TOPIC = "input-topic";
private static final String KAFKA_OUTPUT_TOPIC = "output-topic";
private static final String KAFKA_BROKER = "localhost:9092";
// Default kafka broker to contact
private static final String GROUP_ID = "beamGroup"; // Default groupId
private static final String ZOOKEEPER = "localhost:2181";
阅读全文 »

Apache Beam Runner - Flink

发表于 2017-06-08 | 分类于 apache beam | | 阅读次数

使用Flink Runner先决条件及步骤

检查apache beam对应版本所需要的flink版本

方式一:(推荐)
github上查找beam项目,找到指定版本的flink runner的pom.xml文件,检查flink.version版本
https://github.com/apache/beam/blob/v2.0.0/runners/flink/pom.xml

1
2
3
<properties>
<flink.version>1.2.1</flink.version>
</properties>

方式二:
官方所说的通过mvn命令查询支持的flink版本

1
2
3
4
$ mvn dependency:tree -Pflink-runner |grep flink
...
[INFO] | +- org.apache.flink:flink-streaming-java_2.10:jar:1.1.2:runtime
...

阅读全文 »

Apache Beam:便携式并行数据处理

发表于 2017-06-02 | 分类于 apache beam | | 阅读次数

Apache Beam: Portable and Parallel Data Processing

概念说明

在我们做数据流处理的过程中,经常会遇到的一个问题:网络延迟。当然对于无序的数据流来说,网络延迟所带来的数据乱序对结果是不会有太大影响的。但是对于数据顺序有要求的应用,则会导致数据不一致等棘手的问题。

阅读全文 »

Apache Beam 介绍

发表于 2017-06-02 | 分类于 apache beam | | 阅读次数

背景介绍

作为一名大数据开发者,不得不说自从hadoop问世之后,接连而来的各种各样的大数据处理框架层出不穷,而我们则要不断的去学习,运用不同的技术、框架、api,甚至是开发语言以及sdk,去开发项目功能,解决项目问题。

  • 平台迁移问题:根据项目的需求,技术的更新迭代,项目性能的要求等等,同样的业务要在不同的框架上运行,可能你就要花费很长一段时间去学习新的框架,新的api。
  • 开发工具难抉择:近两年开启的开源大潮,为大数据开发者提供了十分富余的工具。但这同时也增加了开发者选择合适的工具的难度,尤其对于新入行的开发者来说。这很可能拖慢、甚至阻碍开源工具的发展
    阅读全文 »

常用工具库

发表于 2017-05-31 | 分类于 tools | | 阅读次数

Maven Search Repository

一直以来都是以maven来开发项目,这里提供两个maven查询库地址。

1
$ http://search.maven.org

More info: Link

1
$ http://mvnrepository.com

More info: Link

阅读全文 »
12
Jonathan.Wei

Jonathan.Wei

11 日志
6 分类
15 标签
RSS
GitHub
© 2018 Jonathan.Wei
由 Hexo 强力驱动
主题 - NexT.Mist