`
javafan_303
  • 浏览: 958882 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

hive选型讨论

 
阅读更多
网上两个人的牛人牛语,bigtable要淘汰了?google的数据挖掘基本上用的是MPI,而非mapreduce ? 百度的hypertable真不行吗?

大家边看边学吧



梁建:    hive 主要用于 结构化数据 吗?
我:    结构化数据
梁建:    hadoop 0.19.1 和 那个  hive 版本 配置
我:    它走的是传统数据库, 有compiler解析sql,形成mapreduce任务
我:    hive都支持,不过要改下配置
hivefans: hive做数据仓库的 分析/统计
我:    hive要做到数据仓库,还早着
梁建:     google  的 三架马车 不是 mapreduce,  gfs , bigtable

我:    为什么一定要学google?你的思维太定势了
梁建:    正好对应  mapreduce  hdfs  hbase

我:    而且google还有很多没有公开的东西
梁建:    是呀

我:    google的数据挖掘基本上用的是MPI,而非mapreduce
我:    MPI从bigtable读数据了
梁建:    我的 意思是   hive  对应 google  的 什么
我:    没有
梁建:    哦
梁建:    那 我 也 改 用  hive
hivefans:\t ...
我:    你要看你的应用
我:    facebook的hive只限应用于日志分析
梁建:    我主要做大规模结构化 数据表的查询
我:    那就合适了
我:    注意还有一个,不是实时的,是批量作业的
梁建:    一般都是几十亿 行的oracle 数据
梁建:    那我点一个查询按钮 ,hive还不能实时的结果 ?
hivefans:\t 数据仓库一般不是实时的数据
我:    你想实时的那不靠谱
梁建:    你说的 批量作业 是什么意思
梁建:    我的意思是 准实时  <2分钟

我:    那不是hive的特长
hivefans: 1 数据不是实时的
2 数据量大 也要等半天...
梁建:    那在 hadoop  上什么 东东  能 做大量的数据查询
梁建:    分布式的
hivefans: 如果你是想要Oracle的典型应用的话
hadoop上没有那种东东
hivefans: 如果你的数据是非结构化的
比如文档 就用hbase吧
梁建:    我现在是结构化的数据
梁建:    就是想实现分布式计算
梁建:    和分布式存储
hivefans: 用mysql/PostgreSQL的集群吧
梁建:    郁闷,那我不是白学 hadoop 了
我:    推荐greenplum,或者直接mysql-proxy作shard得了
梁建:    我想用 hadoop
我:    [/擦汗]
hivefans: 或者Oracle的RAC...也凑合
我:    rac集群上不去
hivefans: greenplum也是数据仓库
梁建:    我想试试 hive

梁建:    hive 是 分布式存储?
hivefans: 是
梁建:    那 hadoop + hive 就可以 解决我的问题 啊
梁建:    为什么不建议让我用呢
hivefans: 你是要从几亿条数据中查询一条或几条数据吗
梁建:    是在不行我先放上 1G 的表看看  总能实时出吧
梁建:    我要从几亿条数据中查询200条左右数据吗
hivefans: 那就不适合
梁建:    我要从几亿条数据中查询200条左右数据
梁建:    为什么不适合
hivefans: hive是做统计的
梁建:    慢?
hivefans: 数据仓库和数据库是两码事
hivefans: 结构就不一样
梁建:    那 hbase 适合 几亿条数据中查询200条左右数据

梁建:    ?
我:    hive实质上是hadoop的一个客户端,只是把产生mapreduce任务用一个sql编译器自动化了
hivefans: 嗯嗯
我:    数据仓库的东西一般不会删掉,而且不会改变
hivefans: 玩多了关系型数据库 思想就有局限了哈
梁建:    数据库适合 update 事物操作
数据仓库 适合 查询操作
我说的不对吗?
hivefans: hbase是column-oriented的
传统关系数据库是row-oriented的
hivefans: 数据仓库 适合 聚合运算
hivefans: 比如sum avg这类的运算
梁建:    那你做报表和查询 有什么区别 ,
大多数  报表是把数据先算好 ,然后再展现出来呀
梁建:    我查询也可以有 sum avg 运算啊
hivefans: 数据仓库没有明细信息...
梁建:    啊 ,我们的oracle 数据仓库都有详细信息
梁建:    都20T了
梁建:    全是详细信息
hivefans: 放进去是详细信息
hivefans: 展现的不是
梁建:    展现的是汇总 的
梁建:    我知道
梁建:    hive  做报表的案例有没有?
hivefans: 没见过
找facebook要吧....
梁建:    哎 ,你们都挺厉害的 ,技术很强
hivefans: 我技术一般 只会忽悠
我:    facebook不在hive上直接做报表
梁建:    hive 好用吗 ?
我:    hive处理完数据后, 会传给oracle
梁建:    bug 多吗?
我:    bug 非常多
我:    不过还是可以用D
hivefans: facebook的特点 嗯嗯
梁建:    啊,晕
梁建:    为什么要传给 oracle?
我:    oracle好查啊
我:    查得快,而且有BI工具可以连上去
hivefans: 这样啊 才听说
梁建:    要用 orlce ,就直接用 oralce
梁建:    来回传 麻烦
我:    oracle rac吃不消哦
我:    不是回传
我:    他们的日志先经过hive,再给oracle结果
我:    日志是文本的,oracle可吃不消。
梁建:    不过好多报表服务器就是 oracle 数据库 的
我:    一天就有2T多
梁建:    想 congnos
我:    yep.
我:    MicroStrategy
梁建:    现在 hadoop  的应用主要有哪些
梁建:    和数据库有关的
梁建:    用 hive 不用 写 mapreduce  程序?
我:    基本上是,但有时候你得写UDF或者python之类的程序
梁建:    我不会 UDF或者python ,能不能用 mapreduce 替代掉
我:    UDF就是用java写, 用户自定义函数的缩写
我:    sql的表意能力有限,你得扩展它
我:    cloudbase还支持UDT了
我:    用户自定义类型
梁建:    哦,多谢
梁建:    我现在就配置个环境试试
梁建:    你们经常用这个啊
梁建:    敢觉你们都很熟
梁建:    cloudbase 是另外一个东西吧 ,好像不是 hive 的
hivefans: 嗯嗯
我:    这东西我看过源码,不行
梁建:    那用那个好
梁建:    那个速度快
我:    hive好。 cloudbase设计上败笔太多,以后很麻烦
梁建:    好,多谢了
CYan羽: hypertable呢?
hivefans: 和hbase差不多
我:    hypertable性能nb, 稳定性极差。百度用这个
我:    而且百度是赞助商之一
CYan羽: 看了一下都0.9了,版本涨的神快
hivefans: 百度好差啊...
hivefans: 搞啥啥不行
梁建:    不是吧
CYan羽: 赞助商而已,也不是他们在搞吧
没有人: 测试过没有?
CYan羽: hypertable用C写的周期是要长一点,比hbase起步也晚
hivefans: cpp
我:    百度很早就在搞了
没有人: 谁在研究Hypertable?
comsci[神父]: 本文作者
CYan羽: 原本也是hbase里跑出来的一堆人
CYan羽: 最早的时候也没百度什么事
comsci[神父]: 21nw.com/2009/01/04/高性能数据库hypertable/
梁建:    你们在抖知道这些内幕
comsci[神父]: http://blog.csdn.net/xpspace/archive/2008/05/22/2470904.aspx
comsci[神父]: http://www.hudong.com/wiki/HyperTable
comsci[神父]: 搜索引擎公司Zvents以Google发布的BigTable为基础,推出的一款开源分布式数据储存系统。 新软件MHypertable是按照1000节点比例设计,刚刚发布0.9 alpha测试版,已经在10个节点上测试过。
Hypertable 是由Zvents设计的BigTable clone开放原始码专案,以 C++撰写,可架在 HDFS 和 KFS 上。尽管还在初期阶段,但已有不错的效能:写入 28M 列的资料,各节点写入速率可达7MB/s,读取速率可达 1M cells/s。
Hypertable是根据Google的9位研究人员在2006年发表的一篇论文《Bigtable:结构化数据的分布存储系统》开发的,Bigtable 是Google内部使用的文件储存系统。
CYan羽: [图片] Bigtable是数据库......
Chen: google的文件系统是gfs
梁建:    hive 有没有 web 监控页面
梁建:    像  http:/localhost:50070/    这样的 namenode
梁建:    web监控页面
梁建:    hive  load data 的  0.dat 文件是什么格式的 ,  和oracle 的文本文档格式一样吗
梁建:    哪有hive 的语法文档
梁建:    hive 区分大小写?
梁建:    为什么我的 hive 只有 map100% reduce 0%
梁建:    load data local inpath .......
都对了
梁建:    select 结果都出来了,  中文全是乱码
梁建:    hypertable 和 hive  的主要 功能有区别吗?
梁建:    郁闷
梁建:    是不是 一般的 select (不带 sum,avg)  都只有 map 没有 reduce 运算
我:    yep
我:    如果有join就不是了
我:    你想像一下,你要做到select的效果是怎么做的,就知道为什么是这样运行了
梁建:    那hive 更适合作那种经营分析 应用
梁建:    hive 支持 join ?
我:    equal join
梁建:    那个地方 有 hive 语法说明资料
梁建:    我找到的都是 api的
我:    http://wiki.apache.org/hadoop/Hive/LanguageManual
梁建:    多谢
我:    不客气
梁建:    我可以用 java 写前台程序 调用 后台的hadoop的hive 实现查询的操作,然后在用java 处理Hql查询的结果 ,并用 java 程序将结果显示在前台
梁建:    这样不就 实现了准实时 查询?
梁建:    我这样的想法对不对阿
梁建:    hive  好像 不支持  delete
梁建:    ?
我:    to梁建,我貌似说过了数据仓库的特征之一,就是很少删东西
梁建:    哦,知道了
我:    共享里面可以下载了
梁建:    写的 不错 了
梁建:    现在知道这块 东西 的 人少
梁建:    能写成这样已经不错了
梁建:    恩   咋样用自己写的 java 程序 调用 hive 呢?
我:    hive有一个类 HiveServer
我:    它提供了一个thrift服务
梁建:    哦 ,就是直接写 客户端的 java 类 和 hive 的 HiveServer thrift服务 交互访问
我:    to梁建:    right
梁建:    这样就能够实现 java 使用分布式数据仓库hive了
我:    呵呵. 但它那个HiveServer有问题
我:    session的处理, 而且不能用UDF
梁建:    呵呵, 我觉得 你还是走在大家的前面 HiveServer 有什么问题
我:    session的处理问题
梁建:    session的处理, 而且不能用UDF
有什么影响
我:    搞应用的话,没有UDF,那没法搞哦
我:    不过我已经解决了
梁建:    和 jsp 的 session 一样吗?
我:    不懂web
我:    一个client连server,就是一道session了
梁建:    我是 做 web  的
我:    各session有自己状态的
梁建:    这个知道
我:    hive没处理好
梁建:    他是 什么协议 socket?
我:    嗯
梁建:    那你是处理好了是用什么 ? 也是socket ?
我:    socket不是协议吧, 只是IPC技术。协议是thrift, facebook开源出去的,挺方便的
梁建:    对,我刚说错了
梁建:    thrift 没有听说过
梁建:    UDF  又是 什么东东
我:    UDF = user defined function
梁建:    哦 ,这回印象深刻了
梁建:    这个UDF 可有可无,只要有一个HiveServer  接口 能让我拿到数据,我 前台写函数也是一样 能完成功能的
我:    definitely not

我:    你前台写的函数只运行在client
梁建:    是的
我:    这个UDF得在集群的每个计算节点都运行
梁建:    哦, 知道了
梁建:    就是并行性能好
梁建:    网上有没有这样现成的  code
梁建:    我今天没有来的及看 他自带的 example
我:    没有,事实上hive也没很好的实现。
梁建:    哦, 他自带的  example 里有 HiveServer ?

梁建:    我有空看看学习一下
我:    哪个example?
梁建:    下载的安装文件里应该有
梁建:    理论上
梁建:    下载的安装文件里的 example 理论上
应该有
梁建:    不知道是不是这样的
我:    不知道你指的是
梁建:    hive 支持不支持存储过程
我:    [/流汗]
梁建:    在这里 存储过程
就有点像 UDF
我:    你没掌握它的设计理念
梁建:    了
我:    UDF和存储过程两码事
我:    在任何数据库都是这样
梁建:    我知道 oracle 也有用户自定义函数
梁建:    我知道 oracle 也有用户自定义存储过程
梁建:    就是那个 hadoop/  contrib   /hive  /example
梁建:     大概是这个目录吧我忘了
我:    [/流汗]
我:    hive已经独立出来了
梁建:    我还用的老版本的
梁建:    我用的 hadoop 0.19.1 上自带的 hive
梁建:    没太大区别吧
我:    我看看它的svn地址
我:    貌似不是一致的
我:    svn co http://svn.apache.org/repos/asf/hadoop/hive/ hive
梁建:    我今天试了一下 hql 都能用
梁建:    基本一致
梁建:    你用的 hadoop 那个版本的
梁建:    coderplay ?
我:    0.19.0 这个不大稳定
梁建:    就是我感觉到了
梁建:    你用的那个
梁建:    版本
梁建:    Hive 不是有 JDBC Interface  ?
梁建:    干嘛还要 socket ?

我:    完全不能用
梁建:    JDBC Interface 完全不能用


我:    对
我:    仔细看它的代码
我:    我夜宵去了 -____-
梁建:    meta. server 是干什用的
梁建:    那个 meta. server  好
梁建:    hive 的 jdbc 咋不能用
梁建:    是 derby 的 问题 ?
梁建:    meta. server 和 derby   是什么关系?
梁建:    求助啊
我:    metaserver是一个为hive提供元数据服务的server
我:    derby是一个嵌入式的数据库
我:    metaserver从derby中取出的数据就是hive的元数据
我:    不一定非得使用derby, hive使用了jpox,使得可以连接derby, mysql, orcale等数据库
我:    它们存储了hive的元数据信息
梁建:    元数据 信息 是什么信息 ? 能不能举个例子
我:    元数据是指hive的表,列等相关信息
我:    你的DDL语句,会改变元数据
梁建:    那就表结构的信息 ?
梁建:    好像 通过 jdbc 可以 执行hive 查询 ?

我:    不可以
我:    目前的不成熟
hivefans: 那目前hive的jdbc能做什么
梁建:    咋样知道 jdbc 是否配置好了
梁建:    我的  web interface 调证好了

梁建:    但是 web页面 里 有个 browse schema 报错
梁建:    其它的 hwi 都可以用
梁建:    报错 好像就是  jpox 连 derby 的问题

梁建:    但是 我 在 hive> show tables ; 都是好的
梁建:    hive > create table .....也是好的
梁建:    这说明了是我的 derby 没有配置好?
梁建:    对吗
梁建:    我看官方现在给了一个 jdbc  l链接的例子 ,上面说可以直接链接
我:    没有用了. 你看它的jdbc代码就知道了
我:    没有获取metadata
我:    还有很多接口没实现
我:    比ResulSet.getString(String label),没实现
梁建:      if (standAloneServer) {
    
            // get connection
    
        con = DriverManager.getConnection("jdbc:hive://localhost:10000/default", "", "");
  
      }
else {

        con = DriverManager.getConnection("jdbc:hive://", "", "");
  
      }
梁建:    res = stmt.executeQuery("select * from " + tableName);

我:    没有用了. 你看它的jdbc代码就知道了
        没有获取metadata
    还有很多接口没实现
    比如ResulSet.getString(String label),没实现

梁建:  
那怎样才能把 derby 和hive 调通呢
梁建:    derby 和hive 之间还夹了一个 jpox 是把
我:    yep
梁建:    英文的配置文档说的太简单了
梁建:    那我的环境中现在就是  derby 没有配置好 ,或者是 jpox 的问题

但是 derby 没有配置好得可能性大
梁建:    理论上 通过 jdbc 连接 derby  和 Thrift Hive Server   能够实现的功能是一样的吧?
梁建:    Thrift Hive Server  不需要  derby 吧?
我:    jdbc就是HiveServer的一个特殊的客户端
我:    你没理解哦
梁建:    啊 ,那我要先启动  HiveServer 才能用 jdbc 啊
梁建:    这么说 HiveServer 也用 derby 数据库了 ? 你不是说 Thrift  Hive Server 是socket ?
梁建:    难到   Thrift  Hive Server  是建立在数据库上 的?
梁建:    derby 数据库 可以分布在 各各 slave 上?
梁建:    derby 数据库 实现的 并行计算 ?
hivefans: 只是Name Node要derby吧
hivefans: derby 数据库只是存metadata
我:    hivefans说对了后面那句
梁建:    我用hive  web interface 的时候 浏览文件目录时 报错 就是 jpox 连接 derby失败
我:    查wiki,有教怎么配置
梁建:    好
那就是derby 数据库只能安装在一个机器上 ,derby 数据库没有并行计算的能力,hadoop 帮derby 完成了并行计算
对吗?
我:    no
hivefans: no
梁建:    那应该是什么呢?
我:    derby只是存metadata, HDFS上存大文件, 不适合随机读取,所以把metadata的信息存在别的数据库(如derby, mysql)之上,这样更好查询.
我:    查询的是metadata
hivefans: http://rdc.taobao.com/blog/dw/archives/266
我:    当然也可以不是derby,可以用不jpox, 文本都可以
hivefans: 那连接是个配置hive的
梁建:    hivefans(8615615)  15:31:20
那连接是个配置hive的

这个我已经测通了
梁建:    hive 里的表里的 内容(如: 200901梁建: 男 00000001 ) 是存储在 HDFS上的大文件里 还是 derby里?
我:    hdfs
梁建:    哦,这样的啊
hivefans: derby里大约存的是 某个块存在哪个机
我:    create table profile(name string, id string)
        那表名 profile, 列名name,id,都存在derby里
梁建:    知道了
梁建:    既然我 hive> show tables ; 都能用 就说明我 derby 没有问题
问题在 jpox 连接 derby
梁建:    多谢
梁建:    hadoop 这样的存储有点像 cognos
梁建:    把报表的结构样式全存在 oracle 数据库中
我:    我夜宵去了 -___-
梁建:    好
我:    bye
分享到:
评论
1 楼 prince4426 2017-03-09  
好前沿的技术呀

相关推荐

    Hive-MVP:蜂巢MVP

    在Hive-MVP项目中,Spring Boot作为后端基础,提供了RESTful API接口,用于处理医师协作的各种业务逻辑,如病例共享、在线讨论和预约管理等。 二、React React是Facebook开源的JavaScript库,主要用于构建用户界面...

    Admaster混合异构数据的清洗、存储、挖掘架构选型和设计策略

    比如在混合异构数据特点的讨论中,AdMaster需要考虑不同类型数据的处理特点和存储策略,以及如何应对不同访问速度和量级的挑战。 综上所述,AdMaster在混合异构数据的清洗、存储和挖掘架构选型和设计策略中,展现了...

    Hadoop学习文档.pdf

    5. Hive的模式设计与事务性:讨论如何设计Hive的模式(schema),以及Hive支持的事务性数据操作。 6. Hive综合案例实战:通过实际案例,帮助用户将理论知识转化为实践操作。 Sqoop数据迁移工具 1. Sqoop的安装与...

    尚硅谷大数据项目之电商数仓用户行为采集平台1

    在2.2节,项目框架部分讨论了技术选型、系统数据流程设计、框架版本选择以及服务器选型。技术选型涉及Hadoop、Flume、Kafka、Hive、MySQL、Sqoop、Presto、Azkaban、Druid、Kylin、HBase、Superset、Atlas、Solr和...

    项目介绍1.docx

    这里主要讨论了从服务器选型到集群规划,再到具体的大数据技术栈应用。 1. **个人转型与技能积累** - 自学者:主人公并非计算机专业出身,但对计算机有着浓厚兴趣,通过自学Java进入软件行业。 - 技术转行:从...

    易车大数据平台体系建设及实践.pdf

    《易车大数据平台体系建设及实践》是一份详细探讨大数据处理和平台建设的报告,涵盖了从技术选型、架构设计到优化策略等多个方面。该报告强调了大数据在2018年至2022年间的发展趋势,并展示了易车公司在大数据领域的...

    大数据分析关键技术38.pptx

    本篇文章将详细讨论大数据分析的关键技术,包括即席查询、批量处理和流式计算。 首先,即席查询(Ad-Hoc Query)是一种允许用户根据自身需求自由设定查询条件的技术。在大数据环境中,这通常通过用户友好的接口实现...

    项目介绍11.docx

    这些内容对于理解大数据项目实施流程、技术选型和集群规划具有指导意义,同时也反映了大数据开发工程师在面试时可能会讨论的话题,如技术背景、项目经验和实际操作技能。对于准备面试或从事大数据领域工作的人员来说...

    大数据咨询方法论白皮书.zip

    2. **大数据生态系统**:文件可能涵盖大数据生态系统的构成,如数据源(如传感器、社交媒体、交易系统等)、数据存储(Hadoop、NoSQL数据库)、数据处理(MapReduce、Spark)和数据分析工具(如Hive、Pig、Tableau)...

    项目介绍10.docx

    以下将围绕这两个方面展开详细讨论。 1. 自我介绍是面试的第一步,需要清晰地展示自己的教育背景和工作经验。例如,毕业于物联网工程专业的应聘者可能在大学期间就已经接触到大数据处理,通过学习云计算课程了解到...

    对数仓建设建设的初步思考59.docx

    本文将围绕数仓建设的关键步骤、建模策略和技术选型展开讨论。 首先,数仓建设始于需求分析。这一步骤至关重要,因为清晰地理解业务需求能够确保后续的设计与开发满足实际业务场景。需求分析主要涉及识别关键业务...

    车流量监控项目1

    - 需求分析,与产品经理讨论需求并绘制原型图。 - 技术方案设计,确定技术选型和数据库选择。 - 具体实施,编写代码并部署运行。 总结来说,车流量监控项目1涵盖了从数据采集、数据处理到数据分析的全过程,利用了...

    video_P1-数据仓库基础理论与技术圈

    总的来说,这个视频系列将为学习者提供全面的数据仓库基础知识,从理论到实践,从技术选型到具体应用,帮助他们掌握在大数据时代构建和利用数据仓库的关键技能。通过观看和学习,你可以深入了解数据仓库在企业决策中...

    Apache Kylin权威指南

    对于性能优化,书中会讨论如何通过调整配置参数、优化查询语句以及采用更高效的计算模型来提升Kylin的性能。此外,还会涉及监控和维护,包括日志分析、性能指标监控以及故障排查。 最后,本书可能会探讨Kylin的最新...

    --智慧企业大数据云平台建设方案 集团企业大数据云平台建设方案.docx

    第3章(虽然未在给出的内容中,但通常会包括)将详细讨论技术架构和设计,可能包含数据采集、预处理、存储、分析、可视化等环节的技术选型和实施方案。这涉及到如Hadoop、Spark、Hive等大数据处理框架,以及云服务...

    大数据功能模块概要设计_V1.1.pdf

    在技术选型上,文档推荐了中间件如weblogic、websphere、jbos、jetty和tomcat,数据库包括关系型的Oracle和MySQL,以及NoSQL数据库如mongodb、hadoop、hive、hbase、memcached和redis。底层开发框架方面,struts2、...

    41页大数据应用及其解决方案.docx.zip

    7. **未来趋势**:可能还会讨论大数据的未来发展趋势,如人工智能与大数据的融合、边缘计算等新兴技术对大数据的影响。 通过对这个41页文档的深度阅读,读者将能全面了解大数据技术的各个方面,以及它如何为智慧...

    大数据分析平台总体架构方案.zip

    1. 数据采集(Data Ingestion):这部分讨论如何从各种数据源(如日志、传感器、社交媒体、交易系统等)中收集数据,常见的工具有Flume、Kafka和NiFi。 2. 数据存储(Data Storage):大数据平台需要能够处理PB级别...

    大数据平台项目业务蓝图

    "大数据平台方案设计.docx"可能详细介绍了如何规划和设计大数据平台,包括选用的技术(如Hadoop、Spark、Hive等),以及如何满足性能、安全和合规性要求。 6. **集成与协同**:在大数据平台中,微服务的引入意味着...

Global site tag (gtag.js) - Google Analytics