- 博客(151)
- 资源 (24)
- 收藏
- 关注
原创 关系型数据库导出至Hive仓库脚本
业务场景:工作中经常需要将关系型数据库(Oracle、MySQL)中的表导入到hive中进行大数据运算,故编写快捷的脚本实现,脚本名为:RDBtoHive.sh。实际案例:将Oracle中表tbl_o_test 数据导入到hive 的表 tbl_h_test 中,这里表 tbl_h_test 的结构及字段顺序同表tbl_o_test 一致,注意字段类型可以不一致,但是字段顺序需一
2016-04-22 17:44:52
1668
原创 hive json数据生成和处理
场景:查询结果封装成json格式实现:封装记录为json格式可以编写自定义函数,也可以直接使用concat函数直接拼接,下面直接使用concat函数拼接实现将数据行转化为json数据select concat('{\"id\":\"', t.id, '\",\"index_date\":\"', NV
2016-03-24 16:14:30
25032
3
原创 hive实现多行转成1行
--场景描述:将查询结果记录每行内容的列先按逗号(,)分割,然后再将多行内容用&符号存为一行内容例如:id name age8 liu 199 zhang 2010 li 25要求转化为:8,liu,19&9,zhang,20&10,li,25--实现脚本SELECT concat_ws('&', collect_set(
2016-03-24 15:55:47
4257
翻译 hive数据去重,并取指定的一条数据
hive数据去重,并根据需求取其中一条数据案例:name adx tran_id cost ts ck 5 125.168.10.0 33.00 1407234660ck 5 187.18.99.00 33.32
2015-12-23 15:32:58
31472
原创 hive 空值的处理
hive的使用中不可避免的需要对null、‘’(空字符串)进行判断识别。但是hive有别于传统的数据库。下面一一说明:(1)不同数据类型对空值的存储规则int与string类型数据存储,null默认存储为 \N;string类型的数据如果为"",存储则是"";另外往int类型的字段插入数据“”时,结果还是\N。 (2)不同数据类型,空值的查询对于int可以使用is
2015-12-23 15:28:29
41889
原创 Linux_vi常用指令
1. vi1.1 一般模式1.1.1 一般模式: 移动光标的方法[Ctrl] + [f] 屏幕『向下』移动一页,(记忆forward)[Ctrl] + [b] 屏幕『向上』移动一页,(记忆back)[Ctrl] + [d] 屏幕『向下』移动半页,(记忆down)[Ctrl] + [u] 屏幕『向上』移动半页,(记忆up)n n 为数字。光标向下移动 n 行30↓ 向
2015-11-10 17:10:11
873
原创 Oozie的input-events和done-flag使用
需求场景:使用Oozie时 coordinator job间的执行顺序控制但随着业务的扩充,新加了一些 coordinator job,也都是放在凌晨的时候去执行,但有的job依赖于早先存在的 coordinator job,所以不同的coordinator job间执行顺序是有规则的。比较笨的方法是直接将新的job的时间设置为远后于其依赖job时间之后,以保证依赖的job已经执行完。
2015-11-10 17:06:21
3237
原创 hive学习笔记之map-side joins
在分布式计算框架中,其实表连接这类操作都是需要跨节点的,所以计算效率都比较慢。hive也是如此,针对表连接,hive在大表与小表进行连接时有个优化经常使用,就是map-side join。比如:select /*+ mapjoin(u)*/ u.user_id,l.time from user u join opera_log l on u.user_id=l.user_id whe
2015-10-18 20:44:38
1524
原创 MapReduce案例学习(9) 将全体员工按照总收入(工资+提成)从高到低排列,要求列出姓名及其总收入
设计思路:该题处理方案和MapReduce案例学习(8) 列出工资最高的头三名员工姓名及其工资 类似的,只要将employee类中的compareTo方法改写比较规则即可map阶段:将employee对象作为key,value直接设置为NullWritablereduce阶段:在对reduce的输入参数value进行遍历时,里面的对象都是根据key自动排好序的,所以直接把相关信息拼接输
2015-09-20 16:43:37
2676
原创 MapReduce案例学习(8) 列出工资最高的头三名员工姓名及其工资
设计思路:因为mapreduce对key能实现自动排序,当key为数字时就按自然顺序排序,是字母时按字典顺序排序。所以处理这个案例时巧妙的使用mapreduce对key值的自动排序功能,将employee对象直接作为key,并重新定义当key为employee对象时,mapreduce的排序规则。map阶段:将employee对象作为key,可以将员工的工资作为value,或者因为员工工资可以
2015-09-20 16:37:47
2699
原创 MapReduce案例学习(7) 列出名字以J开头的员工姓名及其所属部门名称
设计思路:map阶段:读取每行信息直接将名字以J开头的员工姓名和部门名称输出reduce阶段:无需reduce处理package week06;import java.io.IOException;import java.text.DateFormat;import java.text.SimpleDateFormat;import java.util.Date;imp
2015-09-20 16:24:57
1349
原创 MapReduce案例学习(6) 列出工资比公司平均工资要高的员工姓名及其工资
设计思路:map阶段:这里需要汇总所有员工的工资计算平均工资,所以用了一个统一的名称作为key以便把所有员工都汇总到起来,然后将员工姓名和工资用逗号分隔拼接为字符串作为value输出;reduce阶段:所有员工都在汇总到一起,遍历传入的value,对其数据进行分拆获得员工姓名和工资,并将他以姓名作为key,工资作为value加入到一个HashMap对象中。遍历value的同时叠加所有人员的
2015-09-20 16:22:29
2568
原创 MapReduce案例学习(5) 列出工资比上司高的员工姓名及其工资
设计思路:数据部分截取,用于方便分析 --------------------------------- empno ename mgr sal 7369 SMITH 7902 800 7499 ALLEN 7698 1600 7521
2015-09-20 16:14:15
2356
原创 MapReduce案例学习(4) 求各个城市的员工的总工资
设计思路:map阶段:将城市作为key,员工工资作为value输出;reduce阶段:将相同key汇总,遍历value获得工资进行叠加处理计算总工资。package week06;import java.io.IOException;import java.text.DateFormat;import java.text.SimpleDateFormat;import ja
2015-09-20 16:05:59
2025
原创 MapReduce案例学习(3) 求每个部门最早进入公司的员工姓名
设计思路:map阶段:将部门名称作为key,将员工姓名和入职时间以逗号分隔拼接成字符串,然后整体作为value输出;reduce阶段:对map传入的value进行处理,按照逗号切分获得员工姓名和入职时间。因为要求最早进入公司的人员,所以定义一个时间变量,并赋值一个最大的时间值,遍历value时,将员工的入职时间和该最大时间比较,并将该时间变量替换为两者间的较小值。package wee
2015-09-20 16:02:48
1673
原创 MapReduce案例学习(2) 求各个部门的人数和平均工资
设计思路:map阶段:map读取每行记录,将部门作为key,工资作为value输出;reduce阶段:将相同的key即同部门的工资作叠加运算得出总工资,同时在遍历value时,定义一个计数变量,统计该部门的人员数,最后总工资除以人员数得出该部门的平均工资。package week06;import java.io.IOException;import java.text.Dat
2015-09-20 15:55:13
4644
原创 MapReduce案例学习(1)求各个部门的总工资
为了方便employee对象的引用,定义了一个employee类:package week06;import java.io.DataInput;import java.io.DataOutput;import java.io.IOException;import org.apache.hadoop.io.WritableComparable;/* * Employee Obj
2015-09-20 15:48:29
3090
1
原创 MapReduce案例学习开篇
案例学习背景:客户资源有两张表,一个用户表,一个部门信息表,分别如下:SQL> select * from emp; EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO---------- ---------- --------- ----------
2015-09-20 15:37:47
928
原创 win7使用eclipse连接hadoop集群,运行mapreduce报错之:org.apache.hadoop.security.AccessControlException
在win7上使用eclipse连接hadoop集群运行mapreduce任务(Java编写)时出现如下错误提示,导致运行mapreduce作业失败Caused by: org.apache.hadoop.ipc.RemoteException: org.apache.hadoop.security.AccessControlException: Permission denied: use
2015-09-05 23:08:53
1417
原创 win7使用eclipse连接hadoop集群,运行mapreduce报错之Failed to set permissions of path
在win7上使用eclipse连接hadoop集群运行mapreduce任务(Java编写)时出现如下错误提示,导致运行mapreduce作业失败15/09/05 20:42:58 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java cl
2015-09-05 23:04:12
878
原创 reduce里的一个坑
hadoop版本1.2.1reduce方法里的关键内容如下:protected void reduce(Text key, Iterable values,Context context) throws IOException, InterruptedException {int sum = 1;//使用while来进行遍历,reduce进行一直卡在66%就顿住
2015-09-04 14:55:01
1431
原创 FAILED Task attempt_xx_r_000000_0 failed to report status for 600 seconds
执行mapreduce任务时,执行抛出以下错误:FAILED Task attempt_201509030947_0001_r_000000_0 failed to report status for 600 seconds原因分析:执行超时,reduce在执行合并索引操作时间较长,超过了600秒的时间限制。解决方案:方案一:修改job参数Configuration con
2015-09-04 01:31:22
2000
转载 Hadoop日志存放目录
初学者运行MapReduce作业时,经常会遇到各种错误,由于缺乏经验,往往不知所云,一般直接将终端打印的错误贴到搜索引擎上查找,以借鉴前人的经验。然而,对于hadoop而言,当遇到错误时,第一时间应是查看日志,日志里通产会有详细的错误原因提示,本文将总结Hadoop MapReduce日志存放位置,帮助初学者定位自己遇到的错误。Hadoop MapReduce日志分为两部分,一部分
2015-09-04 01:19:40
2246
原创 hadoop 设置了reduce但是无法执行的bug
今天做mapreduce开发的时候,遇到个诡异的问题,设置了reduce方法,但是就是没有执行。为了进一步验证reduce是否执行,特地在reduce方法里添加了一些提示信息的输出,查看后台task日志文件里面确实没有对应的打印内容,说明reduce没有执行。hadoop版本:1.2.1开发工具:eclipse设计的Reducer方法如下:public stat
2015-09-04 01:09:38
2452
原创 Eclipse远程连接hadoop的hdfs时, 报 Permission denied错误
错误现象:用Eclipse远程连接hadoop集群时报org.apache.hadoop.security.AccessControlException: Permission denied: user=lenvol, access=WRITE_EXECUTE, inode="/input":hadoop:supergroup:rwxr-xr-x错误; 分析:权限控制问题,只要
2015-08-31 16:14:02
2974
原创 hadoop2企业级集群部署(DNS域名解析+NFS密钥共享+AWK批量复制)
注意:apache提供的hadoop-2.6.0的安装包是在32位操作系统编译的,如果在64位的操作上安装hadoop-2.6.0就需要重新在64操作系统上重新编译。本地已经编译好,可以直接使用 F:\BaiduYunDownload\hadoop-2.6.0-x64 ;或者直接将32位安装包的lib包替换为F:\BaiduYunDownload\hadoop-2.6.0-x64\hado
2015-08-28 14:25:42
1170
原创 hadoop集群搭建之NFS服务
Linux操作系统:Ubuntu 12NFS环境规划NFS服务器:192.168.1.201NFS客户端:192.168.1.202、192.168.1.2031. NFS服务器安装及配置(使用root账号)1.1 首先查看下本机是否安装nfs#dpkg --list|grep 'nfs' 如果有安装会显示对应的版本名称信息等1.2 安装nfs软件
2015-08-28 14:13:45
2241
原创 Hadoop集群搭建之搭建DNS
Linux操作系统:Ubuntu 12DNS环境规划DNS服务器:suh01.hadoop.com(192.168.1.201)DNS客户端:suh02.hadoop.com(192.168.1.202)、suh03.hadoop.com(192.168.1.203)一、DNS搭建1. bind 的安装1.1 查看是否安装bind#dpkg --
2015-08-28 14:06:06
1208
转载 linux awk命令详解
简介awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格作为默认分隔符将每行切分为各个域,对切分的部分再进行各种分析处理。awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。awk其名称得自于它的创始人
2015-08-18 14:29:11
367
原创 Hive学习笔记
环境描述:Hadoop集群版本:hadoop-1.2.1Hive版本:hive-0.10.0Hive在使用时只在一个节点上安装即可。一、Hive安装配置1.上传hive压缩包(hive-0.10.0-bin.tar.gz)hadoop集群的某个节点服务器,解压安装:tar -zxvf hive-0.10.0.tar.gz -C /home/suh/2.修改h
2015-08-16 22:15:14
784
原创 Hive启动报错无法找到class— java.lang.NoClassDefFoundError
Hive启动时,报错无法找到class,如java.lang.NoClassDefFoundErrorException in thread "main" java.lang.NoClassDefFoundError: org/apache/hadoop/hive/ql/CommandNeedRetryException at java.lang.Class.forName0
2015-08-16 16:23:45
13733
原创 hadoop1.2.1集群增加datanode节点
案例操作:给hadoop(hadoop1.2.1版本)分布式集群增加一个datanode节点操作步骤说明:1、在新节点上传hadoop,解压安装;2、把namenode的有关配置文件复制到该节点;3、在namenode节点上,修改masters和slaves文件,增加该节点的主机名;4、在namenode节点上,设置ssh免密码登录该节点;5、单独启动该节点上的 dat
2015-08-13 22:04:37
945
翻译 HDFS实现其高可靠性的策略及机制
分布式文件系统(HDFS)的高可靠性主要是由多种策略及机制共同作用实现的。主要有:冗余副本策略可以指定数据文件的副本数量,默认是3;保证所有的数据块都有副本,不至于在一个datanode宕机后,数据的丢失。机架策略集群一般放在不同机架上,机架间带宽要比机架内带宽要小;HDFS具有“机架感知”能力,它能自动实现在本机架上存放一个副本,然后在其它机架再存放另
2015-08-13 21:47:48
6239
原创 Hive集成Mysql作为元数据时,提示错误:Specified key was too long; max key length is 767 bytes
在进行Hive集成Mysql作为元数据过程中,做完所有安装配置工作后,进入到hive模式,执行show databases;执行正常,接着执行show tables;时却报错。关键错误信息如下:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key leng
2015-08-09 22:59:28
1839
原创 Hadoop2.6.0完全分布式集群搭建实操笔记
注意:apache提供的hadoop-2.6.0的安装包是在32位操作系统编译的,如果在64位的操作上安装hadoop-2.6.0就需要重新在64操作系统上重新编译。前期准备工作:1.修改Linux主机名:/etc/hostname2.修改IP:/etc/network/interfaces3.修改主机名和IP的映射关系:/etc/hosts4.查看防火墙状态、关闭防火
2015-08-08 16:10:03
1742
原创 Hadoop1.2.1 完全分布式集群搭建实操笔记
前期准备工作:1.修改Linux主机名:/etc/hostname ubuntu系统:vi /etc/hostname 将ubuntu默认的主机名ubuntu改为suh012.修改IP:/etc/network/interfaces 修改
2015-08-08 16:06:46
2990
1
原创 Sqoop学习笔记——关系数据库与hdfs间数据迁移
一、安装:上传到hadoop集群的某一个节点上,将sqoop压缩包解压即可直接使用; 二、配置: 将需要连接的数据库(比如Oracle、MySQL)的连接驱动拷贝到 sqoop目录的lib里; 三、配置mysql远程连接GRANT ALL PRIVILEGES ON ekp_11.* TO 'root'@'192.168.1.10' IDENTIFIED BY '123
2015-08-03 15:31:42
5841
1
原创 hadoop问题之java.net.NoRouteToHostException: 没有到主机的路由
hadoop启动过程中遇到下面的问题:2015-08-02 19:43:20,771 INFO org.apache.hadoop.hdfs.server.datanode.DataNode: STARTUP_MSG: /************************************************************STARTUP_MSG: Starting D
2015-08-02 23:33:32
29513
2
原创 使用sqoop实现hive与mysql数据库间数据迁移的时,发现如下错误提示
执行 ./sqoop create-hive-table --connect jdbc:mysql://192.168.1.10:3306/ekp_11 --table job_log --username root --password 123456 --hive-table job_log准备将关系型数据的表结构复制到hive中。但是提示如下一堆错误信息:Warning: /usr
2015-08-02 17:22:38
4116
1
原创 message from server: "Host '192.168.1.10' is not allowed to connect to this MySQL server
在连接本机的mysql 数据库时,配置连接信息,连接发生错误,提示:message from server: "Host '192.168.1.10' is not allowed to connect to this MySQL server但是将IP地址改为localhost又能正常连接到MySQL数据库。临时处理方案:1、先用localhost方式连接到MySQL数据库,然后使用
2015-08-02 15:13:07
9986
2
hadoop2.2.0的64位安装包
2015-06-16
Hadoop2.2.0集群搭建手册
2015-06-16
Hadoop2.2.0单机伪分布环境快速搭建手册
2015-06-16
instantclient-sqlplus-linux-x86-64-11.2.0.2.0.zip
2013-03-07
instantclient-sdk-linux-x86-64-11.2.0.2.0.zip
2013-03-07
instantclient-basiclite-linux-11.2.0.3.0.zip
2013-03-07
instantclient-basic-linux-11.2.0.3.0.zip
2013-03-07
Web Service 入门Demo
2012-08-10
网上银行在线支付
2011-12-26
一个struts2+spring开发的简易银行系统
2011-03-22
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人