![](https://img-blog.csdnimg.cn/20201014180756916.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hadoop
文章平均质量分 55
ThisIsNobody
这个作者很懒,什么都没留下…
展开
-
高可用Hadoop集群安装
前期准备1 修改Linux主机名2 修改IP3 修改主机名和IP的映射关系 /etc/hosts4 关闭防火墙5 ssh免登陆6 安装JDK,配置环境变量等集群规划主机名 IP 安装的软件 运行的进程mini01 192.168.175.141 jdk、hadoop NameNode、D...转载 2018-05-03 22:16:21 · 148 阅读 · 0 评论 -
MapReduce特性(一) 计数器
计数器是收集作业统计信息的手段用于质量控制,应用级统计以及辅助诊断系统故障内置计数器1 任务计数器 > 任务计数器由关联的任务维护,并定期发送application master,每次完整传输,而不是上次传输之后开始的计数 > 如果任务执行失败,计数器的值会减小 > 可以通过任务执行过程的内存使用变化等获取诊断信息2 作业计数器 > 由applica...原创 2018-06-26 08:09:01 · 223 阅读 · 0 评论 -
MapReduce特性(二) 排序
MapReduce的核心技术是排序,用来组织数据准备将一个MR作业设置成只有map函数,并通过job.setNumReduceTasks(0)不执行默认的reduce,所以输出不会按键排序部分排序> 使用默认的MR设置,最终结果产生按键排序> 如果输出文件有多个,那多个分别按键排序,且文件串联非有序,则不是全体有序,可以使用MapFile发现键的所属分区,在分区查找记录全排序> ...原创 2018-06-26 09:54:01 · 207 阅读 · 0 评论 -
MapReduce特性(三) 连接-Join DataSets
把Join作为实现的核心部分的高级框架:Pig Hive Cascading Cruc Spark连接操作取决于数据集的规模和分区方式1 如果其中一个数据集很小,可以分发到各个MR节点上连接2 如果两个数据集都很大,需要考虑如何使用map端连接和reduce端连接mapper执行连接称为 mapper端连接reducer执行连接称为reduce端连接map端连接数据到达map函数之前连接 &...原创 2018-06-27 09:31:25 · 185 阅读 · 0 评论 -
MapReduce特性(四) 边数据分布
边数据:作业所需的额外的只读数据,辅助处理主数据集1 JobConf > Configuration类的setter方法 > Context.getConfiguration() > 如果是复杂的元数据,用户自定义序列化或者使用Stringifier类2 分布式缓存分布式缓存优于序列化边数据工作机制 > 用户启动作业,Hadoop使用-files -...原创 2018-06-27 09:31:31 · 278 阅读 · 0 评论 -
MapReduce类型和格式(二) 输入格式
输入分片和记录一个map操作处理一个split,一个split被分为若干记录,每个记录是一键值对,map一个个处理键值对。public abstract class InputSplit { /** * Get the size of the split, so that the input splits can be sorted by size. * @return the n...原创 2018-06-26 07:26:46 · 871 阅读 · 0 评论 -
MapReduce类型和格式(三) 输出格式
文本输出TextOutputFormatmapreduce.output.textoutputformat.separator 分隔符TextOutputFormat对应的输入格式使KeyValueTextInputFormatNullWritable省略输出的键和值二进制输出1. SequenceFileOutputFormat2. SequenceFileAsBinaryOutputForma...原创 2018-06-26 07:26:48 · 375 阅读 · 0 评论 -
Hadoop 启动/停止集群和节点的命令
集群启动/停止Hadoop集群:start-all.sh stop-all.sh1) 启动NameNode, DataNode2) 启动JournalNode, JournalNode在hdfs-site.xml中指定edits log存储的位置,主备NameNode共享数据,方便同步3) 启动DFSZKFailoverController, HA会启用ZooKeeper Failover ...原创 2018-06-19 22:34:22 · 27490 阅读 · 2 评论 -
Hadoop 发布包目录
sbin 服务命令包bin 服务操作脚本share jar包和doclib 本地库etc 配置文件原创 2018-06-20 01:11:00 · 160 阅读 · 0 评论 -
关于Hive(一) Hive和安装Hive
Hive是构建在Hadoop上的数据仓库框架,通用,可伸缩的数据处理平台Jeff团队为管理和(机器)学习Facebook的海量网络数据而产生设计目的:精通SQL但Java编程技能弱的分析师能对存放在HDFS的数据执行查询Hive把SQL查询转换为一系列在Hadoop集群上运行的作业。数据组织为表,给HDFS的数据赋予结构,元数据存储在metastore中,属于SQL的"方言"HiveQL: ...原创 2018-06-27 09:31:42 · 136 阅读 · 0 评论 -
关于Hive(二) 运行Hive和Hive与传统数据库比较
配置Hive1 执行引擎 > hive.execution.engine 执行引擎 默认为mr > 目前引擎 MapReduce, Tez, Spark > 设置引擎 hive > set hive.execution.engine=Tez2 日志记录 > 日志位置 ${java.io.tmpdir}/${user....原创 2018-06-27 09:31:47 · 513 阅读 · 0 评论 -
关于Hive(三) HiveQL和表
数据类型1 原子类型 > DECIMAL 任意精度的小数,类似Java的BigDecimal (精度,标度) 精度默认值为10, 标度默认值为0 DECIMAL(5, 2) -999.99~999.99 省略标度 DECIMAL(5) -99999~99999 省略精度 DECIMAL(10,0) > 存储文本 STRING...原创 2018-06-27 09:32:02 · 200 阅读 · 0 评论 -
Hadoop IPC inter-process communication
入门文参考文inter-process communication实现对象的精准控制只要有不同进程间通信时,Hadoop使用IPC使用动态代理调用远程服务,通过socket传输与远程服务交互,使用反射技术在客户端的请求到服务端时,可以解析出具体的服务,服务端实现Writable接口将网络传输的对象序列化Client: /* * 使用RPC获取远程服务的动态代理 * ...原创 2018-06-20 15:06:40 · 208 阅读 · 0 评论 -
Hadoop org.apache.hadoop.security.AccessControlException
问题:org.apache.hadoop.security.AccessControlException: Permission denied: user=hadoop, access=WRITE, inode="/":root:supergroup:drwxr-xr-x解决:修改目录操作权限hadoop fs -chmod 777 /wordcount...原创 2018-06-20 15:56:49 · 191 阅读 · 0 评论 -
关于Hive(四) 用户定义函数UDF
在内置函数不能满足查询时,通过UDF实现,UDF使用JAVA编写三种UDF:UDF,用户定义聚集函数UDAF(user-defined aggregate function),用户定义表生成函数UDTF(user-defined table-generation UDF)UDF:一个输入数据行,一个输出数据行UDAF:多个输入数据行,一个输出数据行,如max avg countUDTF:一个输入数...原创 2018-06-28 09:37:11 · 135 阅读 · 0 评论 -
关于HBase(一) 安装
1. 下载:http://mirror.bit.edu.cn/apache/hbase/2. 解压 tar -zxvf hbase-x.y-bin.tar.gz3. 安装JDK,设置JDK环境变量4. 设置hbase环境变量HBASE_HOME export HBASE_HOME=/usr/local/hbase export PATH=$PATH:$HBASE_HOM...原创 2018-06-28 09:37:18 · 124 阅读 · 0 评论 -
MapReduce类型和格式(一) 类型
map函数的输出类型必须与reduce的输入类型相同,下面的K1,V1,K2,V2等为抽象类型map: (K1, V1) -> (K2, V2)combiner: (K2, list(V2)) -> list(K2, V2)reduce: (K2, list(V2)) -> list(K3, V3)一般情况下,combiner和reduce的参数是相同的,即K2=K3, V2=V...原创 2018-06-26 07:26:44 · 684 阅读 · 0 评论 -
MapReduce运行机制(四) 任务的执行
任务执行环境Hadoop提供运行环境信息1) 处理文件名称2) 任务的尝试次数3) 作业配置信息...Streaming环境变量Hadoop设置作业配置参数作为Streaming环境变量,下划线代替非字母数字的符号1) os.environ["mapreduce_job_id"] Python2) -cmdenv 设置环境变量 -cmdenv MAGIC_PARAMETER=abrac...原创 2018-06-26 07:26:36 · 744 阅读 · 0 评论 -
Hadoop安装
下载下载VirtualBox http://download.virtualbox.org/virtualbox/5.1.18/VirtualBox-5.1.18-114002-Win.exe下载CentOS http://isoredirect.centos.org/centos/7/isos/x86_64/CentOS-7-x86_64-DVD-1611.iso下载XShell与XFtp 下载...转载 2018-05-03 22:16:04 · 116 阅读 · 0 评论 -
Hadoop HDFS分块抽象的好处
1 文件大小可以大于任意一个磁盘的容量,块并不需要存储在同一个磁盘上2 抽象块作为存储单元,简化存储子系统的设计 1) datanode将块作为处理对象,能存储多少块也能计算出 2) 无需管理元数据3 数据备份提高容错能力和可用性HDFS块为什么这么大?最小化寻址开销块足够大时,磁盘传输速率会远远大于寻址时间,则传输时间更依赖于磁盘传输速率...原创 2018-06-20 19:16:33 · 6007 阅读 · 0 评论 -
Hadoop HDFS处理大量的小文件(一)
使用HAR(Hadoop Archives),构建在其他文件系统之上用于文件存档的文件系统Hadoop存档文件系统通常将HDFS中的多个文件打包成一个存档文件,减少namenode内存的使用hadoop archive命令创建HAR文件Reference:https://blog.csdn.net/zyd94857/article/details/79946773...原创 2018-06-20 19:44:14 · 4238 阅读 · 0 评论 -
Hadoop HDFS处理大量的小文件(二)
Reference:https://blog.csdn.net/zyd94857/article/details/79946773原创 2018-06-20 19:45:22 · 288 阅读 · 0 评论 -
MapReduce 新旧API对比
发原创 2018-06-23 01:44:18 · 299 阅读 · 0 评论 -
MapReduce应用开发(一) Configuration类和环境相关配置
Configuraion类-用于配置的API资源合并变量扩展配置开发环境用MRUnit写单元测试关于Mapper关于Reducer本地运行测试数据本地运行器上运行测试驱动程序在集群上运行MR打包作业启动作业MR的Web界面获取结果作业调试Hadoop日志远程调试作业调优分析任务MapReduce的工作流...原创 2018-06-24 00:45:11 · 2162 阅读 · 1 评论 -
Hadoop org.apache.commons.logging.LogFactory
问题:Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.apache.hadoop.conf.Configuration.<clinit>(Configuration.java:178) at WordCountRunner....原创 2018-06-23 15:49:49 · 1509 阅读 · 0 评论 -
Hadoop 使用Maven
https://www.cnblogs.com/mephisto/p/4859564.html#_label0原创 2018-06-23 17:29:31 · 285 阅读 · 0 评论 -
MapReduce WordCount实例
jar依赖包:share文件夹中的common, hdfs, mapreduce和yarn中的jar包上述四个文件夹中lib中的jar包,否则编译时Hadoop的jar包找不到自己实现的依赖jar包原创 2018-06-23 17:56:57 · 274 阅读 · 0 评论 -
MapReduce应用开发(四) 作业调优和MapReduce的工作流
作业调优1) 检查以下项是否可以优化mapper数量 reducer数量 combiner 中间值的压缩 自定义序列化 调整shuffle2) 分析任务Hadoop允许分析作业中的一部分任务,任务完成时把分析信息存储以使用标准分析工具分析本地作业运行器与集群是不同的环境,且数据流模式也不同,如果MR作业是I/O密集的,那么本地优化的对于集群可能没帮助,有些问题只会在集...原创 2018-06-24 00:16:49 · 464 阅读 · 0 评论 -
MapReduce应用开发(二) 用MRUnit写单元测试
MRUnit是测试库(http://mrunit.apache.org),可以与Junit一起使用但是,退休了2016/04/30 - APACHE MRUNIT HAS BEEN RETIRED.原创 2018-06-24 00:37:25 · 176 阅读 · 0 评论 -
MapReduce应用开发(三) 本地运行和集群运行
本地运行本地运行器Hadoop有一个本地作业运行期job runner,在MapReduce执行引擎运行单个JVM上的MR作业的简化版本,为测试设计测试驱动程序1) 使用本地作业运行器2) 使用mini集群,Hadoop有一组测试类,MiniYARNCluster,MiniDFSClusterh和MiniMRCluster,使用程序创建正在运行的集群,集群上的节点管理器启动不同的JVM运行任务,使...原创 2018-06-26 07:27:12 · 832 阅读 · 0 评论 -
Hadoop java.lang.NoSuchMethodException: WordCountHello$WCMapper.<init>()
问题:java.lang.Exception: java.lang.RuntimeException: java.lang.NoSuchMethodException: WordCountHello$WCMapper.<init>() at org.apache.hadoop.mapred.LocalJobRunner$Job.runTasks(LocalJobRunner.java...原创 2018-06-27 09:30:50 · 962 阅读 · 0 评论 -
MapReduce运行机制(一) 剖析MR作业运行机制
剖析MR作业运行机制submit() 提交作业,封装大量处理细节waitForCompletion() 提交未提交过的作业并等待完成MR作业过程:1) 客户端:提交MapReduce作业2) YARN Resource Manager,协调集群资源分配3) YARN Node Manager,启动和监控集群计算容器4) MapReduce application master,协调运行MR作任务。...原创 2018-06-26 07:26:21 · 817 阅读 · 0 评论 -
MapReduce运行机制(二) 失败
任务/application master/NM/RM任务运行失败1) 任务代码异常 > JVM在退出前向application master发送错误报告,报告被记录用户日志 > application master将任务标记为failed,释放容器和资源 > 如果是Streaming任务,如果Streaming进程以非零代码退出,则标记...原创 2018-06-26 07:26:32 · 894 阅读 · 0 评论 -
MapReduce运行机制(三) shuffle和sort和shuffle调优
shuffleMR确保每个reducer的输入都是按key排序的,系统执行排序,将map输入传给reduce的过程叫shufflemap端1) map输出:不是直接写到磁盘,而是利用缓冲写到内存并进行预排序2) shuffle > 每个map任务有环形内存缓冲区用于存储任务输出,到达80%时,后台线程开始将缓冲区内容溢出到磁盘,边溢出边写入,如果缓冲区写满,map会阻塞直到spill过...原创 2018-06-26 07:26:34 · 471 阅读 · 0 评论 -
关于HBase(二) HBase的概念和实现
概念HBase是在HDFS上开发的面向列的分布式数据库,结构化数据的分布式存储系统需要访问超大规模数据集时,可以用HBase面向列族的存储器,调优和存储在列族上进行,同意列族内的成员最好有相同的访问模式和大小特征表 > 根据行的键值排序,排序按照字节序 > 通过表的主键访问表cell 单元格 > 行和列交叉决定 > 版本号:插入单元格时的时间戳 ...原创 2018-06-28 09:37:25 · 276 阅读 · 0 评论