- 浏览: 1309974 次
- 性别:
- 来自: 北京
最新评论
-
jaingbei:
可以通过继承FileOutputFormat来简化相关代码
自定义OutputFormat -
star12396:
楼主,那hbase结合hive使用,这种架构稳定不?机器的内存 ...
hbase+hive结合使用 -
atMe0804:
...
kafka集群搭建和使用Java写kafka生产者消费者 -
ztao2333:
thanks
eclipse 设置自动补全快捷键 -
Will_forme:
你好 最近在使用kylin的时候有点疑问,我安装这些都没问题 ...
kylin 搭建和简单测试结果
文章列表
应用场景
hdfs中可能保存大量小文件(当然不产生小文件是最佳实践),这样会把namenode的namespace搞的很大。namespace保存着hdfs文件的inode信息,文件越多需要的namenode内存越大,但内存毕竟是有限的(这个是目前hadoop的硬伤)。
下面图片展示了,har文档的结构。har文件是通过mapreduce生成的,job结束后源文件不会删除。
hdfs并不擅长存储小文件,因为每个文件最少占用一个block,每个block的元数据都会在namenode节点占用内存,如果存在这样大量的小文件,它们会吃掉namenode节点的大量内存。
...
Azkaban元数据库分析
- 博客分类:
- 开发工具
https://blog.csdn.net/u012965373/article/details/82777747?utm_source=blogxgwz6
https://blog.csdn.net/Abysscarry/article/details/81408265
hadoop fs命令详解链接
- 博客分类:
- hadoop1
http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html#test
eg:
test
使用方法:hadoop fs -test -[ezd] URI
选项:-e 检查文件是否存在。如果存在则返回0。-z 检查文件是否是0字节。如果是则返回0。 -d 如果路径是个目录,则返回1,否则返回0。
示例:
mysql 常用命令总结备份
- 博客分类:
- DB
1 mysql表期待插入时间 更新时间是当前时间:
ALTER TABLE azkaban_job ADD COLUMN createtime DATETIME DEFAULT CURRENT_TIMESTAMP ;
CREATE TABLE azkaban_job
(
id BIGINT(20) NOT NULL AUTO_INCREMENT COMMENT '自增主键',
job_name VARCHAR(512) COMMENT 'job名称',
pre_job LONGTEXT COMMENT '前置依赖job名称',
behind ...
工作中需要根据不同的值来设置不同的输出目录,有两个点需要注意:
1 其中参数2的 namedOutput 必须设置
MultipleOutputs.addNamedOutput(job, a, TextOutputFormat.class,
NullWritable.class, Text.class);
2
mos.write(keyStr, NullWritable.get(), valText, keyStr + "/"); // 对应于 run方法中的 addNamedOu ...
前言:
mysql a表是按照分库存储的,现在需要抽取到hdfs中
实现点:
1 自定义DBInputFormat,将表对应的分库重新创建conn连接,然后切片
2 在mapper类中自定义切片后的接收数据的接收类
3 在mapper中得到数据写出去
sqoop.properties文件如下:
driverName=com.mysql.jdbc.Driver
globaldb=jdbc:mysql://192.168.8.177:3306/mydb?tinyInt1isBit=false
dbProcInstances=jdbc:mysql:/ ...
在sqoop抽取mysql时,针对mysql字段类型为 tinyint(1) 类型当成boolean返回, 而实际需要是原来是什么抽取过来是什么,因此在sqoop的抽取中增加配置:
globaldb=jdbc:mysql://192.168.8.110:3306/userdb?tinyInt1isBit=false
hadoop读取不同压缩格式的设置-待补充
- 博客分类:
- hadoop2
这是对 gzip格式的读取设置:
conf.set("mapreduce.output.fileoutputformat.compress.codec", "org.apache.hadoop.io.compress.GzipCodec");
如果源文件就是 backend_userlog_2017092200_192.168.201.4.1506010201501.4968.log.gz
这种的, 那么 即使 不设置上面读取的编码集, hadoop也会自动读取:
因为源代码会自动设置:
从配置文件里,拿不 ...
写法和 google的json类解析json类似, 贴出来做一个备份:
import org.apache.commons.lang.StringUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.xuele.bigdata.xetl.model.ActionLogInfo;
impo ...
hadoop写入hbase数据
- 博客分类:
- hbase
贴下代码,留作备用,
@Override
public int run(String[] args) throws Exception {
Configuration hbaseConf = HBaseConfiguration.create();
/* String whh = hbaseConf.get("hbase.zookeeper.quorum");
System.out.print(whh);*/
Config config = new Config(); ...
java正则针对同一行出现\r\n的替换
- 博客分类:
- javase
工作中,在解析Mongo数时,会出现mongo数据字符串自带 \r\n的数据,在etl到hive中,这种数据又不能变成多行,否则数据列对不上,因此需要处理, 目前使用的做法是 正则表达式:
package com.xuele.bigdata.xetl.mongo;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import org.apache.commons.io.IOUtils;
public class Test {
/**
* @param args
...
在组拼hbase rowkey时,为了防止热点,rowkey可以使用 md5方式或者hash方式,
这里介绍下 hash方式:
0 work_regionmax_student=10000
1 hashfun (stu.class_id, ${work_regionmax_student})
2 hashfun : hashfun(string, int) 获取string的hashcode,根据int取余并补全位数
3 自定义函数中的写法:
import org.apache.hadoop.hive.ql.exec.UDF;
...
SELECT
*
FROM
(
SELECT
row_number () over (ORDER BY class_sort_number) AS rnum,
c.*
FROM
ods_common_class c
WHERE
DAY = '2018-08-22'
AND school_id = '13400'
) t
WHERE
rnum > 1 AND rnum < 10;
0 前言:
在不同的软件开发生命周期阶段、不同的最终客户(用户)环境、不同的运行平台都有可能需要不同配置或资源的情况。假如各个环境下的差别很小的话,我们可以在项目编译之后手工修改或者写个 she ...