- 博客(10)
- 收藏
- 关注
原创 hbase调优
预分区 一种可以加快批量写入速度的方法是通过预先创建一些空的regions,这样当数据写入 HBase时,会按照region分区情况,在集群内做数据的负载均衡。 知道hbase数据表的key的分布情况,就可以在建表的时候对hbase进行region的预分区。这样做的好处是防止大数据量插入的热点问题,提高数据插入的效率。 步骤: 首先就是要想明白数据的key是如何分布的,然后规划一下要分成多少region,每个region的startkey和endkey是多少,然后将规划的key写到一个文件中。key后面会跟
2021-12-22 20:44:23
230
原创 hbase搭建流程
1、启动hadoop start-all.sh 验证 http://master:50070 2、启动zookeeper 需要在在三台中分别启动 zkServer.sh start zkServer.sh status 搭建hbase 1、上传解压配置环境变量 tar -xvf hbase-1.4.6-bin.tar.gz 2、修改hbase-env.sh文件 增加java配置 export JAVA_HOME=/usr/local/soft/jdk1.8.0_171 关闭默认zk配置 export HBA
2021-12-22 20:43:17
262
原创 hive的常用函数使用
时间类型 date:yyyy-MM-dd timestamp: yyyy-MM-dd HH:mm:ss 日期函数 时间戳转日期格式 from_unixtime(bigint unixtime,格式) 格式可自己指定,默认是yyyy-MM-dd HH:mm:ss格式,时间戳是bigint类型 返回值:string 获取当前时间的时间戳 select unix_timestamp() timestamp日期时间转时间戳 默认情况下: unix_timestamp(‘yyyy-MM-dd HH:mm:ss’
2021-12-22 20:41:09
1183
原创 spark搭建
standalone 1、上传解压,配置环境变量 配置bin目录 2、修改配置文件 conf cp spark-env.sh.template spark-env.sh 增加配置 export SPARK_MASTER_IP=master export SPARK_MASTER_PORT=7077 export SPARK_WORKER_CORES=2 export SPARK_WORKER_INSTANCES=1 export SPARK_WORKER_MEMORY=2g export JAVA_HOME
2021-12-22 20:36:57
178
原创 spark调优
代码调优 避免创建重复的RDD 尽可能复用同一个RDD 对多次使用的RDD进行持久化 首选缓存策略是memory_only,如果RDD中的数据比较多,直接使用这种持久化级别,容易导致JVM的OOM内存溢出异常 其次再是MEMORY_AND_DISK_SER,SER会进行序列化,对数据进行压缩 尽量避免使用shuffle类算子 使用map-side预聚合的shuffle操作 使用高性能的算子 使用reducerByKey代替groupByKey,reducerByKey会在map端提前
2021-12-20 21:30:18
1438
原创 hadoop的yarn工作流程
yarn是如何执行一个mapreduce job的: 首先,Resource Manager会为每一个application在NodeManager里面申请一个container,然后在container里面启动一个application master。container在yarn中是分配资源的容器(内存、cpu、硬盘等),它启动时便会相应启动一个jvm。 然后,application master便陆续为application包含的每一个task向resource manager申请一个container
2021-12-20 21:25:58
1385
原创 shuffle机制
shuffle过程:map方法之后,reduce方法之前的数据处理过程称为shuffle过程 在环形缓冲区出来以后,进行分区,排序(快排,对key的索引进行排序,按照字典顺序排),然后可以有combiner过程,进行提前预聚合,再进行溢写。 有多次溢写(因为环形缓冲区100M不止存储数据,还存储了像索引这些的元数据),形成多个溢写文件。 再对溢写文件进行归并排序,形成一个分区的文件,写到磁盘。 reduce task对拉去相同分区的数据,再对相同分区的数据进行归并、排序、分组,使得相同的key进入同一个r.
2021-12-20 21:24:50
150
原创 mapreduce详细工作流程
mapreduce工作流程 map任务处理 1.1 框架使用InputFormat类的子类把输入文件(夹)划分为很多InputSplit,默认,每个HDFS的block对应一个InputSplit。通过RecordReader类,把每个InputSplit解析成一个个<k1,v1>。默认,框架对每个InputSplit中的每一行,解析成一个<k1,v1>。 1.2 框架调用Mapper类中的map(…)函数,map函数的形参是<k1,v1>对,输出是<k2,v2
2021-12-20 21:21:35
6052
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人