大数据探索
程序员小陶
公众号:大数据学习指南
展开
-
选择适合你的开源 OLAP 引擎
摘要:本文主要介绍了主流开源的OLAP引擎:Hive、Sparksql、Presto、Kylin、Impala、Druid、Clickhouse 等,逐一介绍了每一款开源 OLAP 引擎,包含架构、优缺点、使用场景等,希望可以给大家有所启发。PS: 文章较长,建议收藏慢慢看。说起 OLAP 要追溯到 1993 年。在1993年,E.F.Codd 及其同事制定了下面这12条规则来定义 了 OLAP准则1 OLAP模型必须提供多维概念视图准则2 透明性准则准则3 存取能力准则准则4 稳定的报表能力原创 2020-05-13 21:32:38 · 664 阅读 · 0 评论 -
杀掉僵尸 MapReduce 任务的两种方式
方法一1.使用命令获取 job_idhadoop job -list2. 杀掉进程hadoop job -kill $JobId方法二使用 yarn 来管理;1.通过 web 界面(8088端口)或命令,可以查看任务ID。或者使用 yarn application -list2.使用命令杀掉任务yarn application -kill $ApplicationId...原创 2018-11-18 15:58:10 · 1215 阅读 · 0 评论 -
Hive数据倾斜优化
Hive数据倾斜Group By 中的计算均衡优化1.Map端部分聚合先看看下面这条SQL,由于用户的性别只有男和女两个值 (未知)。如果没有map端的部分聚合优化,map直接把groupby_key 当作reduce_key发送给reduce做聚合,就会导致计算不均衡的现象。虽然map有100万个,但是reduce只有两个在做聚合,每个reduce处理100亿条记录。selectuser...转载 2018-11-20 10:21:02 · 196 阅读 · 0 评论 -
Hive问题汇总记录,持续更新
1.hive-site.xml s设置了 jdbc 的源,添加字符集的之后报错:配置JDBC源遇到问题 : The reference to entity “characterEncoding” must end with the ‘;’ delimiter这里的 & 应该使用转义字符 &来代替。于是,改为如下配置:另外,这里还有一些需要在 xml 中需要转...原创 2018-11-24 16:17:11 · 171 阅读 · 0 评论 -
HBase 架构详解
Hbase框架介绍HBase是一个分布式的、面向列的开源数据库。不同点:l 和一般的关系数据库不同,hbase是一个适合于非结构化数据存储的数据库。l Hbase是基于列而不是基于行的模式。在分布式的生产环境中,HBase 需要运行在 HDFS 之上,以 HDFS 作为其基础的存储设施。HBase上层提供了访问的数据的 Java API 层,供应用访问存储在 HBase 的数据。在 ...原创 2018-12-06 10:24:19 · 287 阅读 · 0 评论 -
解决WARN TaskSchedulerImpl: Initial job has not accepted any resources;
解决WARN TaskSchedulerImpl: Initial job has not accepted any resources;spark-submit 可以提交任务到 spark 集群执行,也可以提交到 hadoop 的 yarn 集群执行./spark-submit \–master spark://node01:7077 \–driver-memory 512m \ ...原创 2018-12-13 21:35:24 · 6813 阅读 · 1 评论 -
HDFS的NameNode内存解析
概述从整个HDFS系统架构上看,NameNode是其中最重要、最复杂也是最容易出现问题的地方,而且一旦NameNode出现故障,整个Hadoop集群就将处于不可服务的状态,同时随着数据规模和集群规模地持续增长,很多小量级时被隐藏的问题逐渐暴露出来。所以,从更高层次掌握NameNode的内部结构和运行机制尤其重要。除特别说明外,本文基于社区版本Hadoop-2.4.1[1][2],虽然2.4.1之...原创 2018-12-13 21:36:56 · 263 阅读 · 0 评论 -
MR的原理和运行流程
文章目录MR的原理和运行流程Map的运行过程Reduce处理过程Shuffle过程MR运行过程Yarn && JobMR的原理和运行流程Map的运行过程以HDFS上的文件作为默认输入源为例(MR也可以有其他的输入源)block是HDFS上的文件块,split是文件的分片(逻辑划分,不包含具体数据,只包含这些数据的位置信息)。一个split包含一个或多个block,...原创 2018-12-13 21:37:50 · 22805 阅读 · 2 评论 -
数据倾斜
文章目录数据倾斜什么是数据倾斜Map端倾斜(比较少见)Reduce端倾斜关联Join数据倾斜数据倾斜什么是数据倾斜数据在集群上处理时,会被分配到各个节点上,当数据分配不均匀时,个别节点的数据量特别多,会导致整个任务变慢,甚至出现内存溢出程序失败的情况。Map端倾斜(比较少见)Map端每个节点处理的数据量由InputFormat决定.对于输入数据是HDFS上的文件,FileInpu...原创 2018-12-13 21:39:08 · 314 阅读 · 0 评论 -
MR自定义二次排序
在一个数据文件中,首先按照key排序。在key相同的情况下,按照value大小排序的情况称为二次排序。自定义key :NewKey实现比较规则自定义GroupingComparator方法在map阶段,使用job.setInputFormatClass定义的InputFormat将输入的数据集分割成小数据块splites,同时InputFormat提供一个RecordReder的实现...原创 2018-12-13 21:39:58 · 448 阅读 · 0 评论 -
kafka 如何做到1秒发布百万级条消息?
kafka 如何做到1秒发布百万级条消息kafak 提供的生产端的API发布消息到一个 topic 或者多个 topic 的一个分区(保证消息的顺序性)或多个分区(并行处理,不能保证消息的顺序性)。topic 可以理解为数据的类别,是一个逻辑概念。维护一个Topic中的分区log,以顺序追加的方式向各个分区中写入消,每一个分区都是不可变的消息队列,数据由 k , v 组成,k 是 offset...原创 2018-12-13 21:42:18 · 756 阅读 · 0 评论 -
kafka 数据可靠性深度解读
文章目录kafka 数据可靠性深度解读多分区、多副本多分区的设计的特点:kafak 分区 leader 机制kafka 数据可靠性深度解读多分区、多副本kafka 的消息保存在Topic中,Topic可分为多个分区,为保证数据的安全性,每个分区又有多个Replia。多分区的设计的特点:1.为了并发读写,加快读写速度;2.是利用多分区的存储,利于数据的均衡;3.是为了加快数据的恢复速率...原创 2018-12-13 21:45:35 · 354 阅读 · 0 评论 -
Spark中foreachPartition和mapPartitions的区别
Spark中foreachPartition和mapPartitions的区别spark的运算操作有两种类型:分别是Transformation和Action,区别如下:Transformation:代表的是转化操作就是我们的计算流程,返回是RDD[T],可以是一个链式的转化,并且是延迟触发的。Action:代表是一个具体的行为,返回的值非RDD类型,可以一个object,或者是一个数值,也...原创 2018-12-20 20:36:42 · 209 阅读 · 0 评论 -
用sqoop将mysql的数据导入到hive表中,原理分析
Sqoop 将 Mysql 的数据导入到 Hive 中准备Mysql 数据如图所示,准备一张表,数据随便造一些,当然我这里的数据很简单。编写命令编写参数文件个人习惯问题,我喜欢把参数写到文件里,然后再命令行引用。vim mysql-info,# 配置数据库连接信息--connectjdbc:mysql://192.168.33.11:3306/sqoop_test--user...原创 2018-11-24 10:25:06 · 1043 阅读 · 0 评论 -
Hive 内置函数权威指南,操作大全
Hive 提供了很多内置的函数,可以使我们很方便的操作一些数据。比较运算1、等值比较: =语法:A=B操作类型:所有基本类型描述: 如果表达式A与表达式B相等,则为TRUE;否则为FALSEhive> select 1 from ximi where 1=1;2、不等值比较: <>语法: A <> B操作类型: 所有基本类型描述: 如果表达原创 2018-11-17 13:34:10 · 413 阅读 · 0 评论 -
Centos7 安装mysql 需要自己下载 rpm
一开始使用安装命令 :yum -y install mysql mysql-server mysql-devel安装完成却发现Myserver安装缺失,在网上找原因,原来是因为CentOS 7上把MySQL从默认软件列表中移除了,用MariaDB来代替,所以这导致我们必须要去官网上进行下载,找到链接,用wget打开:a: wget http://dev.mysql.com/get/mysql-...原创 2018-11-16 00:57:36 · 157 阅读 · 0 评论 -
Linux02-学习记录
此系列文章是探索大数据道路的记录,有些记录是为了备忘,有些记录是为了学习心得内容,有些是为了给大家提供一个好的学习资料。持续更新中…简书对 markdown 语法的支持不够好。大家也可以到我的私人blog查看该系列文章。。blog.cuteximi.com ,也可以关注【码省理工】公众号与我交流技术。写在前面时刻提醒自己!保持记笔记的习惯,按照统一(md)的格式可以每节课结束记一次...原创 2018-11-04 00:12:24 · 1001 阅读 · 0 评论 -
linux03-学习记录
此系列文章是探索大数据道路的记录,有些记录是为了备忘,有些记录是为了学习心得内容,有些是为了给大家提供一个好的学习资料。持续更新中…简书对 markdown 语法的支持不够好。大家也可以到我的私人blog查看该系列文章。。blog.cuteximi.com ,也可以关注【码省理工】公众号与我交流技术。写在前面时刻提醒自己!保持记笔记的习惯,按照统一(md)的格式可以每节课结束记一次...原创 2018-11-04 00:13:28 · 246 阅读 · 0 评论 -
mac 下 ssh被拒绝
sh localhostssh: connect to host localhost port 22: Connection refused这是mac 没有开启远程登录的权限。原创 2018-11-06 19:22:07 · 2726 阅读 · 0 评论 -
mac电脑本地运行MapReduce, Permission denied
在本地运行mapreduce程序的时候,会默认用本地系统的用户去将作业写入hdfs文件系统(在服务器上)中, 由于此用户对hadoop目录并没有写入权限,所以导致异常的发生。解决方案:方案1:修改你要操作的目录权限hadoop fs -chmod -R 777 某目录方案2:直接修改配置文件直接在hdfs的配置文件中,将dfs.permissions修改为False...原创 2018-11-09 14:46:06 · 633 阅读 · 0 评论 -
在idea上配置hadoop开发环境,使用maven配置hadoop的依赖,自动管理相关jar包
使用maven可以很方便的管理我们项目的依赖,不需要手动去加载项目依赖的ja包,也方便项目的迁移,所以我选择使用 maven 来管理hadoop的开发环境的jar包。maven官网JDK版本的要求Hadoop 2.7 以及之后的版本,需要JDK 7;Hadoop 2.6 以及之前的版本,支持JDK 6;最好按照官方的来,要不然可能会出现一些小的bug。。。我配置的版本是hadoop ...原创 2018-11-09 15:22:59 · 15587 阅读 · 3 评论 -
使用idea本地运行mapreduce程序,控制台log4j日志没有打印出来,可以这样解决
欢迎一起来交流mapreduce 项目 可以运行成功,但是控制台这几条很醒目的日志信息,说明项目没有配置log4j,在开发的过程中,我们需要更详细的日志信息来定位问题和查看整个过程。这个问题,上面控制台给了一个网址:http://logging.apache.org/log4j/1.2/faq.html#noconfig可以看到官方给的解答是:我们的项目中没有找到log4j.prope...原创 2018-11-09 15:52:25 · 5087 阅读 · 4 评论 -
SSH详解以及免密登录配置,深入理解
前面是理论基础,后部分是免密搭建详细步骤。 Secure ShellSecure Shell(安全外壳协议,简称SSH)是一种加密的网络传输协议,目的是在不安全的网络中为网络服务提供安全的传输环境。SSH通过在网络中创建安全隧道来实现SSH客户端与服务器之间的连接。虽然任何网络服务都可以通过SSH实现安全传输,SSH最常见的用途是远程登录系统。传统的网络服务传统的网络服务...原创 2018-11-01 00:32:00 · 1379 阅读 · 0 评论 -
Linux 下配置 Hadoop2.x 高可用 zookeeper Yarn,详细步骤。
前提准备操作系统:Mac OS XJDK:1.8.0_121命令终端:iTerm2(Mac自带的命令终端也一样,只是配置环境参数需要到/.bash_profile下添加,对于iTerm2需要到/.zshrc中添加)软件包管理工具:brew(能够方便的安装和卸载软件,使用brew cash还可以安装图形化的软件,类似于Ubuntu下的apt-get以及前端里的npm)...原创 2018-11-09 19:15:58 · 388 阅读 · 0 评论 -
Tengine
Tengine是由淘宝网发起的 Web 服务器项目。它在 Nginx 的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台。继承Nginx-1.8.1的所有特性,兼容Nginx的配置;在Nginx 1.8之后,所有的的配置以及API都是想通的,可以自...原创 2018-11-05 14:21:28 · 707 阅读 · 1 评论 -
Docker入门
什么是Docker官网的描述是这样的:Docker is the world's leading software container platform.Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他...原创 2017-08-20 16:05:00 · 166 阅读 · 0 评论 -
Linux centos 使用yum安装MySQL
使用 yum 安装1.yum install mysql-server -y2.yum install mysql-devel -y3.启动 service mysqld start此时 root 用户是没有免密的,可以直接使用 mysql命令 就可以连接上服务器。4.使用 mysqladmin -u root password 123456 给 root 用户指定密码1234565....原创 2018-11-16 00:50:28 · 125 阅读 · 0 评论 -
Linux centos6.5 安装mysql 以及简要操作书册
安装mysql1、查看自己虚拟机有没有mysql的安装包sudo rpm -qa | grep mysql2、卸载:sudo rpm -e --nodeps mysql-libs-5.1.66-2.el6_3.x86_643、卸载完成之后再查看一下,确保卸载完成4、安装mysql服务:sudo yum -y install mysql-server (如果yum源有问题,那就更换一下y...原创 2018-11-16 00:52:15 · 149 阅读 · 0 评论 -
Linux01-学习记录
此系列文章是探索大数据道路的记录,有些记录是为了备忘,有些记录是为了学习心得内容,有些是为了给大家提供一个好的学习资料。持续更新中…简书对 markdown 语法的支持不够好。大家也可以到我的私人blog查看该系列文章。。blog.cuteximi.com ,也可以关注【码省理工】公众号与我交流技术。写在前面时刻提醒自己!保持记笔记的习惯,按照统一(md)的格式可以每节课结束记一次...原创 2018-11-03 23:46:43 · 243 阅读 · 0 评论