storm

大数据hive,storm小知识(干货)

你离开我真会死。 提交于 2020-01-25 08:36:58
Hive简介 定义 Facebook为了解决海量日志数据的分析而开发了hive,后来开源给了Apache基金会组织。 hive是一种用SQL语句来协助读写、管理存储在HDFS上的大数据集的数据仓库软件。 为什么要使用Hive? 1) 从SQL角度,简单、容易上手、使用方便。 2) 从Hadoop角度,可以操作大规模的数据集,可以作为大数据的引擎。 3) 从MetaStore角度:有了这个之后,这些框架Pig/Impala/Presto/SparkSQL跟Hive可以共享元数据信息, 共享元数据即他们之间的元数据可以互通访问的,比如在Hive创建一张表,可以在SparkSQL能用,也可以在 Presto,Impala,Pig用。相反,在SparkSQL创建的表,在HIVE,Pig,Impala,Presto也能用。因为他们底层都是共享MetaStore。 Hive原理: hive内核: hive 的内核是驱动引擎,驱动引擎由四部分组成,这四部分分别是: ▪解释器:解释器的作用是将hiveSQL语句转换为语法树(AST)。 ▪编译器:编译器是将语法树编译为逻辑执行计划。 ▪优化器:优化器是对逻辑执行计划进行优化。 ▪执行器:执行器是调用底层的运行框架执行逻辑执行计划。 hive底层存储: hive的数据是存储在HDFS上,hive中的库和表可以看做是对HDFS上数据做的一个映射

Storm集群部署

故事扮演 提交于 2020-01-24 13:55:50
搭建 Storm 集群的主要步骤 1. 搭建一个 Zookeeper 集群 2. 在 Nimbus 和所有工作机器(Supervisor)上安装 Storm 依赖的软件 Python-2.7.2 JAVA 7 ZeroMQ -2.1.7 JZMQ unzip 3. 配置 storm.yaml 4. 使用 Storm 脚本启动 Nimbus,Supervisor 及 UI #布置 ZK 集群 wget http://mirror.esocc.com/apache/zookeeper/zookeeper-3.4.5/zookeeper-3.4.5.tar.gz cp zookeeper-3.4.5.tar.gz /usr/local/ cd /usr/local/ tar -zxvf zookeeper-3.4.5.tar.gz ln -s /usr/local/zookeeper-3.4.5/ /usr/local/zookeeper vim /etc/profile (设置 ZOOKEEPER_HOME 和 ZOOKEEPER_HOME/bin) export ZOOKEEPER_HOME="/usr/local/zookeeper" export PATH=$PATH:$ZOOKEEPER_HOME/bin cp /usr/local/zookeeper/conf/zoo

CentOS 7.1安装Elasticsearch和Storm

こ雲淡風輕ζ 提交于 2020-01-23 09:44:01
这篇文章主要记录一下CentOS 7.1下安装配置Elasticsearch和Storm。 安装Oracle JDK,这个可以参照我之前写的 文章 。 安装Elasticsearch 到 https://www.elastic.co/downloads/elasticsearch 下载Elasticsearch,最新版本是2.3.1。解压之后放到/opt目录下面。命令为: tar zxvf elasticsearch-2.3.1.tar.gz mv elasticsearch-2.3.1 /opt/ 现在,可在elasticsearch的bin目录下运行elasticsearch。我的目录为/opt/elasticsearch-2.3.1/bin;不要使用root用户启动elasticsearch。 ./elasticsearch 对于elasticsearch的配置,可以在/opt/elasticsearch-2.3.1/config下修改elasticsearch.yml文件。 接下来安装elasticsearch-head,这个是elasticsearch集群的管理工具。在elasticsearch的目录下运行如下命令即可: ./plugin install mobz/elasticsearch-head 安装Marvel 因为众所周知的原因

Storm集群的搭建与配置

