2 IBoyMan

尚未进行身份认证

不奋斗,你的才华如何配上你的任性; 不奋斗,你的脚步如何赶上父母老去的速度; 不奋斗,世界那么大,你靠什么去看看; 一个人老去的时候,最痛苦的事情,不是失败,而是我本可以。

等级
TA的排名 7w+

Java访问kerberos认证的HDFS文件

Kerberos是一种计算机网络授权协议,用来在非安全网络中,对个人通信以安全的手段进行身份认证。具体HADOOP的访问HDFS使用Kerberos的作用和原理请自己查阅相关文档。之前做项目时第一次使用Kbs访问HDFS,当时不了解,翻阅资料搞了好久,也入了不少坑,现分享出来,方便大家。下面代码在项目亲测过,可用代码如下:package zqmKerberos;impor...

2020-01-15 15:12:06

Mapredeuce获取文件数据对应的目录

      在MR里有个关键的"环境变量"context(上下文),利用它可用做好多事,比如传参等。     当然,获取文件数据对应的目录也少不了它,其实就是简单的一句代码:    String filepath = ((FileSplit) context.getInputSplit()).getPath().toString();    filepath就是此时你map接受数据所在...

2019-01-31 15:58:03

Mapredece(MR)的reduce join、解决map端加载海量配置文件报内存溢出问题(OOM)

   前面的一个博客写到mr加载配置文件的三种方法都是基于map端加载的,当配置文件非常大时,map加载会报内存溢出(OOM)或报GC overhead limit exceeded,此时应该考虑reduce端加载。当然reduce端的加载也存在缺点,会造成shuffer过程的耗时。当然,任何一个程序都不是那么完美的,时间和空间就是鱼与熊掌不可兼得。  Reduce端加载的核心就是:在redu...

2018-11-14 11:12:09

Java判别编码是utf-8或gbk

实例代码如下:import java.io.UnsupportedEncodingException;import java.net.URLDecoder;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.regex.Matcher;import j...

2018-09-30 14:31:46

scrapy设置随机User-agent、scrapy爬取大量网页、设置爬虫请求并发数

     对于爬虫攻城狮而言,爬虫的最大敌人就是反爬虫。在多次请求网页时(爬取大量url时),避免被地方封锁掉,User-agent代理的随机跳变就成了反爬虫的的第一步也是必须的一步的拉。一:设置随机User-agent(User-agent文件自行准备)    scrapy里怎么随机跳变User-agent呢?当scrapy项目创建完成,执行爬虫程序时,首先会先读取setting文件...

2018-07-29 12:06:10

Spark实现SQL的count(*),count(distinct * *) 即pv、uv

