大数据之Hadoop
文章平均质量分 68
Hadoop
大数据架构师Pony
不勤于始,将悔于终。
展开
-
java.lang.RuntimeException: Unable to run quorum server zk启动错误
解决:查看zookeeper的配置文件zoo.cfgvi /opt/cloudera/parcels/CDH/lib/zookeeper/conf/zoo.cfgdataDir=/var/lib/zookeepercd /var/lib/zookeeper/version-2rm -rf *重启集群即可。原创 2022-01-11 14:04:33 · 1168 阅读 · 0 评论 -
hadoop权限问题:Permission denied: user=root, access=WRITE, inode=“/“:hdfs:supergroup:drwxr-xr-x
如图:解决:修改Hadoop配置文件hdfs-site.xml里的权限。最后一步:重启hdfs组件。原创 2021-07-26 15:05:53 · 7678 阅读 · 3 评论 -
大数据常用端口汇总
所有端口协议均基于TCPHDFS DataNode 50010 dfs.datanode.address datanode服务端口,用于数据传输HDFS DataNode 50075 dfs.datanode.http.address http服务的端口HDFS DataNode 50475 dfs.datanode.https.address https服务的端口HDFS DataNode 50020 dfs.datanode.ipc.address ipc服务的端口HDFS Nam.原创 2021-06-29 10:50:27 · 1005 阅读 · 1 评论 -
海量数据处理 - 10亿个数中找出最大的10000个数(top N问题)
前两天面试3面学长问我的这个问题(想说TEG的3个面试学长都是好和蔼,希望能完成最后一面,各方面原因造成我无比想去鹅场的心已经按捺不住了),这个问题还是建立最小堆比较好一些。 先拿10000个数建堆,然后一次添加剩余元素,如果大于堆顶的数(10000中最小的),将这个数替换堆顶,并调整结构使之仍然是一个最小堆,这样,遍历完后,堆中的10000个数就是所需的最大的10000个。建堆时间复杂度是O(mlogm),算法的时间复杂度为O(nmlogm)(n为10亿,m为10000)。...转载 2020-11-21 12:56:34 · 1634 阅读 · 0 评论 -
大数据面试-20210310
基础题1、清楚描述 MapReduce 的 shuffle 过程Map方法之后,数据首先进入到分区方法,把数据标记好分区,然后把数据发送到环形缓冲区;环形缓冲区默认大小100m,环形缓冲区达到80%时,进行溢写;溢写前对数据进行排序,排序按照对key的索引进行字典顺序排序,排序的手段快排;溢写产生大量溢写文件,需要对溢写文件进行归并排序;对溢写的文件也可以进行Combiner操作,前提是汇总操作,求平均值不行。最后将文件按照分区存储到磁盘,等待Reduce端拉取。2、HBa...原创 2021-06-08 16:32:31 · 119 阅读 · 0 评论 -
MapReduce分区个数和reduceTask个数的关系
分区个数等于reduceTask个数:正常执行分区个数等于reduceTask个数:正常执行,有空文件产生分区个数等于reduceTask个数:错误,Illegal partition原创 2020-09-13 12:18:26 · 2004 阅读 · 4 评论 -
MapReduce的输入输出和处理流程
MapReduce的输入和输出MapReduce框架运转在<key,value>键值对上,也就是说,框架把作业的输入看成是一组<key,value>键值对,同样也产生一组<key,value>键值对作为作业的输出,这两组键值对可能是不同的。一个MapReduce作业的输入和输出类型如下图所示:可以看出在整个标准的流程中,会有三组<key,value...原创 2020-02-02 16:08:11 · 5930 阅读 · 0 评论 -
关于MapReduce的三大阶段、八大步骤
mapreduce的三大阶段:map阶段:并行处理的阶段 shuffle阶段:从离开Mapper开启到进入Reduce之前的阶段 reduce阶段:汇总整理的阶段mapreduce的八大步骤设置MapReduce的输入InputFormat类型,默认为TextInputFormat 自定义map函数,得到TextInputFormat的k1,v1;经过处理后传出k2,v2 分区-...原创 2020-02-02 15:52:32 · 6651 阅读 · 0 评论 -
MapReduce的分而治之,你真的懂吗?
分:Map负责“分”,即把复杂的任务分解为若干个“简单的任务”来并行处理。可以进行拆分的前提是这些小任务可以并行计算,彼此间几乎没有依赖关系。合: Reduce负责“合”,即对map阶段的结果进行全局汇总。MapReduce借鉴了函数式语言中的思想,用Map和Reduce两个函数提供了高层的并行编程抽象模型。 Map: 对一组数据元素进行某种重复式的处理; Red...原创 2020-02-02 15:58:51 · 2136 阅读 · 1 评论 -
MapReduce的框架结构
一个完整的MapReduce程序在分布式运行时有三类实例进程: MRAppMaster:负责整个程序的过程调度及状态协调 MapTask:负责map阶段的整个数据处理流程 ReduceTask:负责reduce阶段的整个数据处理流程 ...原创 2020-02-02 16:04:37 · 343 阅读 · 0 评论 -
大数据面试-20210318
基础题1、hdfs 写文件过程以3节点3副本为例:1、客户端通过Distributed FileSystem(FS对象)请求namenode上传文件到对应的目录下,namenode接收到请求后,检查目标文件是否已存在。2、namenode返回是否可以上传。3、client会先对文件进行切分,比如一个block块128m,请求第一个 block该传输到哪些datanode服务器上。4、namenode返回三个datanode节点A、B、C,根据距离远近以及负载大小返回给客户..原创 2021-06-11 15:44:44 · 179 阅读 · 0 评论 -
大数据面试-20210317
基础题1、RDD、DataFrame、DataSet三者的区别与联系?联系:a. RDD、DataFrame、Dataset全都是spark平台下的分布式弹性数据集,为处理超大型数据提供便利。如果同样的数据都给到这三个数据结构,他们分别计算之后,都会给出相同的结果。不同是的他们的执行效率和执行方式。b.三者都有惰性机制,在进行创建、转换,如map方法时,不会立即执行,只有在遇到Action如foreach时,三者才会开始遍历运算,极端情况下,如果代码里面有创建、转换,但...原创 2021-06-09 14:27:43 · 178 阅读 · 0 评论 -
大数据面试-20210311
基础题1、谈谈Hadoop里面的压缩格式以及使用场景压缩格式比较原创 2021-06-08 16:38:49 · 261 阅读 · 0 评论 -
hdfs启动流程
NameNode1.init()namenode初始化,执行加载配置文件等操作2.loadFsImage()2、loadFsImage() ,开始加载元数据 FsImage3.loadEditlog()加载Editlog,将Editlog中记录的元数据修改应用到内存中;4.saveCheckpoint()将内存中最新的目录树持久化为新的FsImage到磁盘,以加快下次启动速度5.startRpcServer()启动RPC服务,开始接受外部请求;6.star...原创 2021-06-08 15:56:40 · 1226 阅读 · 0 评论 -
spark运行作业时报错:Missing application resource.
原因:命令不正确!解决:检查命令格式是否正确。检查发现:箭头处少个空格原创 2020-10-27 18:20:26 · 7935 阅读 · 0 评论 -
hadoop hdfs常用命令
查看文件hadoop fs -ls file:///root/hadoop fs -ls /user/hadoop/file1创建目录hadoop fs -mkdir –p /user/hadoop/dir1将单个src或多个srcs从本地文件系统复制到目标文件系统。-p:保留访问和修改时间,所有权和权限。-f:覆盖目的地(如果已经存在)hadoop fs -put -f l...原创 2020-02-02 15:25:17 · 454 阅读 · 0 评论 -
hadoop的六大配置文件
原创 2020-02-02 15:03:48 · 721 阅读 · 0 评论 -
hadoop集群三节点角色分配表
NameNode:集群的管理,存储元数据(描述数据的数据)信息 一个 DataNode:存储真实数据的节点 多个 SecondaryNameNode:辅助NN的辅助节点 一个 YARN集群负责海量数据运算时的资源调度,集群中的角色主要有: CPU 内存 磁盘 网络带宽 ResourceManager:主节点 分配资源 NodeManager:从节点 执行任务 ...原创 2020-02-02 15:02:31 · 1798 阅读 · 0 评论 -
HDFS动态扩容的数据问题
问题描述:node04从node01上复制,hadoop也复制过来,/export/data元数据和块数据是一块复制过来的,datanode(node01),一定要将node04上的数据清空掉!步骤如下:...原创 2020-02-02 16:35:17 · 241 阅读 · 0 评论 -
failed to find commons-codec:commons-codec:pom:1.15.......
问题描述:idea打jar包时,报错:failed to find commons-codec:commons-codec:pom:1.15........原因:jar包冲突或者少jar包解决:去除jar包冲突或者下载相应jar包1.如果你的集群环境有版本,去除jar包冲突时一定要手动输入jar包的<aetifactId>,比如spark-sql_2.xx 让它自动提示出来。2.如果集群没有这个版本的jar包,就下载commons-codec-1.xx.jar,放...原创 2020-09-18 18:49:43 · 11209 阅读 · 5 评论 -
MapReduce中的getPartition原理
原创 2020-09-13 11:58:08 · 790 阅读 · 0 评论 -
MapReduce读取hive数据,然后用hbase的bulkload方法导入hbase中
Driver类:HiveMapper类:打包,测试:结果查看:原创 2020-09-03 15:41:26 · 840 阅读 · 0 评论 -
定时定期删除hdfs上某个目录下的过期文件--脚本
#!/bin/bashsource ~/.bashrc# HADOOP所在的bin目录HADOOP_BIN_PATH=/home/hadoop/hadoop-2.3.0-cdh5.0.0/bin#待检测的HDFS目录data1_file=/user/gas/data1data2_file=/user/gas/data2#将待检测的目录(可以为多个)加载至数组中array_check=($data1_file $data2_file)# 当前时间戳today_timestamp=$(d...转载 2020-09-02 12:53:57 · 1796 阅读 · 0 评论 -
Hadoop参数调优,性能优化。
Hadoop参数调优一、 hdfs-site.xml 配置文件1、 dfs.blocksize 参数:hadoop文件块大小描述:新文件的默认块大小,以字节为单位,默认 134217728 字节。可以使用以下后缀(大小写不敏感):k(kilo)、m(mega)、g(giga)、t(tera)、p(peta)、e(exa)来指定大小(如128k、512m、1g等),或者以字节为单位提供完整的大小。2、 dfs.namenode.handler.count参数:namenode的原创 2020-05-26 10:30:04 · 1766 阅读 · 0 评论 -
hadoop的Combiner,partition作用,如何设置Compression
Partition作用(一)对partition的理解partition意思为分开,划分。它分割map每个节点的结果,按照key分别映射给不同的reduce,也是可以自定义的。其实可以理解归类。也可以理解为根据key或value及reduce的数量来决定当前的这对输出数据最终应该交由哪个reduce task处理。partition的作用就是把这些数据归类。每个map任务会针对输出进行分区,及对每一个reduce任务建立一个分区。划分分区由用户定义的partition函数控制,默认使用哈希函..原创 2020-05-26 10:30:17 · 712 阅读 · 0 评论 -
Spark的shuffle阶段和MR的shuffle阶段分别是什么?区别是什么?
mr的shuffle分为map的shuffle和reduce 的shuffleMap的Shuffle 数据存到hdfs中是以块进行存储的,每一个块对应一个分片,maptask就是从分片中获取数据的。在某个节点上启动了mapTask,mapTask读取是通过k-v来读取的,读取的数据会放到环形缓存区,这样做的目的是为了防止IO的访问次数,然后环形缓存区的内存达到一定的阀值的时候会把文件溢写到磁盘,溢出的各种小文件会合并成一个大文件,这个合并的过程中会进行排序,这个排序叫做归并排序。map...原创 2020-05-26 10:30:23 · 1859 阅读 · 2 评论 -
MapReduce对象重用问题
Mapreduce计算,输出时key的值都是一个,而且都是最后一个put进入的值!原因:Key-Value对象的重用导致的:Key是一个引用,它在栈中,指向堆中一个对象,同样Value也是如此。虽然reduce方法会反复执行多次,但key和value相关的对象只有两个,key和value的引用也是只有两个,reduce会反复重用这两个对象。所以put进去的key指向的对象只有一个,对象的值...原创 2020-04-12 21:49:56 · 407 阅读 · 0 评论 -
TopN算法,使用spark或者scala实现。
TopN算法,使用spark或者scala实现。object TopN{def main(args:Array[String]){val conf = new SparkConf()conf.setAppName("Wow,TopNGroup App!")conf.setMaster("local")val sc = new SparkContext(conf)sc.setLogLevel("WA...原创 2020-05-24 23:19:24 · 500 阅读 · 0 评论