混江龙づ霸主 提交于 2020-01-22 12:44:30
1、安装 JDK 安装64位JDK: jdk-6u45-linux-x64-rpm.bin。进入安装目录后,执行以下命令安装:   ./jdk-6u45-linux-x64-rpm.bin 在 /etc/profile 下配置环境变量:   #config java   export JAVA_HOME=/usr/java/jdk1.6.0_45   export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar   export PATH=$JAVA_HOME/bin:$PATH 2 、安装 Python 把Python-2.7.5.tgz解压到 /usr/Python 目录下:   tar -zxvf Python-2.7.5.tgz   mv Python-2.7.5 /usr/Python 进入 Python 目录后,依次执行以下命令进行安装: ./configure   make   make install 3、安装依赖的 rpm 包 如果你的系统可以上外网,则可以使用以下命令在线安装:   yum install gcc*   yum install uuid*   yum install e2fsprogs*   yum install libuuid*   yum install libtool*

linux 下搭建 storm

删除回忆录丶 提交于 2020-01-22 12:44:16
搭建storm 需要搭建: 1.zookeeper 搭建 2.下载/安装 storm 的依赖包 zeromq, jzmq,python 2.storm 搭建 一、Zookeeper 安装 下载安装包,到桌面 soft/zookeeper 解压 命令 tar –xzvf zookeeper-3.4.5.tar.gz 解压完成之后得到一个zookeeper-3.4.5 的文件夹一路 cd到conf目录 zookeeper/conf 4.用cp 命令拷贝一个zoo_samle.cfg 为zoo.cfg 5. 然后用vi zoo.cfg命令打开编辑zoo.cfg文件     (改为自己的目录 /home/sufi/Desktop/zookeeper/zookeeper-3.4.5/data)   6. 设置环境变量      export…与截图一样就可以了   7.回到zookeeper/bin目录下,启动zookeeper服务,在bin下运行 ./zkServer.sh start即可      8.测试zookeeper         --在zookeeper/bin目录下运行 ./zkCli.sh -server 192.168.130.130 就是你的服务器和端口         --命令 ifconfig 就可以查到服务器号 二、下载安装storm 的依赖包     

Storm介绍及与Spark Streaming对比

谁说我不能喝 提交于 2020-01-20 01:22:00
1 Storm 介绍 Storm 是由 Twitter 开源的分布式、高容错的实时处理系统,它的出现令持续不断的流计算变得容易,弥补了 Hadoop 批处理所不能满足的实时要求。 Storm 常用于在实时分析、在线机器学习、持续计算、分布式远程调用和 ETL 等领域。 在 Storm 的集群里面有两种节点:控制节点 (Master Node) 和工作节点 (Worker Node) 。控制节点上面运行一个名为 Nimbus 的进程 , 它用于资源分配和状态监控;每个工作节点上面运行一个 Supervisor 的进程,它会监听分配给它所在机器的工作,根据需要启动 / 关闭工作进程。 Storm 集群架构如下图所示: 图 1 Storm 集群架构 Storm 集群中每个组件具体描述如下: l Nimbus :负责在集群里面发送代码,分配工作给机器并且监控状态,在集群中只有一个,作用类似 Hadoop 里面的 JobTracker 。 l ZooKeeper : Storm 重点依赖的外部资源, Nimbus 、 Supervisor 和 Worker 等都是把心跳数据保存在 ZooKeeper 上, Nimbus 也是根据 ZooKeeper 上的心跳和任务运行状况进行调度和任务分配的。 l Supervisor :在运行节点上,监听分配的任务,根据需要启动或关闭工作进程 Worker

Apache Storm 2.0.0 LowLevel 新版

跟風遠走 提交于 2020-01-19 16:41:27
Apache Storm 2.0(新版) Storm是什么? Storm是免费开源的分布式实时计算系统,改系统在 2.0.0 之前改架构核心实现使用Clojure编程实现,在本次版本以后Storm底层实现做了重大的调整使用Java8重构了Storm。Storm是一个实时的流处理引擎,能实现对记录的亚秒级的延迟处理。Storm在 realtime analytics、online machine learning、continuous computation、distributed RPC、 ETL等领域都有应用。每秒中一个计算节点可以处理100万个Tuple记录。除此之外Storm还可以和现有的数据(RDBMS/NoSQL)以及 消息队列集成(Kafka)。 流计算 :将大规模流动数据在不断变化的运动过程中实现数据的实时分析,捕捉到可能有用的信息,并把结果发送到下一计算节点。 主流流计算框架 :Kafka Streaming、Apache Storm、Spark Streaming、Flink DataStream等。 Kafka Streaming:是一套基于Kafka-Streaming库的一套流计算工具jar包,具有简单容易集成等特点。 Apache Storm/Jstorm:流处理框架实现对流数据流的处理和状态管理等操作。 Spark Streaming

