自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(61)
  • 收藏
  • 关注

原创 Mac M1 使用Centos8➕VMware Fusion进行静态网络配置

子网IP开始是没有的 它会自动生成 只要钩子打上后 应用就行。之后点击网络 在自定中你应该只有仅供我的Mac专用。记得把网络打开 然后记住这个IPv4的地址和DNS。当我们已经下载好mac m1版的Centos8。在导入过后 记得将硬盘和内存都设置好了。接着退出之后进入自定义的vmnet中。设置好后安装 安装完成后进入用户账户。之后先不急着初始化centos8。这个时候我们需要点击下面的加号。之后找到这个地方 记住一会要用。之后打开mac自己终端输入。大部分的流程网络上面都有。至此,基本的工作就已做完。

2023-02-16 18:53:40 820 1

原创 大数据生态体系

1、Sqoop:Sqoop是一款开源的工具,主要用于在Hadoop、Hive与传统的数据库(MySQL)间进行数据的传输,可以将一个关系型数据库(如:MySQL,Oracle等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系型数据库中。

2022-09-14 14:43:54 606

原创 hive介绍

hive的部分介绍

2022-09-13 11:05:19 624

原创 MYSQL语言总结

sql是用于访问和处理数据库的标准的计算机语言,sql是Structured Query Language 的缩写,是指结构化查询语言。

2022-08-21 19:24:11 305

原创 hadoop104: Warning: Permanently added hadoop104,192.168.10.104 (ECDSA) to the list of known hosts.

解决hadoop104: Warning: Permanently added hadoop104,192.168.10.104 (ECDSA) to the list of known hosts.

2022-06-19 17:43:32 1837

原创 org.apache.hadoop.mapred.InvalidInputException: Input path does not exist: file:...解决

当我使用val peopleDF = spark.sparkContext.textFile("examples/src/main/resources/people.txt").map(_.split(",")).map(para=>Person(para(0).trim,para(1).trim.toInt)).toDFpeopleDF: org.apache.spark.sql.DataFrame = [name: string, age: bigint]创建完peopleDF后,用

2022-05-26 17:50:17 2704

原创 spark:File does not exist :某文件

22/04/18 17:10:07 ERROR SparkContext: Error initializing SparkContext.java.io.FileNotFoundException: File does not exist: hdfs://hadoop102:8020/directory解决方案:直接将缺少的文件创建出来文件名就是直接将not exist后面的都复制过来,不是单纯的最后面的文件创建...

2022-04-18 17:21:31 2959

原创 hadoop无法上传hdfs方法解决

首先,我遇到的是两种情况第一种是namenode没有开启,秒挂的情况,这个会出现这种提示put: File /hdfsdata/NOTICE.txt._COPYING_ could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and 0 node(s) are excluded in this operation.注意就是下面提醒了datanode是0,通过jps查看,

2022-04-18 12:13:01 6544 4

原创 datanode无法启动解决方法

简明扼要一点,我尝试了两个方法第一个方法就是将name中的current中的VERSION复制下来,然后粘贴到data中的VERSION(注:可能有的人不知道这个怎么找,首先name应该是在hadoop-3.1.3下的data/dfs/name, 而data可以在hadoop下的hdfs-site.xml中的data.dir下找到路径,我的是在hdfsdata下的 且如果你有写了储存策略,可能就会有两个文件,ssd,ram_disk等,进去都把vers...

2022-04-18 11:48:39 694 1

原创 idea中Exception in thread “main“ java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.Native

这个困扰了我三天的问题,之前已经不想解决了,直到再一次遇到,决定彻底干它,之前也在网上搜了一些解决它的办法,什么改变环境还有加入NativeIO,都没有用,不过最后还是使用了NativeIO的方法解决了,之前一直没有用的原因是,没有把文件放对位置正确的位置应该是放在java包下,和项目包并行,而且必须是这个包名org.apache.hadoop.io.nativeio和NativeIO这个类名,不然不能覆盖原来的这个类下面附上NativeIO的源码,有的包可能要自己引一下,细节上应该不用说了

2022-04-02 16:24:31 759

原创 开启hadoop集群时出现localhost:mv:无法获取的情况

出现这种情况可能是你的环境变量中HADOOP_HOME配置将中的路径把bin目录带进去了,将其删除后我的集群就正常启动了

2022-03-28 20:46:37 5805 3

原创 namenode启动不了或者出错问题

当我们启动集群的时候,可能会出现namenode启动不了或者出错的状况,这个时候不要慌,进入hadoop-3.1.3中输入ll,查看里面是否有logs和data两个文件,输入rm -rf logs/data命令进行删除,执行过后再次查看一次有没有删除,如果没有删除,就在命令前面加入sudo ,将其删除之后再将集群关闭,输入hdfs namenode -format将namenode格式化,再次启动就可以重新出现namenode啦其中要提示的是,如果你的集群是有三个服务器一起启动的时

2022-03-21 19:13:57 5698 2

原创 ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘localhost:3306‘ (10061)解决办法

这个解决办法是我根据网上一系列的方法准备突然成功的,所以我想可能是由于本身其不稳定造成的首先,我在官网上下载了mysql文件,这个网上随便找都能找到怎么下载的然后打开文件后,发现没有my.ini所以我就找了一个文档放了进去[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录 ----------是你的文件路径-------------basedir=F:\mysql-8.0.27-winx64# 设置mysql数据库的数据的存放目录 --.

2022-01-18 15:35:10 26998 24

原创 Java垃圾回收机制

对象被判定为垃圾的标准没有被其他对象引用判定对象是否为垃圾的算法引用技术算法可达性分析算法垃圾回收算法标记-清除算法(Mark and Sweep)复制算法(Copying)标记-整理算法(Compacting)分代收集算法(Generational Collector)(主流)常见得垃圾收集器垃圾收集器之间的联系年轻代常见的垃圾收集器老年带常见的垃圾收集器既用于年轻代也用于老年代的垃圾收集器G1收集器(-XX:+UseG1GC,复制+标记-

2022-01-05 10:40:08 262

原创 死锁——从产生到消除

1、死锁是什么? 发生在并发中 互不相让:当两个(当两个(或更多)线程(或进程)相互持有对方所需的资源,又不主动释放,导致所有人都无法继续前进,导致程序陷入无尽的阻塞,这就是死锁) 2、多个线程造成死锁的情况 如果多个线程之间的依赖关系是环形,存在环路的锁的依赖关系,那么也就可以发生死锁 3、死锁的影响死锁的影响在不同系统中是不一样的,这取决于系统对死锁的处理能力 数据库中:检测并放弃事务 JVM中:无法自动处理 4、几率不高但是危害大 .

2021-12-26 15:56:18 474

原创 单例模式面试常见问题

问题一:饿汉式的缺点 可能会造成一定情况的浪费 问题二:懒汉式的缺点 程序较为复杂,还有可能出现线程不安全的情况 为什么要用双重检查模式double-check,不用就不安全么 因为可能两个线程同时加入到if判断是否实例为空的语句中,就可能创建多个实例,不用的话 ,也可在if语句外加入synchronized锁,不过效率很低 为什么双重检查模式要用volatile 在构造实例时,有三个步骤 ,创建一个空对象,调用构造方法,把实例的地址分配给引用,但是这三个步骤可..

2021-12-12 14:52:42 90

原创 JMM应用实例-单例模式8种写法

单例模式适用场景1、无状态的工具类:比如日志工具类,不管是在哪里使用,我们需要的只是他帮我们记录日志信息,除此之外,并不需要在它的实际对象上存储任何状态,这个时候我们就只需要一个实例对象即可2、全局信息类:在一个类上记录网站访问次数,不希望有的访问被记录在对象A上,有的记录在对象B上,这个时候就让这个类成为单例单例模式8种写法饿汉式:在类加载时候,就把实例加载完毕了懒汉式:单例在用到的时候才进行加载,可以节省内存1、饿汉式(静态常量)(可用)//描述 饿汉式(静态常量).

2021-12-12 13:57:28 124

原创 原子性浅析

原子性:一系列操作,要么全部执行成功,要么全部不执行成功,不会出现执行一半的情况,是不可分割的比如ATM取钱是具有原子性的,但是i++没有原子性所以就可以用synchronized实现原子性Java中的原子操作 除了long和double之外的基本类型(int ,byte ,boolean,short,char,float)的赋值操作 所有引用reference的赋值操作,不管是32位的机器还是64位的机器 java.concurrent.Atomic.*包中所有类的.

2021-12-12 10:04:00 98

原创 JVM内存结构、Java内存模型和Java对象模型

容易混淆!!!整体方向: JVM内存结构,和Java虚拟机的运行时区域有关 Java内存模型,和Java的并发编程有关 Java对象模型,和Java对象在虚拟机中的表现形式有关 JVM内存结构 堆 虚拟机栈 方法区 本地方法栈 程序计数器 Java对象模型 Java对象自身的存储模型 JVM会给这个类创建一个instanceKlass,保存在方法区,用来在JVM层代表该Java类。 当我们在Java

2021-12-12 09:27:48 286

原创 线程安全介绍

什么是线程安全 书中定义:当多个线程访问一个对象的时候,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用方法方进行任何其他的协调操作,调用这个对象的行为都可以获得正确的结果,那这个对象是线程安全的他人翻译:不管业务中遇到怎样的多个线程访问某对象或某方法的情况,而在编程这个业务逻辑的时候,都不需要额外做任何额外的处理(也就是可以像单线程编程一样),程序也可以正常运行(不会因为多线程而出错),就可以称为线程安全。 会出现线程不安全情况 get同时set..

2021-12-05 09:22:47 3346

原创 JDK版本的选择

我们需要选择Oracle长期支持的JDK版本,即JDK8和JDK11,这样我们的对于JDK的学习才有意义

2021-11-30 10:44:30 575

原创 线程属性面试题

问题一:什么时候我们需要设置守护线程 一般我们不需要设置守护线程,JVM自动提供的守护线程足够我们使用了 问题二:我们应该如果应用程序优先级来帮助程序运行?有哪些禁忌? 我们不应该用程序优先级来帮助我们运行程序,因为不同的操作系统会改变优先级...

2021-11-29 20:12:13 224

原创 常见面试问题——守护线程

问题一:守护线程和普通线程的区别 守护线程和普通线程在整体上没有太大区别,主要区别在于是否影响JVM的退出,以及它们的作用不同,用户线程是实现我们逻辑的,而守护线程是服务于我们的 问题二:是否应该给线程设置成守护线程 不应该,一旦设置成守护线程后会被变的很危险,当程序运行时,JVM发现只剩下守护线程了,会导致在程序操作的中间可能被强行终止,所以在开发中没有必要给自己的线程设置为守护线程。JVM提供的守护线程就足够服务于我们了...

2021-11-29 19:51:45 494

原创 线程各属性

线程Id问题一:为什么自己在主线程后面创建的子线程的Id不是id2// 描述:Id从1开始,JVM运行起来后,自己创建的线程Id早已不是2public class Id { public static void main(String[] args) { Thread thread = new Thread(); System.out.println("主线程的Id"+Thread.currentThread().getId()); S

2021-11-29 19:36:55 130

原创 yield方法详解

作用:释放我的CPU时间片,即暂停当前正在执行的线程对象,并执行其他线程 定位:JVM不保证遵循yield方法 yield和sleep区别:是否随时可能再次被调度,因为yield的目的是让相同优先级的线程之间能够进行轮换执行,但是进行让步的线程有可能被线程调度程序再次选中 ...

2021-11-29 18:31:04 237

原创 join期间线程状态的两种查看方式

1、使用mianThread.getState()查看线程状态代码演示package threadobjectclasscommonmethods;//描述: 先Join再mianThread.getState()// 通过debugger看线程join前后状态对比public class JoinThreadState { public static void main(String[] args) throws InterruptedException { ..

2021-11-29 14:55:11 329

原创 join方法详解

join方法作用、用法作用:因为新的线程加入了我们,所以需要等待新的线程执行完毕再出发用法:main等待thread1执行完毕,注意是主线程等待子线程普通用法演示public class Join { public static void main(String[] args) throws InterruptedException { Thread thread1 = new Thread(new Runnable() { @Overrid

2021-11-28 21:38:41 657

原创 常见面试问题——sleep方法

问题:wait/notify、sleep异同相同之处:1、Wait和sleep方法都可以让线程阻塞 ,对应的线程状态是Waiting或Time_Waiting 。2、wait和sleep方法都可以响应中断Thread.interrupt()。不同之处:1、wait/notify需要在同步方法中进行,sleep不需要2、wait方法会释放monitor锁,sleep不释放monitor锁3、sleep需要传入指定参数主动退出阻塞,wait是等待被唤醒之后才会退出阻塞4、wait

2021-11-28 20:38:40 133

原创 sleep方法详解

作用:只想让线程在预期的时间执行,其他时候不要占用CPU资源不释放锁 (包括synchronized和lock)不释放synchronized代码验证//展示线程sleep的时候不释放synchronized的monitor,等sleep时间到了以后,// 正常结束后才会释放锁public class SleepDontReleaseMonitor implements Runnable{ public static void main(String[] args) {

2021-11-28 20:24:51 1479

原创 Java 8 和Java 1.8 和JDK8是什么关系,同一个东西么?

java8约等于JDK8,而Java8和Java1.8同样是一种东西,由于在Java1.5时,人们觉得版本更新速度很慢,都是1.几几的,就直接取后面的数字叫Java5,所以说其实是一种东西,只是叫法不同

2021-11-28 10:43:39 4511

原创 JRE、JDK和JVM是什么关系?

JDK(Java Development Kit):Java开发工具包。jdk是整个Java开发的核心,它集成了jre和一些好用的小工具。例如:javac.exe,java.exe,jar.exe等。Java开发必不可少JRE(Java Runtime Environment):Java运行时环境。它主要包括两个部分:jvm的标准实现和Java的一些基本类库。它相对于jvm来说,多出来的是一部分的Java类库。Java运行必不可少JVM(Java Virtual Machine),java...

2021-11-28 10:43:02 342

原创 JavaSE,JavaEE,JavaME是什么?

JavaSE(Java Standard Edition)是Java技术的核心和基础,是JavaME和JavaEE编程的基础。用于开发和桌面部署、服务器以及嵌入设备和实施环境中的Java应用程序。JavaSE是由Sun Microsystems公司于1995年5推出的Java程序设计语言和java平台的总称。用Java实现的Hot Java浏览器显示了Java的魅力:跨平台、动态的Wab、Internet计算。从此。Java被广泛接受并推动了Web的迅速发展,常用浏览器均支持Java appletJav

2021-11-28 10:41:54 2318

原创 wait、notify、notifyAll常见的面试问题

问题一:用程序实现两个线程交替打印0~100的奇偶数基本思路:synchronizedpackage threadobjectclasscommonmethods;import jdk.nashorn.internal.ir.Block;//描述 两个线程交替打印0~100的奇偶数,用synchronized关键字实现public class WaitNotifyPrintOddEvenSyn { private static int count; private stat

2021-11-27 19:04:06 198

原创 避免死锁的方式

1、避免一个线程同时获取多个锁2、避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源3、尝试使用定时锁,使用lock.tryLock(timeout)来代替使用内部锁机制4、对于数据库锁,加锁和解锁必须在一个数据库连接里,否则会出现解锁失败的情况...

2021-11-27 18:42:05 936

原创 wait、notify、notifyAll常见的面试问题

用程序实现两个线程交替打印0~100的奇偶数package threadobjectclasscommonmethods;import jdk.nashorn.internal.ir.Block;//描述 两个线程交替打印0~100的奇偶数,用synchronized关键字实现public class WaitNotifyPrintOddEvenSyn { private static int count; private static Object lock = new Ob

2021-11-27 11:27:21 142

原创 为什么要使用生产者和消费者模式

在线程的世界中,生产者是生产数据,消费者是使用数据,不过它们生产和消费的速度不一定一致,如果有一个设计模式可以使它们生产和消费的速度一致,这种模式就是将生产者和消费者进行解耦,使生产和消费更加的顺畅。什么是生产者和消费者模式生产者和消费者会使用一个容器(storage),一般是阻塞队列,来解决它们的耦合问题当生产者或者是消费者成产过量或者取空,就会停止生产或消费当生产者生产时会通知消费者进行消费,当消费者没有数据消耗时会通知生产者进行生产模式代码//用wait

2021-11-26 22:12:19 1270

原创 证明wait只释放当前的那把锁

//描述:证明wait只释放当前的那把锁public class WaitNotifyReleaseOwnMonitor { //创建两把锁 private static volatile Object resourceA = new Object(); private static volatile Object resourceB = new Object(); public static void main(String[] args) { Thr...

2021-11-24 17:09:59 272

原创 线程的一生——6个状态(生命周期)

6个状态:1、New 2、Runnable 3、Blocked 4、Waiting 5、Timed Waiting 6、Terminated 打印出NEW、RUNNABLE、Terminated// 展示线程NEW、 RUNNABLE、Terminated状态。即使是正在运行,也是Runnable状态,而不是Runningpublic class NewRunnableTerminated implements Runnable{ public static voi...

2021-11-21 17:58:44 149

原创 面试常见问题——停止线程

问题一:如何停止线程思路: 原理:用interrupt来请求、好处是什么(比如他不会立刻停止线程,而是找一个合适的地方中断线程) 想停止线程,要请求方、被请求方、子方法被调用方相互配合 最后再说错误方法:stop/suspend已废弃,volatile的boolean无法处理长时间阻塞的情况(会导致无法唤醒,而无法停止线程) 问题二:无法响应中断时如何停止线程?答:根据不同的类调用不同的方法如果线程阻塞是由于调用了wait(),sleep()或者join()方法,你

2021-11-21 10:59:27 252

原创 JAVA异常体系

在Java程序设计语言中,异常对象都是派生于Throwable类的一个实例,所有的异常都是Throwable继承来的,后面又分为Error和Exception这两个类 Error类描述了Java运行时系统的内部错误和资源耗尽错误。应用程序不应该抛出这种类型对象。如果出现这种内部错误,除了通告给用户,并尽力使程序安全的终止外,再也无能为力。这种情况很少出现 我们更需要关注的是Exception层次结构,这个层次又分解为两个分支:一个分支派生于RuntimeException;另一个分...

2021-11-21 09:57:46 300

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除