
hadoop
AdamShyly
努力学习
展开
-
基于ZooKeeper的Kafka分布式集群搭建与集群启动停止Shell脚本
模式搭建高可用的集群以提高数据处理效率,但是目前还有许多企业依然使用ZooKeeper搭建Kafka集群,所以本文也采用ZooKeeper组件来搭建Kafka分布式集群。以broker ID为0的节点为例,下方是该节点配置Kafka的具体步骤,另外两个broker节点的配置步骤与其一致。下方是Kafka官网下载地址,本文使用。在虚拟机环境中搭建分布式集群。原创 2024-04-03 17:33:16 · 966 阅读 · 2 评论 -
IDEA 本地远程执行MapReduce(HA集群)程序找不到自定义Mapper与Reduce类
本文通过IDEA本地执行MR程序的main函数 ,而不是打包成Jar手工放到服务器上运行,发现以下错误提示:No job jar file set,然后在HDFS的/tmp下也没发现有该项目的Jar包,可以推测是任务提交给yarn后,本地并没有将项目打包成Jar提交给ResourceManager,导致找不到Mapper与Reducer类。注意不能是绝对路径,必须是相对路径(项目文件为根路径),否则还是无法提交成功,但是No job jar file set的提示消失了,却依旧找不到类。原创 2022-11-30 16:02:43 · 785 阅读 · 0 评论 -
Hadoop RPC通信连接问题
如果仅在本地测试Hadoop RPC进程通信没有出现问题,但部署于云服务器后发现进程之间socket无法连接通信,且在同一安全组(局域网)内的云服务器通过curl查看RPC端口也出现connection refused错误;且由于该RPC进程都是部署于docker容器中,通过云服务器本机curl查看RPC映射端口返回connection reset by peer。最终发现在RPC创建代理时域名写为localhost才能进行正常连接。.........原创 2022-06-05 04:11:28 · 685 阅读 · 0 评论 -
Tomcat 初始化启动 Hadoop RPC进程
为了防止Hadoop-client与tomcat相关依赖冲突,需要排除一些jar包 <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>3.2.3</version> <exclusions> &l原创 2022-05-27 15:41:22 · 267 阅读 · 0 评论 -
Hadoop RPC进程通信应用
Hadoop的RPC是基于socket的半双工通信机制,两边如果需要互相向对方传数据则需要建立两个通道;还要注意同一时间只能存在一个通道,否则双方的通信都会进入阻塞状态package com.linux.rpc2;import org.apache.hadoop.io.Text;public interface RPCProtocol { long versionID = 999; public void testProgram(int inputData); .原创 2022-05-05 02:27:27 · 1403 阅读 · 0 评论 -
Hadoop 清理MR临时文件
最近在各种测试Hive,结果发现三个节点服务器的磁盘都快爆满了,通过hadoop fs -du -h /发现HDFS上存储数据的并不多,然后就把问题锁定在MR的临时文件上(因为经常中断MR程序),后来发现在hadoop/data/nm-local-dir下看到了usercache用户缓存,居然有5.4G,还只是一个节点。直接将三台节点服务器的usercache全部删除,看到磁盘多了不少空间,又可以继续快乐的实验...原创 2022-04-28 01:44:19 · 2513 阅读 · 1 评论 -
Hadoop HA 配置文件以及自动化Shell脚本开关HA集群
目录配置文件workerscore-site.xmlhdfs-site.xmlmapred-site.xmlyarn-site.xml自动化Shell脚本format-hahadoop-hajpsallxcallxsynczk测试自动化脚本HA集群初始化启动HA集群关闭HA集群配置文件workershadoop102hadoop103hadoop104core-site.xml<config...原创 2022-04-25 00:27:49 · 1496 阅读 · 0 评论 -
Hadoop HA 完全分布式集群搭建(ZooKeeper)
学了大半个月hadoop,现在来完整搭建并测试一遍HA集群,本文总共使用了三台CentOS 7.9服务器:hadoop102 hadoop103 hadoop104,hadoop版本为3.2.3,ZK版本为3.5.9,JDK版本为1.8;以下是本次实验所配置的环境变量#JAVA_HOMEexport JAVA_HOME=/opt/module/jdk1.8.0_321export PATH=$PATH:$JAVA_HOME/bin#HADOOP_HOMEexport HADOOP_HOME=/o原创 2022-04-25 00:01:43 · 1829 阅读 · 1 评论 -
HDFS Call From hadoop102/192.168.182.102 to hadoop103:8020 failed on connection
搭建完HA集群后发现在web端无法上传文件,查看日志发现报了Call From hadoop102/192.168.182.102 to hadoop103:8020 failed on connection的错误,一直在拒绝连接,后来发现也无法删除文件,但是在命令行hadoop fs -put 指令没有问题,最后发现是没有配置静态用户,没有权限上传和删除文件所导致,在core-site.xml配置上静态用户即可正常上传和删除文件...原创 2022-04-24 04:14:45 · 1960 阅读 · 2 评论 -
HA JournalNode的作用
为了保证 Active 节点和 Standby 节点,即可以可靠的保持数据的一致性,又不会影响集群的可用性,HDFS 在 Active 节点和 Standby 节点之间引入了另外一个节点 JournalNode 节点。 JournalNode 节点作为 Active 节点和 Standby 节点的中间节点,它为两个节点解决了数据的同步的问题。首先 Active 节点会将元数据发送给 JournalNode 节点,然后 Standby 节点会从 JournalNode 节点获取需要同步...转载 2022-04-24 03:24:00 · 286 阅读 · 0 评论 -
HDFS 集群迁移 Could not preview the file
我在使用 hadoop distcp hdfs://hadoop102:8020/ hdfs://hadoop105:8020/ 递归拷贝HDFS所有数据后,发现在hadoop105这个集群中无法查看拷贝完的文件。然后我去下载这些文件发现其他DN的9864端口无法访问,看了一眼URL,发现是hadoop106:9864,或者是hadoop107:9864,才想起来这台物理机的hosts没进行映射。最后配置完物理机的hosts后,新迁移的集群就能完美工作了。...原创 2022-04-17 15:40:03 · 1172 阅读 · 0 评论 -
Yarn JVM重用uber模式源码解读
Yarn源码分析之如何确定作业运行方式Uber or Non-Uber? - 吉日木图 - 博客园 (cnblogs.com)转载 2022-04-17 13:37:26 · 344 阅读 · 0 评论 -
Hadoop 两台物理机内部虚拟机组建集群(使用手机热点)
如果想同时启动多台虚拟机来搭建Hadoop集群,但发现一台物理机无法承受这么大的内存、硬盘、CPU消耗,则可以再拿一台物理机进行实验。第一步:开启手机热点,让两台物理机都通过WIFI连接到该热点,目的是构建局域网第二步:两个物理机下的所有虚拟机的网络模式要从NAT改为桥接,并且要勾上“复制物理网络连接状态”第三步:配置虚拟机子网。如果虚拟机想访问外网就要跟手机热点处于同一个子网,并且服务器的网关和DNS都要和该子网的网关相同。这里关于手机热点的子网划分可以从物理机用ipconfig.原创 2022-04-16 18:47:26 · 2499 阅读 · 0 评论 -
HDFS DataNode节点内磁盘平衡
小数据运维之HDFS节点内平衡 - 墨天轮 (modb.pro)转载 2022-04-15 00:31:36 · 238 阅读 · 0 评论 -
HDFS could only be written to 0 of the 1 minReplication nodes. There are 3 datanode(s) running and 3
我在测试HDFS的写数据压测的时候,在测试程序还没运行完我就按了Ctrl + C强制退出,导致HDFS上的/tmp目录下存放的临时数据文件过大,直接将HDFS文件空间占满,什么都传不上去。所以直接将HDFS的/tmp目录下之前运行程序的临时文件删掉就好了(可以根据当时运行程序的时机来判断该不该删)。之前有看到很多人都说是由于ClusterID不一致,所以需要格式化集群,但我发现我集群上的NameNode与DataNode的ClusterID都是一样的。所以有时候别人的意见就只能是参考参考,别轻易地就往自原创 2022-04-14 20:22:00 · 2073 阅读 · 0 评论 -
YARN 公平调度器 cannot also include a maxAMShare element
初始化fair调度器的时候发现RM无法启动,然后查看日志发现以下异常发现就是指定type='parent'或者包含子队列的队列元素不能有maxAMShare元素,也就是不能指定AM的资源占比。然后我在fair-scheduler.xml把<maxAMShare></maxAMShare>删掉就能正常启动Yarn了,这里估计是新的fair调度器的配置信息有更改,不允许父队列元素指定AM资源占比,待我读一下CDN官方文档后再来更新补充……...原创 2022-04-13 03:32:19 · 340 阅读 · 1 评论 -
MapReduce3.x 自定义 FileInputFormat
查看Mapper源码可以发现,在每次进行map方法之前会执行nextKeyValue、getCurrentKey、getCurrentValue方法,它们分别代表:判断接下来是否还有Key Value pairs,如果还有则继续执行map方法;获得下一次执行map的Key;获得下一次执行map的Value。所以如果要自定义FileInputFormat就要重写这几个方法。以下是这次实验的项目结构目录以下分别是TestFileInputFormat、TestRecordReader、Inp原创 2022-04-10 23:23:56 · 443 阅读 · 0 评论 -
MapReduce 序列化、二次排序、自定义分区、虚拟存储切片(CombineTextInputFormat)——综合案例
FlowBean.javapackage com.atguigu.mapreduce.partitionerandWritableComparable;import org.apache.hadoop.io.WritableComparable;import java.io.DataInput;import java.io.DataOutput;import java.io.IOException;/** * 1. 定义类实现Writable接口 * 2. 重写序列化和反序列.原创 2022-04-10 02:58:04 · 1014 阅读 · 0 评论 -
MapReduce 工作流程总结
客户端Job提交流程一个待处理的数据集首先会进入客户端,最先运行的是Driver类,初始化job配置信息,其中包括自定义分区信息、虚拟存储切片信息、数据输入输出路径、Mapper和Reducer的输入输出KV类型。接着在Job类中,客户端首先会确定Job的state是否为DEFINE,如果是则处理API的兼容问题,然后开始尝试与Yarn服务器建立连接。如果连接失败则启动本地运行模式。接下来就开始启动Job提交的准备工作,首先会检查数据输出目录是否存在,如果存在则报错。然后开始创建J...原创 2022-04-10 02:07:14 · 2927 阅读 · 2 评论 -
MapReduce 切片源码中SPLIT_SLOP等于1.1的原因分析(TextInputFormat)
之所以是1.1倍的splitSize,原因应该是考虑到文件大小为32.1M这种情况,由于切片大小默认等于块大小,所以此时数据的块存储跟切片存储大小一致,都被分为32M和0.1M。而此时由于有两个切片则不得不开启两个MapTask。而MR不擅长处理小文件的运算也是因为此时启动MapTask的时间耗费比计算时间还长(此时不如用python处理)。而如果将32.1M只当成一个切片来处理的话,虽然数据块是位于两个节点服务器中,而MapTask只在其中一个服务器中,但只在两个服务器中传递这0.1M的时间成本相比于另外原创 2022-04-08 13:11:18 · 1752 阅读 · 0 评论 -
MapReduce 自定义Writable序列化数据类型
Mapper的输入KV类型是由MR的InputFormat定义的,默认是偏移值和一行的数据;而输出KV类型可根据实际业务逻辑自己定义,如果该类型不包括官方提供的序列化数据类型中,则可以自己实现writable接口,重写write、readFields、toString方法,其中write、readFields方法要注意序列化对象成员时的顺序必须一致,而toString方法是指定输出对象时的数据格式package com.atguigu.mapreduce.writable;import org.a原创 2022-04-07 23:03:28 · 531 阅读 · 0 评论 -
HDFS NameNode——Fsimage和edits加载合并至内存问题
我在看完namenode和2NN机制后有这样一个疑问:为什么NameNode要依靠2NN进行编辑日志和镜像文件的合并,自身为什么不周期性的合并加载至内存按我个人的理解就是客户端在请求操作元数据更改时,内存会暂时将该操作保存,先进行edits日志更新,持久化至硬盘,然后内存再进行数据的运算更新。如果此时内存不会保存该操作,而是通过Fsimage和刚更新的edits对内存进行操作,就相当于此时多了一步硬盘重新加载至内存的操作。如果是依靠自身的周期性合并日志,那么就意味着此时内存并没有被修改(否则同一步操原创 2022-04-07 09:49:38 · 655 阅读 · 0 评论 -
Hadoop API的使用
本次实验环境是在windows系统下,通过windows的hadoop依赖在IDEA进行首先需要下载windows支持的hadoop依赖程序以下是下载链接winutils-1: winutils.exe hadoop.dll and hdfs.dll binaries for hadoop windows - Gitee.com解压后还需要配置环境变量接下来就可以在 IDEA 通过 Maven 来使用 Hadoop 的API函数啦,以下是项目目录结构以下...原创 2022-04-05 03:13:20 · 1887 阅读 · 0 评论 -
Hadoop 集群时间同步
在生产环境中,如果服务器集群不能连接外网进行时钟校正,可能会导致日志聚集、集群任务调度等出现异常,此时就需要进行集群的时间同步,但如果集群能连接外网则不需要配置。首先需要确定一台时间校正服务器,让其他服务器都与之进行时间对比校正。这里我准备了三台虚拟机,主机名分别为 hadoop102 hadoop103 hadoop104,其中 hadoop102 为时间服务器第一步:修改 hadoop102 的 ntp.conf 文件vim /etc/ntp.conf第二步(可选):修改原创 2022-04-05 02:58:46 · 1546 阅读 · 0 评论 -
Hadoop Yarn ResourceManager启动失败
今天在启动 Yarn 的时候,发现JPS怎么少了 ResourceManager[hadoop@hadoop103 hadoop-3.2.3]$ sbin/start-yarn.shStarting resourcemanagerStarting nodemanagershadoop103: Warning: Permanently added the ECDSA host key for IP address '192.168.182.134' to the list of known hos原创 2022-04-04 02:40:48 · 2735 阅读 · 0 评论 -
Hadoop HDFS 完全分布式集群搭建
实验环境CentOS 7.9 JDK 1.8 hadoop-3.2.3准备工作准备三台虚拟机,主机名分别为 hadoop102(name node)、hadoop103(data node)、hadoop104(secondary name node)分别配置好/etc/hosts文件这里需要注意一点:127.0.0.1 那里最好不要写 hadoop102 103 104 这种主机名,否则会导致namenode服务仅能本地(127.0.0.1)访问接下来最好关闭防火墙sudo syste原创 2022-04-04 00:34:49 · 819 阅读 · 0 评论