数据技术
文章平均质量分 52
离线计算、实时计算等
yunhao.wei
这个作者很懒,什么都没留下…
展开
-
yarn的ha机制
ResourceManager HA 由一对 Active,Standby节点构成,通过RMStataStore存储内部数据和主要应用的数据及标记。 目前支持的可替代的 RMStateStore实现有:基于内存的 MemoryRMStateStore,基于文件系统的FileSystemRMStateStore,及基于Zookeeper的ZKRMStateStore。 ResourceMan原创 2018-01-11 18:06:52 · 718 阅读 · 1 评论 -
hadoop2.5.0源码包编译
第一步:查看源码包文件BUILDING.txt第二步:查看并安装所依赖的包[root@node1 software]# rpm -qa | grep Findbugs [root@node1 software]# rpm -qa | grep ProtocolBuffer [root@node1 software]# rpm -qa | grep CMake [root@no原创 2017-12-25 13:48:33 · 705 阅读 · 0 评论 -
mapreduce基础原理
Map完成过程为:<k1,v1> => list<k2,v2>1. 写入环形缓冲区Map函数产⽣输出时,不是简单的写⼊到磁盘。⾸先,每个map任务在内存中都有⼀个环形缓冲区,⼀般默认⼤⼩为100M。Map开始产⽣输出后,先将数据存⼊这个缓冲区,当缓冲区存储内容达到阈值(⽐如80%)时,启动⼀个后台线程将内容溢出(spill)到本地磁盘。在溢出写的同时,map继续输出到缓冲区,如果此期间缓冲区填满,则需要阻塞等待写磁盘的过程完成。2. 溢出写到磁盘分区 -> 排原创 2020-12-17 15:15:06 · 193 阅读 · 0 评论 -
hdfs常用命令
bin/hdfs dfs命令appendToFile Usage: hdfs dfs -appendToFile (localsrc) … (dst) 追加一个或者多个文件到hdfs制定文件中.也可以从命令行读取输入. hdfs dfs -appendToFile localfile /user/hadoop/hadoopfile hdfs dfs -appendToFil原创 2018-01-09 12:38:08 · 900 阅读 · 0 评论 -
orc和parquet数据存储格式
Parquet行组(Row Group):按照行将数据物理上划分为多个单元,每一个行组包含一定的行数。一个行组包含这个行组对应的区间内的所有列的列块官方建议更大的行组意味着更大的列块,使得能够做更大的序列IO。我们建议设置更大的行组(512MB-1GB)。因为一次可能需要读取整个行组,所以我们想让一个行组刚好在一个HDFS块中。因此,HDFS块的大小也需要被设得更大。一个最优的读设置是:1GB的行组,1GB的HDFS块,1个HDFS块放一个HDFS文件。列块(Column Chunk):在原创 2020-12-17 16:20:27 · 677 阅读 · 0 评论 -
hadoop apache版本和cdh版本的区别和联系
1、cdh比原生的Apache发行版本包含了更多的补丁,用于增强稳定性,改善功能,有时候还增加功能特性 2、cdh版本是由cloudera公司开源的,可以使用cm平台进行管理,比原生的Apache版本安装、维护更加省力 3、但是对技术人员的要求更高,必须对原生apache版本的各个组件理解清晰 4、在cm管理平台中,cdh的parcel包不包含某些组件,需要自己下载对应的parcel包,比如原创 2018-01-12 11:30:27 · 8678 阅读 · 0 评论 -
namenode和secondNameNode通信原理
Namenode主要维护两个文件,一个是fsimage,一个是editlog。 fsimage保存了最新的元数据检查点,包含了整个HDFS文件系统的所有目录和文件的信息。对于文件来说包括了数据块描述信息、修改时间、访问时间等;对于目录来说包括修改时间、访问权限控制信息(目录所属用户,所在组)等。 editlog主要是在NameNode已经启动情况下对HDFS进行的各种更新操作进行记录,HDFS原创 2018-01-11 17:38:53 · 2030 阅读 · 0 评论 -
namenode与datanode的通信原理
分析DataNode时, 因为DataNode上保存的是数据块, 因此DataNode主要是对数据块进行操作A. DataNode的主要工作流程:客户端和DataNode的通信: 客户端向DataNode的数据块读写, 采用TCP/IP流接口(DataXceiver)进行数据传输 客户端在检测到DataNode异常, 主动发起的数据块恢复, 客户端会通过ClientDatanod原创 2018-01-11 17:47:15 · 2610 阅读 · 0 评论 -
hadoop优化策略
Hadoop YARN同时支持内存和CPU两种资源的调度在YARN中,资源管理由ResourceManager和NodeManager共同完成,其中ResourceManager中的调度器负责资源的分配,而NodeManager则负责资源的供给和隔离。ResourceManager将某个NodeManager上资源分配给任务(这就是所谓的“资源调度”)后,NodeManager需按照要求为...原创 2017-12-25 10:03:00 · 903 阅读 · 0 评论 -
hadoop3.0新特性
主要变化1、Java最低版本要求java8,使用java7或者更低版本的需要升级到8。2、HDFS支持纠编码erasure encoding,简称EC技术。EC技术可以防止数据丢失,又可以解决HDFS存储空间翻倍的问题。劣势是: ○ 一旦数据需要恢复,会带来网络消耗,因为不仅要读取原数据块,还要读取校验块。 ○ 存储文件,或者恢复文件需要编码解码,会有CPU消耗。3、Hadoop co原创 2017-12-25 09:38:21 · 1058 阅读 · 0 评论 -
hadoop基础简介
Hadoop是由Google发起的三篇论文演变为三个框架 MapReduce->MapReduce GFS->HDFS Big Table->HBase再后来MapReduce和HDFS合并,Hadoop由此诞生Hadoop项目主要包括以下四个模块 Common: 为Hadoop的其他模块提供基础设施。 Hadoop HDFS: 一原创 2017-12-25 09:41:03 · 194 阅读 · 0 评论 -
hadoop的两种方式调度任务
调度器 概念:调度器队列的方式来管理job,队列内部通过某种机制实现job的运行。 原理:每一种调度器中可以有对个队列,但是所有的队列必须在”root”下面root.root,hadoop默认的队列是root.default。1、容量调度 APACHE:容量调度 名称:capacity.CapacityScheduler原创 2017-12-25 09:47:43 · 942 阅读 · 0 评论 -
hdfs的ha机制
从上图中,我们可以看出 NameNode 的高可用架构主要分为下面几个部分:Active NameNode 和 Standby NameNode:两台 NameNode 形成互备,一台处于 Active 状态,为主 NameNode,另外一台处于 Standby 状态,为备 NameNode,只有主 NameNode 才能对外提供读写服务。主备切换控制器ZKFailoverControll原创 2018-01-11 18:01:15 · 426 阅读 · 0 评论 -
yarn工作流程
服务功能ResouceManager: 1、处理客户端的请求 2、启动和监控ApplicationMaster 3、监控nodemanager 4、资源的分配和调度Nodemanager 1、处理单个节点的资源管理 2、处理来自ResouceManager的命令 3、处理来自ApplicationMaster的命令A原创 2017-12-25 09:43:43 · 1807 阅读 · 0 评论 -
kudu数据刷新策略
AUTO_FLUSH_SYNC(默认): 所有的写入都将被发送到带有Apply()函数应用程序的服务器上,Flush()函数不会产生任何效果,因为每个Apply()调用都已经刷新了缓冲区。AUTO_FLUSH_BACKGROUND: 每一个应用的apply()函数都会返回的非常快,但是写操作会被发送到后台进程,可能与来自同一会话的其他写入一起进行批处理。 由于写入是在后台应用的,因此任何错误都原创 2017-12-23 11:33:07 · 4774 阅读 · 0 评论 -
kudu底层存储原理
架构1个Table包含多个Tablet,其中Tablet的数量是根据hash或者是range进行设置的1个Tablet中包含MetaData信息和多个RowSet信息,其中MetaData信息是block和block在data中的位置。1个RowSet包含一个MemRowSet和多个DiskRowSet,其中MemRowSet用于存储insert数据和update后的数据,写满后会刷新到原创 2018-02-06 09:50:05 · 3226 阅读 · 0 评论 -
kudu和hbase的区别和联系
前提hbase的物理模型是master和regionserver,regionserver存储的是region,region里边很有很多store,一个store对应一个列簇,一个store中有一个memstore和多个storefile,store的底层是hfile,hfile是hadoop的二进制文件,其中HFile和HLog是hbase两大文件存储格式,HFile用于存储数据,HLog...原创 2017-11-07 17:32:18 · 17873 阅读 · 3 评论 -
kudu1.7.0新特性
Apache Kudu 1.7.0是一个次要版本,提供新功能,性能优化,增量改进和错误修复。1、kudu支持decimal类型 2、Kudu用于自动修复由于服务器或磁盘故障而丢失副本的tablet策略已得到改进。新的重新复制策略或副本管理方案首先添加替代tablet副本,然后驱逐失败的。 3、新的扫描读取模式READ_YOUR_WRITES。在C ++,Java和Python客户端中创建新...原创 2018-05-09 13:13:26 · 1772 阅读 · 3 评论 -
kudu create table api
kudu对表进行创建操作 String tableName = "wyh_main"; KuduClient client = new KuduClient.KuduClientBuilder("hadoop4,hadoop5,hadoop6").defaultAdminOperationTimeoutMs(600000).build(); //原创 2018-01-11 17:01:34 · 2401 阅读 · 0 评论 -
triggering maintenance ops(触发维护计划)
Maintenance Op Scheduling(维护运行计划)就本文档而言,“maintenance operations”是指Kudu在正常操作过程中运行的任何后台进程。MaintenanceManager 必须智能schedule 地安排这些操作以保持系统的平稳运行。部分原因是,这是当前性能与未来性能之间的一个折衷。例如,运行压缩将花费一些I / O现在为了加快插入。部分地,这是一个执原创 2018-01-24 19:50:46 · 305 阅读 · 0 评论 -
kudu select data api
kudu对表数据进行读取操作重要调优参数: defaultAdminOperationTimeoutMs:用户对kudu的createTable,insertTable的操作连接超时数设置 String tableName = "wyh_main"; KuduClient client = new KuduClient.KuduClientBuilder("hadoop原创 2018-01-11 16:58:20 · 1380 阅读 · 0 评论 -
kudu1.6.0的已知问题和限制
架构主键在创建表之后,主键可能不会更改。您必须删除并重新创建一个表以选择新的主键。构成主键的列必须首先在模式中列出。行的主键可能不会使用该UPDATE功能进行修改。要修改一个行的主键,该行必须被删除,并用修改后的键重新插入。这样的修改是非原子的。包含DOUBLE,,FLOAT或BOOL类型的列不被允许作为主键定义的一部分。另外,作为主键定义一部分的所有列都必须是NOT NU原创 2018-01-09 18:52:22 · 1542 阅读 · 0 评论 -
kudu1.5.0新特性
New features1、tablet servers现在在启动的时候可以容忍磁盘故障,这个功能是实验性,默认情况下,如果遇到磁盘故障,Kudu将崩溃。如果启用,在磁盘上有任何数据的tablet都不会打开和在需要的时候会进行副本的复制,启动此功能, 设置 –suicide_on_eio flag to false,另外,可配置的权衡,在新添加的tablet对磁盘故障的容忍,它的并行化IO通过...原创 2018-02-08 05:48:13 · 1394 阅读 · 0 评论 -
kudu1.6.0、1.5.0、1.4.0的已知问题和限制对比
kudu1.4.0 每台平板电脑服务器推荐的最大存储数据量,复制后和压缩后数据量为4TB。 建议每个平板电脑服务器的最大数量为1000kudu1.5.0和kudu1.6.0 每台平板电脑服务器推荐的最大存储数据量,复制后和压缩后数据量为8TB。 建议每个平板电脑服务器的最大数量为2000原创 2018-01-09 19:01:44 · 431 阅读 · 0 评论 -
kudu upsert data api
kudu对插入数据进行更新操作 try { String tableName = "wyh_main"; KuduClient client = new KuduClient.KuduClientBuilder("hadoop4,hadoop5,hadoop6").defaultAdminOperationTimeoutMs(600000).build(原创 2018-01-11 16:51:05 · 4106 阅读 · 1 评论 -
kudu tablet design
前提1、kudu是分布式存储系统(基于linux) 2、table是存储的基本单位,table中包含多个tablet tablet是table中一段segment,每一个tablet包含一段连续的数据,由rowset组成,rowset由一组rows组成(n条数据、n行数据),包含MemoryRowSet和DiskRowSet,DiskRowSet包含Base Data、UNDO Data、原创 2018-01-08 14:33:00 · 712 阅读 · 0 评论 -
kudu性能调优
1、Kudu Tablet Server Maintenance Threads 解释:Kudu后台对数据进行维护操作,如写入数据时的并发线程数,一般设置为每台机器磁盘数据目录的数量*3参数:maintenance_manager_num_threads2、Kudu Tablet Server Block Cache Capacity Tablet 解释:分配给Kudu Tab...原创 2018-02-08 05:52:44 · 20754 阅读 · 7 评论 -
kudu1.6.0新特性
1、Kudu服务器现在可以忍受NTP时钟同步的短暂中断。当任何Kudu守护进程启动时,NTP同步仍然是必需的。 2、当包含数据块的磁盘失败时,tablet server将不再崩溃,除非该磁盘也存储了预写日志或tablet元数据,取代崩溃,tablet server将关闭任何可能在当地丢失数据的tablets,而Kudu将把受影响的tablets复制到另一台tablet server上。 3、在包原创 2017-12-23 11:28:48 · 1296 阅读 · 0 评论 -
kudu命令详解
kudu tabletkudu tablet leader_step_down 功能:强制使的leader step down(即强制使现在的leader节点变为follower节点)kudu tablet leader_step_down 10.110.18.102:7051,10.110.18.184:7051,10.110.18.185:7051 08c7def983...原创 2017-12-25 14:20:35 · 16503 阅读 · 1 评论 -
kudu alter table api
kudu对表字段进行操作 String tableName = "wyh_main"; KuduClient client = new KuduClient.KuduClientBuilder("hadoop4,hadoop5,hadoop6").defaultAdminOperationTimeoutMs(600000).build(); try { O原创 2018-01-11 17:12:57 · 3055 阅读 · 0 评论 -
kudu读写流程
当创建Kudu客户端时,其会从主master上获取tablet位置信息,然后直接与服务于该tablet的服务器进行交谈。为了优化读取和写入路径,客户端将保留该信息的本地缓存,以防止他们在每个请求时需要查询主机的tablet位置信息。随着时间的推移,客户端的缓存可能会变得过时,并且当写入被发送到不是领导者的tablet服务器时,则将被拒绝。然后,客户端将通过查询主服务器发现新领导者的位置来更新其缓存原创 2017-11-07 17:30:26 · 3254 阅读 · 0 评论 -
kudu数据刷新策略api
课程链接: http://edu.51cto.com/course/15174.htmlpackage src.main.java.org.kududb.examples.sample;import com.google.common.collect.ImmutableList;import org.apache.kudu.ColumnSchema;import org.apache.k...原创 2018-10-19 14:59:18 · 1611 阅读 · 0 评论 -
kudu master design
The Catalog Manager and System TablesCatalog Manager 监听用户创建的kudu表和tablet。 所有table和tablet的元数据信息以写入时复制(copy-on-write)的objects形式存储在内存和磁盘里,kudu系统的sys.catalog信息只存储在master节点上,它在master启动时被加载进内存。 为了保证元数据的原创 2018-01-08 12:58:16 · 471 阅读 · 0 评论 -
kudu insert data api
kudu对表进行插入数据 String tableName = "wyh_main"; KuduClient client = new KuduClient.KuduClientBuilder("hadoop4,hadoop5,hadoop6").defaultAdminOperationTimeoutMs(600000).build(); //原创 2018-01-11 17:05:22 · 2089 阅读 · 0 评论 -
kudu的schema设计
列设计:Kudu表由一个或多个列组成,每个列都具有定义的类型。不属于主键的列可能为空。支持的列类型包括:boolean8-bit signed integer16-bit signed integer32-bit signed integer64-bit signed integerunixtime_micros (64-bit microseconds since the ...原创 2018-01-08 11:30:46 · 4550 阅读 · 0 评论 -
kudu线程数解释
tablet-open 解释:用于初始化tablet maintenance_sch 解释:调度MaintenanceOp对象进行工作 MaintenanceMgr 解释:Kudu后台对数据进行维护操作,如flush、compaction、inserts、updates、deletes;每个tablet创建多个MaintenanceOp对象,代表可以在其上执行的各种维护操作。它们通过Ma原创 2018-01-24 19:55:45 · 714 阅读 · 0 评论 -
hbase优化策略
JVM讲解新生代 对象刚创建过来存储的地方,新生代空间大小一般为128~512M,数据在新生代停留时间过长,就会转移到老生代中 老年代 存活时间比较长的,主要的应用程序,老生代可达几GB,当不用了,gc会回收的 永久代(jdk1.8元空间) 经历过几次回收后,还存在的 内存分配: -Xmx:表示最大可用内存 -Xms:表示初始分配内存 -Xmn:年轻代堆内存分配 +Use原创 2017-12-24 14:32:37 · 1014 阅读 · 0 评论 -
hbase架构和表设计
架构hbase存储原理底层的存储是字节存储,按照字典排序,key-value格式存储: key=ts+rowkey+cf+col,value=真正的值物理模型一个regionserver中管理多个region,region是负载均衡的最小单位 一个region里边有很多store,一个store对应一个列簇,但一般情况下只有一个store 一个store里边有一个mems原创 2018-01-08 21:33:32 · 400 阅读 · 0 评论 -
redis安装流程
1、安装依赖包yum -y install gcc gcc-c++ libstdc++-devel tcl2、获取安装文件并解压文件tar -zvx -f redis-3.2.4.tar.gz 3、进入目录cd redis-3.2.44、编译make5、安装make install6、设置配置文件路径mkdir -p /etc/red...原创 2018-02-08 06:48:06 · 289 阅读 · 0 评论 -
mysql更改数据库和表编码
第一步:查看全局编码方式show variables like ‘character%’; 第二步:设置全局的编码方式set character_set_client = utf8; set character_set_connection = utf8; set character_set_database = utf8; set character_set_files原创 2017-12-24 14:26:59 · 2055 阅读 · 0 评论