`
文章列表
      应用场景 hdfs中可能保存大量小文件(当然不产生小文件是最佳实践),这样会把namenode的namespace搞的很大。namespace保存着hdfs文件的inode信息,文件越多需要的namenode内存越大,但内存毕竟是有限的(这个是目前hadoop的硬伤)。 下面图片展示了,har文档的结构。har文件是通过mapreduce生成的,job结束后源文件不会删除。  hdfs并不擅长存储小文件,因为每个文件最少占用一个block,每个block的元数据都会在namenode节点占用内存,如果存在这样大量的小文件,它们会吃掉namenode节点的大量内存。 ...
    https://blog.csdn.net/u012965373/article/details/82777747?utm_source=blogxgwz6

hive开窗函数

    博客分类:
  • hive
      https://blog.csdn.net/Abysscarry/article/details/81408265
      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。 示例:    
      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  
    这是对 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数据

    贴下代码,留作备用,   @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(); ...
    工作中,在解析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; ...

hive分页

    博客分类:
  • hive
        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 ...
Global site tag (gtag.js) - Google Analytics