Hadoop专栏
文章平均质量分 79
Hadoop平台开发及生态组件的使用。
fjssharpsword
这个作者很懒,什么都没留下…
展开
-
Hadoop文件压缩格式分析和比较
Hadoop支持压缩格式:压缩格式可分割算法扩展名Linux工具gzip否DEFLATE.gzgziplzo是(加索引)LZO.lzolzopsnappy否原创 2017-07-10 08:29:22 · 4380 阅读 · 0 评论 -
Hive用户权限管理理解
package com.hive;importorg.apache.hadoop.hive.ql.parse.ASTNode;importorg.apache.hadoop.hive.ql.parse.AbstractSemanticAnalyzerHook;importorg.apache.hadoop.hive.ql.parse.HiveParser;importorg.apache.原创 2016-05-04 09:14:06 · 24295 阅读 · 1 评论 -
mysql表数据以本地文件方式导入Hive
1、mysql生成数据1)创建数据库和数据表,脚本如下:SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;SET @OLD_SQL_MODE=@@SQL_MODE,原创 2016-05-25 15:39:05 · 4236 阅读 · 0 评论 -
MapReduce基础开发context.write注意new text("")多出一列的问题
1、问题描述:在MapReduce中代码中,Map输出context.write(okey,new text("")),Reduce也是context.write(okey,new text(""))输出; 查询字符长度,发现多了一位,如果用|字符隔开,发现最后一个字段会多出一位。2、查核发现,new Text("")会增加一个空列(列分隔符是\t),导致多出一个隐形字原创 2016-07-19 10:31:23 · 7499 阅读 · 0 评论 -
Hive查询结果输出文件
进入hive执行:insert overwrite local directory '/tmp/ftp0803/' select * from tmp_ftp where userno='XX' order by starttime; 在/tmp/ftp0803/目录下看到文件。原创 2016-08-05 14:52:45 · 6764 阅读 · 0 评论 -
Hadoop多用户作业调度器和安全机制的自我总结
在掌握Hadoop平台上,一直有两个疑问困扰着:1)Hadoop的用户和用户组和Linux操作系统用户和用户组之间的关系;2)多用户下,Hadoop平台如何管理以保证作业调度和文件安全;先说下Hadoop队列管理机制:Hadoop以队列为单位管理作业、用户和资源,集群划分成若干个队列,每个队列分配一定的资源,用户只能向对应的一个或几个队列中提交作业。Hadoop队列管理原创 2016-12-21 11:14:00 · 3213 阅读 · 0 评论 -
离线轻量级大数据平台Spark之JavaRDD关联join操作
对两个RDD进行关联操作,如:1)文件post_data.txt包含:post_id\title\content2)文件train.txt包含:dev_id\post_id\praise\time通过post_id关联,提取post_id\content\praise字段,文件字段用不定长多个空格分割;参考代码如下:package scs.contest;import ja原创 2017-01-12 16:56:13 · 7140 阅读 · 2 评论 -
Hadoop2常用Shell命令
1. FS Shell1.1 简介调用文件系统(FS)Shell命令应使用 bin/hadoop fs 的形式。 所有的的FSshell命令使用URI路径作为参数。URI格式是scheme://authority/path。对HDFS文件系统,scheme是hdfs,对本地文件系统,scheme是file。其中scheme和authority参数都是可选的,如果未加指定原创 2017-02-28 09:40:19 · 2814 阅读 · 0 评论 -
HDFS HA介绍及配置理解
1、HDFS HA介绍相比于Hadoop1.0,Hadoop 2.0中的HDFS增加了两个重大特性,HA和Federaion。HA即为High Availability,用于解决NameNode单点故障问题,该特性通过热备的方式为主NameNode提供一个备用者,一旦主NameNode出现故障,可以迅速切换至备NameNode,从而实现不间断对外提供服务。Federation即为“联邦”,该特原创 2017-02-28 16:27:04 · 11278 阅读 · 1 评论 -
Hadoop平台安全机制Kerberos认证
日前笔者在使用flume采集数据直接入到Hadoop平台HDFS上时,由于Hadoop平台采用了Kerberos认证机制。flume配置上是致辞kerberos认证的,但由于flume要采集的节点并不在集群内,所以需要学习Kerberos在Hadoop上的应用。1、Kerberos协议Kerberos协议:Kerberos协议主要用于计算机网络的身份鉴别(Authenticatio原创 2017-03-06 10:52:45 · 6056 阅读 · 0 评论 -
关于Hadoop安全集群和非安全集群间Distcp的使用
1、需求:有两个集群,网络中节点是互通的,现在要用distcp进行文件迁移,但一个集群是非安全集群,一个是配置了kerberos认证的安全集群,怎么执行呢? 2、前提:两个集群都做了HA配置,所以要通过如下命令查看活动Namenode并获取其IP地址; HA配置查看活动Namenode:hdfs haadmin -getServiceState nn1或n原创 2017-03-15 11:25:22 · 8420 阅读 · 0 评论 -
跨Hadoop平台Hive表export和import迁移
场景:两个Hadoop平台集群之间Hive表迁移。思路:Hive表元数据和文件数据export到HDFS文件,通过Distcp将HDFS迁移到另一个集群的HDFS文件,再通过import在新Hive中建表;1、原平台:Hive表元数据和文件数据到export到平台HDFS文件 1)hive下执行如下命令:#export table conf_adsl_app to '/原创 2017-03-16 09:01:28 · 7966 阅读 · 0 评论 -
Hive表路径修改和分区表数据加载命令
1、对于同一张表,如果不是分区,那要变更数据来源,就只有改变其hdfs存储路径:修改tmp_fjs_ftp表的location,两种方式:方式一:通过修改表DDLalter table tmp_fjs_ftp set location 'hdfs://nameservice-ha/tmp/ast/ast ';方式二:直接修改hive的meta info:update ` tmp原创 2017-03-22 14:57:45 · 11377 阅读 · 0 评论 -
Hive时间是String格式截取字串和转换数据类型小贴士
导入hive的时间格式是:2016/8/23 00:00:00无法直接to_date,只能截取具体子串substr在转换类型到int比较大小。select count(*) from tmp_fjs_dba where substr(f4,1,9)='2016/8/23' and f28 like 'update%' and int(substr(f4,11,2))>12;原创 2017-03-31 15:55:38 · 7397 阅读 · 0 评论 -
Hive客户端secureCRT中文显示设置
Hive客户端中文显示,需要设置下secureCRT:1.安装linux时选择中文系统,或安装后vi /etc/sysconfig/i18n文件改为:LANG="zh_CN.UTF-8" 2.在secureCRT里面: Session Options(会话选项) -> Terminal(终端) -> Appearance(显示), 1)将Fonts(字体)选原创 2017-04-20 14:35:40 · 4451 阅读 · 1 评论 -
Hadoop平台作业参数设置关于mapreduce.job.split.metainfo.maxsize的说明
Hadoop平台作业参数设置关于mapreduce.job.split.metainfo.maxsize的说明1、MR程序时执行时报错: YarnRuntimeException: java.io.IOException:Split metadata size exceeded 10000000. 2、原因分析: 输入文件包括大量小文件或者文件目录,造成Sp原创 2017-04-20 14:36:50 · 9518 阅读 · 0 评论 -
hive指定多个字符作为列分隔符的问题说明
1、问题:HDFS文件上列分隔符是##,hive建表时直接用##,发现输出的字段和文件不一致。 建表语句如下: ROW FORMAT DELIMITED FIELDS TERMINATED BY '##' STORED AS INPUTFORMAT 'org.apache.hadoop.mapred.TextInputFormat' OUTPUTFORM原创 2017-04-20 16:11:56 · 8837 阅读 · 0 评论 -
Hive自定义UDF的JAR包加入运行环境的方法
Hive开发udf函数打包jar文件后,需将jar文件放入hive的运行环境,方法有三。先将http://blog.csdn.net/fjssharpsword/article/details/70265554中重定义的两个类打包成DefTextInputFormat.jar,并放到/home/hdfs目录下。1、方法一:使用add jar命令 1)在hiv原创 2017-04-20 16:55:47 · 18815 阅读 · 0 评论 -
FTP压缩文件上传到HDFS大小不一致的问题说明(FTP传输模式)
1、问题:将ftp文件服务器上的压缩文件通过内存流直接写入HDFS内,却发现文件不一致,MD5SUM校验也不一致。2、分析:FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式。1)ASCII传输方式 :假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储原创 2017-04-21 10:47:15 · 5059 阅读 · 0 评论 -
Hadoop命令执行时提示JVM OOM问题的处理
1、问题:执行Hadoop命令时提示java.lang.OutOfMemoryError: unable to create new native thread 就是OOM问题。2、分析: 为什么会抛OOM Error呢?因为java线程池启动太多会造成OOM。 在java语言里, 当你创建一个线程的时候,虚拟机会在JVM内存创建一个Thread对象原创 2017-04-25 16:17:20 · 3818 阅读 · 0 评论 -
Linux用户和HDFS和Hive权限关系
1、Linux用户组和用户新建 1)用户组 新建:$groupadd hphs 删除命令:groupdel; 属性修改:groupmod; 2)用户: 新建:#useradd -d /usr/hphs/ -m hphs -g hphs 删除命令:userdel; 修改账号:usermod; 密码修改原创 2017-04-28 17:51:16 · 9603 阅读 · 0 评论 -
【精华】Linux用户Hive权限控制实践
1、困惑: hadoop和hive通过客户机接入到集群生产,客户机是linux系统,那么linux用户和hive角色之间是什么关系呢? 或者说,怎么控制linux系统用户可以细粒度访问hive的数据库和表。2、新建linux用户和用户组 1)#groupadd hphs; 2)#useradd -d /home/hphs/ -m hphs -g hphs原创 2017-05-11 16:19:18 · 3632 阅读 · 0 评论 -
(转载)详解Hive配置Kerberos认证
Hive提供了运行SQL语句查询存储在HDFS上数据的能力,Hive提供的查询引擎,可以将SQL语句转化成MapReduce任务,提交到Hadoop集群上执行。MapReduce任务运行的结果会存在HDFS上。下面的图表示了一个用户运行Hive查询的Hadoop内部交互。有多种和Hive交互的方法,最常用的是CLI,不过,CLI的设计使其不便于通过编程的方式进行访问。还有可以使转载 2017-05-11 16:59:15 · 14559 阅读 · 0 评论 -
Apache Sentry 初识
1、Apache Sentry是什么? 一句话:提供了细粒度级、基于角色的授权以及多租户的管理模式。 对于Hadoop和Hive来说,引入Sentry提升数据安全是非常必要的。2、Apache Sentry有什么作用? 1)安全授权 :Sentry可以控制数据访问,并对已通过验证的用户提供数据访问特权。 2)细粒度访问控制 :Sentry原创 2017-05-12 11:06:27 · 7231 阅读 · 0 评论 -
Apache Ranger初识
1、Apache ranger简介Apache ranger是一个Hadoop集群权限框架,提供操作、监控、管理复杂的数据权限,它提供一个集中的管理机制,管理基于yarn的Hadoop生态圈的所有数据权限。Apache Ranger可以对Hadoop生态的组件如Hive,Hbase进行细粒度的数据访问控制。通过操作Ranger控制台,管理员可以轻松的通过配置策略来控制用户访问HDFS文件夹原创 2017-06-06 12:07:09 · 3825 阅读 · 0 评论 -
Hive表联合查询语句参考
hive语句不是很熟悉,对表联合这个基本的都要找半天资料,这里写下,作为以后的参考:select a.time_stamp,a.acc_nbr,b.bts_name from (select * from default.tableA where start_date >=20170612 and start_datehive表连接语法:join_table: t原创 2017-06-22 15:25:36 · 2987 阅读 · 0 评论 -
分布式大数据sql查询引擎Presto初识
1、背景:Hive使用MapReduce作为底层计算框架,是专为批处理设计的。但随着数据越来越多,使用Hive进行一个简单的数据查询可能要花费几分到几小时,显然不能满足交互式查询的需求。Presto是一个分布式SQL查询引擎,它被设计为用来专门进行高速、实时的数据分析。它支持标准的ANSI SQL,包括复杂查询、聚合(aggregation)、连接(join)和窗口函数(window func原创 2017-07-05 16:33:12 · 4134 阅读 · 0 评论 -
高并发MPP查询引擎Impala初识
官网:http://impala.apache.org/ Apache Impala是高性能的专用SQL引擎,使用Impala SQL,因为Impala无需借助任何的框架,直接实现对数据块的查询,所以查询延迟毫秒级。还是得放到和Hive一起说说,Impala适用实时查询,因为比Hive查询快多了。Impala是Cloudera公司主导开发的新型查询系统,它提供SQL语义,能查询存储在Had原创 2017-07-05 17:04:38 · 10846 阅读 · 0 评论 -
Hadoop性能调优概要说明
Hadoop容易遇到的问题有:Namenode/jobtracker单点故障、HDFS小文件问题、数据处理性能等。为此 “Hadoop Performance Optimization”(HPO)是必要的。本文试着从性能调优的总体原则入手来了解概要,实际生产中遇到的问题也会在这个框架下处理。Hadoop运行环境:下面大致给出这四个层次的调优原则。1、硬件选型原则原创 2017-07-07 11:54:42 · 1348 阅读 · 0 评论 -
软件架构设计原则和大数据平台架构层
1、软件架构设计的六大原则:1)“开-闭”原则(OCP) Software entities should be open forextension, but closed for modification. 对扩展开放,对修改封闭。2)里氏代换原则(LSP) 凡是基类适用的地方,子类一定适用。3)依赖倒转原则(DIP) 要依赖抽象,不要依赖具原创 2017-07-07 12:46:38 · 4844 阅读 · 0 评论 -
HDFS多用户管理ACL机制other权限访问控制的理解
非Master服务器用户也能通过客户端远程访问Hadoop现象:在Hadoop集群多用户管理实践中发现,客户端用非Master服务器配置的用户连接Master,也通用具备对指定目录的操作权限。比如Master服务器提供的用户的是A,理论上客户端应用在A用户下部署安装hadoop后远程连接,但现在客户端用B用户安装Hadoop客户端并连接Master服务器,且可在指定目录下rwx,只是在涉及da原创 2016-04-29 11:11:41 · 5633 阅读 · 0 评论 -
Hadoop平台日志结构
1.Hadoop集群部署Hadoop集群:Master:10.18.18.1Slave1:10.18.18.100Slave2:10.18.18.101可互相通信、可连外网,操作系统均为:#cat/etc/issueUbuntu14.04.4 LTS \n \l# uname -aLinux XXX3.13.0-66-generic #108-Ubuntu SM原创 2016-05-27 11:26:32 · 2820 阅读 · 0 评论 -
MapReduce基础开发之一词汇统计和排序(wordcount)
统计/var/log/boot.log中含k的字符的数量,并对含k的字符按照数量排序。需分两个job完成,一个用来统计,一个用来排序。一、统计1、上传文件到hadoop: 1)新建文件夹:hadoop fs -mkdir /tmp/fjs 2)上传文件:hadoop fs -put /var/log/boot.log /tmp/fjs2、编写wo原创 2016-06-22 17:13:20 · 6593 阅读 · 3 评论 -
MapReduce基础开发之二数据去重和排序
因Hadoop集群平台网络限制,只能在eclipse里先写好代码再提交jar到集群平台namenode上执行,不能实时调试,所以没有配置eclipse的hadoop开发环境,只是引入了hadoop的lib包。eclipse的hadoop开发环境配置可参考:http://www.cnblogs.com/xia520pi/archive/2012/05/20/2510723.htmlMapRe原创 2016-06-23 11:14:31 · 6086 阅读 · 0 评论 -
MapReduce基础开发之三字段处理并输出Hive表
1、MR设计和开发 1)设计: 输入:用户名 | 数字ip | 时间戳 | url MR处理:读取正则表达式匹配url,满足则解析url并转换ip和时间戳, 输出:用户名|点分制IP|日期时间|URL域名|URL参数; 2)开发,见源码; 测试文件:/tmp/fjs/in/testdata.txt 输出文件:/tmp/f原创 2016-06-28 11:36:40 · 5347 阅读 · 0 评论 -
MapReduce基础开发之四参数传递
Map和Reduce函数是在各节点进行,如果要在MapReduce数据加工中使用共同参数,要如何传参呢?方法有二:1、Configuration类的set和get的方法读取xml/txt文件设置或自己配置,再通过Map和Reduce函数的Context来获取;2、基于org.apache.hadoop.io.DefaultStringifier类的Store函数和Load函数,通过原创 2016-06-29 15:40:13 · 5732 阅读 · 0 评论 -
MapReduce基础开发之五分布式下载ftp文件到本地再迁移到hdfs
为利用Hadoop集群平台的分布存储和计算能力,基于MapReduce将ftp文件分布式下载并上传到HDFS中。1、文件移动流程:ftp服务器->Namenode本地目录->HDFS目录;2、实现主要基于两个设计思想: 1)将FTP服务器文件列表作为MapReduce处理的数据对象,按照文件名分布到不同Reduce节点下载和上传到HDFS中; 2)在每个da原创 2016-07-01 11:48:13 · 3398 阅读 · 0 评论 -
MapReduce基础开发之六Map多输入
在实际MapReduce开发中,会遇到需要数据多输入路径并有对应的Map函数来处理,这需要MultipleInputs.addInputPath(job, path, inputFormatClass, mapperClass)函数。本文模拟从不同地市中获取数据,并根据按照地市区号输出记录,具体见代码。import java.io.IOException;import o原创 2016-07-05 10:37:19 · 3025 阅读 · 0 评论 -
MapReduce基础开发之七Hive外部表分区
MapReduce输出的数据在实际应用中会加载在不同子目录下,比如按照日期、地区等,然后统一到外部表,这就需要用到hive表的分区。假设输出的数据放在/tmp/fjs/dpi父目录下,下面分别有三个类型的数据作为子目录保存,分别是/tmp/fjs/dpi/adsl、/tmp/fjs/dpi/3g、/tmp/fjs/dpi/4g,具体分区如下:Hive表:tmp_fjs_dpi1)原创 2016-07-06 11:54:55 · 2291 阅读 · 0 评论 -
在线实时大数据平台Storm单机部署
centos单机下部署storm,主要用于开发测试用。部署的IP地址用zoo1代替,要注意/etc/hosts下对应ip和主机名。1、Zookeeper部署Apache官网http://zookeeper.apache.org/下载zookeeper-3.4.8.tar.gz版本。1)解压在/var/zookeeper-3.4.8目录下#tar -xzvf/tmp/zookee原创 2016-07-11 15:51:29 · 2771 阅读 · 0 评论