自己上代码,如果不理解的地方,可以百度或留言importorg.apache.spark.{SparkConf,SparkContext}/***Createdbyzhangon2018/6/29.*/objectWordCount{defdealTime(line:String)={line.substring(0,10)}def...

2018-07-03 16:04:06

Hive里实现行数据的拆分、一行转多行、行转列、explode使用

    在做数据转换、清洗的过程中,经常会对行进行拆分、一行数据拆分为多行数据,下面是简单的例子:  如图表里有如下数据:最终要得到结果如下:先用split进行分割得到一个数组,在用explode拆分数组。LATERALVIEWexplode(split(b,','))zqmASnum:解释zqm:指代虚标视图的名称(不可缺少),num:处理后数据的名称。对比两个Hsql,使用LA...

2018-06-04 11:00:08

shell加python实现程序自动化控制

为做到数据的实时传输(实时:当前时间传输上一个小时的数据),shell用于控制整个流程,python用于处理数据。shell代码如下:#bin/bash########### 学车运行脚本## 编写者:zqm## 日期:2018-04-04## 调用方式:nohup sh duduxueche.sh day/hour > ../log/duduxu...

2018-05-14 10:23:09

Pandas里groupby的应用

Groupby是pandas用于数据分析一个强大的动能函数,很多对数据的清洗、转换、聚合都需要用到。具体功能会一一介绍,博客也会慢慢更新。一:获取groupby分组后每组的具体数据获取分组数据:(每一个分组也是一个DF)...

2018-05-12 10:35:05

pandas里applymap、apply、map、agg、groupby、自定义函数的使用

Pandas里三种调用函数应用的方法: 1:apply作用于DF的列或行 2:applymap作用于DF的所有元素 3:map作用于Series的所有元素 agg函数很多情况下都是和groupby组合使用,通常指代分组聚合,它和apply的区别不是很明显,一般当调用自定义函数,没有聚...

2018-05-10 18:13:33

intellij的安装、intellij搭建scala环境

一:下载intellij可执行文件,本文用的是ideaIU-2016.3.exe二:双击exe文件开始安装,具体一系列操作如下图    1:        2:    3:4:5:6:去插件依照项目酌情考虑7:8:9:然后选择自己安装jdk的路径,最后就ok啦...

2018-04-28 13:36:07

linux学习笔记

www.kernel.org:linux官网www.netcraft.com 看某一网站后台的服务器是什么操作系统。   在命令提示符下(shell)输入的内容对系统来说都是命令,系统会默认去环境变量PATH中找此命令所在的路径下的程序(文件),如果PATH没有给出路径会报“command not found”错,解决办法:1、在PATH中添加此路径 2:用全路径执行命令linux的命令: 内置命...

2018-04-18 21:13:33

Mapreduce(MR)设置多个job的任务运行

          MapReduce多个job任务其本质原理就是job2任务依赖job1任务的返回结果即job1的输出路径是job2的输入路径。job2任务的启动依赖job1任务结束所返回的状态。        依据自己的实际经验:多个job的串行或并行触发,我认为还是分开写几个程序,用脚本控制其执行顺序,这样便于程序的调试,管理。           当然,选择使用那种情况也是依赖项目的需求而...

2018-04-14 11:25:13

MapReduce(MR)框架里shuffer过程中Partition的使用

Partitioner类:主要在Shuffle过程中按照Key值将中间结果分成R份,其中每份都有一个Reduce去负责。使用的时候可以通过job.setPartitionerClass()方法进行设置,实现getPartition函数,默认的使用hashPartitioner类。举一个简单的例子:在Hdfs文件系统下有这样一个txt,txt的数据如下:红色方框是时间戳时间戳的日期是从8月20到9月...

2018-04-12 13:47:20

Mapreduce(MR)读取配置文件的三种方式,遍历HDFS目录文件

第一种方式:    如果配置文件数据不是很大,可以放在本地,然后在打包进去,代码如下:第二种:    如果配置文件数据比较大,可以传到HDFS里,以传参的形式加载,代码:这种方式需要在Main里设置参数位置,核心代码如图:第三种: 配置文件已经在HDFS上存在(以part文件形式存在,第二种是传上去的文件不是part格式,比如txt形式),以传参的形式加载,代码:这种方式也要在Main设置参数的位...

2018-03-13 14:03:58

linux 里awk的使用

统计文本数据列字段有多少种:more 1.txt |awk -F "\t" '{print NF}'|sort|uniq|more输出最后一个字段的内容:more 1.txt |awk -F "\t" '{print $NF}'|more按列文本某列求总和:cat 1.txt | awk -F "\t" '{sum += $7};END {print sum}' |less按口径筛选数据:cat ...

2018-03-09 15:05:05

python pandas 实现SQl的count(*),count(distinct **)

实现也非常简单,不过多啰嗦,见代码注释:pv uv 代指 select host,count(*),count(distinct ad) from table group by ;# -*- coding:utf-8 -*-import pandas as pdfrom datetime import datetimedef Main(): print("开始。。。。。...

2018-03-09 10:43:59

Python解析、提取url关键字

解析url用的类库:    python2版本:  from urlparse import urlparse import urllibpython3版本: from urllib.parse import urlparse import urllib.request     研究了不同的url规则发现:只要在搜索关键字是用=嫁接的,查询的关键在解析后的query...

2018-03-08 13:12:14

python处理大数据文件,set、enumerate使用,python传参,获取文件路径

### enumerate(ad_set,start=1)### start=1:指定索引起始值#-*- coding:utf-8 -*-#唯一号码转家庭、非家庭#编写者:zqm#日期:20170810#功能:分别找出家庭,非家庭用户,家庭的编号转jz编号,非家庭重新编号且相同编号相同#####################################...

2018-03-05 10:59:47

shell里expect自动输入密码

通常在写shell时,使用scp、ssh时总要手动输入密码,是一件很烦人的事情,使用expect可以免手动数据的麻烦。有如下脚本里需要使用expect调到另一台服务器里做其他操作,代码如图:主要代码在下图73行#bin/bash########### GP项目需求的启动脚本## 编写者:zqm## 日期:2018-02-09## 调用方式:nohup sh ...

2018-03-02 10:11:53

查看更多

勋章 我的勋章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!
  • 勤写标兵Lv1
    勤写标兵Lv1
    授予每个自然周发布1篇到3篇原创IT博文的用户。本勋章将于次周周三上午根据用户上周的博文发布情况由系统自动颁发。