Storm-源码分析-Topology Submit-Nimbus-mk-assignments

谁说胖子不能爱 提交于 2020-01-19 15:32:08
什么是"mk-assignment”, 主要就是产生executor->node+port关系, 将executor分配到哪个node的哪个slot上(port代表slot, 一个slot可以run一个worker进程, 一个worker包含多个executor线程) 先搞清什么是executor, 参考 Storm-源码分析- Component ,Executor ,Task之间关系 ;; get existing assignment (just the executor->node+port map) -> default to {} ;; filter out ones which have a executor timeout ;; figure out available slots on cluster. add to that the used valid slots to get total slots. figure out how many executors should be in each slot (e.g., 4, 4, 4, 5) ;; only keep existing slots that satisfy one of those slots. for rest, reassign them across remaining slots ;

大数据架构:flume-ng+Kafka+Storm+HDFS 实时系统组合

£可爱£侵袭症+ 提交于 2020-01-16 06:41:26
http://www.aboutyun.com/thread-6855-1-1.html 个人观点:大数据我们都知道hadoop,但并不都是hadoop.我们该如何构建大数据库项目。对于离线处理,hadoop还是比较适合的,但是对于实 时性比较强的,数据量比较大的,我们可以采用Storm,那么Storm和什么技术搭配,才能够做一个适合自己的项目。下面给大家可以参考。 可以带着下面问题来阅读本文章: 1.一个好的项目架构应该具备什么特点? 2.本项目架构是如何保证数据准确性的? 3.什么是Kafka? 4.flume+kafka如何整合? 5.使用什么脚本可以查看flume有没有往Kafka传输数据 做软件开发的都知道模块化思想,这样设计的原因有两方面: 一方面是可以模块化,功能划分更加清晰,从“数据采集--数据接入--流失计算--数据输出/存储” 1).数据采集 负责从各节点上实时采集数据,选用cloudera的flume来实现 2).数据接入 由于采集数据的速度和数据处理的速度不一定同步,因此添加一个消息中间件来作为缓冲,选用apache的kafka 3).流式计算 对采集到的数据进行实时分析,选用apache的storm 4).数据输出 对分析后的结果持久化,暂定用mysql 另一方面是模块化之后,假如当Storm挂掉了之后,数据采集和数据接入还是继续在跑着,数据不会丢失

jstorm系列-1:入门

社会主义新天地 提交于 2020-01-16 03:06:34
一、 Storm整体介绍 Storm 是一个类似Hadoop MapReduce的系统, 用户按照指定的接口实现一个任务,然后将这个任务递交给JStorm系统,Jstorm将这个任务跑起来,并且按7 * 24小时运行起来,一旦中间一个Worker 发生意外故障, 调度器立即分配一个新的Worker替换这个失效的Worker。 因此,从应用的角度,JStorm 应用是一种遵守某种编程规范的分布式应用。从系统角度, JStorm一套类似MapReduce的调度系统。 从数据的角度, 是一套基于流水线的消息处理机制。 实时计算现在是大数据领域中最火爆的一个方向,因为人们对数据的要求越来越高,实时性要求也越来越快,传统的Hadoop MapReduce,逐渐满足不了需求,因此在这个领域需求不断。 1.1. Storm组件和Hadoop组件对比 Storm Hadoop 角色 Nimbus JobTracker Supervisor TaskTracker Worker Child 应用名称 Topology Job 编程接口 Spout/Bolt Mapper/Reducer 1.2. 优点 在Storm和JStorm出现以前,市面上出现很多实时计算引擎,但自Storm和JStorm出现后,基本上可以说一统江湖: 究其优点: 开发非常迅速:接口简单,容易上手,只要遵守Topology