手把手教你安装Hadoop集群
手把手教你安装Hadoop集群一、虚拟机安装与配置 注意,本文不适合小白操作,查看至少需要一点儿linux操作基础,因为其中有很多命令并没有写出来。比如使用vi修改文件后,需要使用:wq来保存并退出。 安装Hadoop集群时需要多个服务器,所以需要安装多个虚拟机,请自行安装。 配置服务器的hosts文件,就是将多个服务器之间建立域名配置(这样就可以使用域名来代替ip使用)。 1vi /etc/hosts 最后添加如下内容(左边为每个服务器的ip,右边为主机名) 123192.168.83.3 hadoop01192.168.83.4 hadoop02192.168.83.5 hadoop03 服务器ssh免密登录功能配置 服务器要开启ssh服务,一般的虚拟机都会自带的,如果没有,请自行安装 1ssh-keygen -t rsa 输入上述命令后,不用输入任何东西,边按4次Enter键确认,会在root目录下生成一个包含有密钥文件的.ssh隐藏文件夹,进入目录可以看到有两个文件id_rsa.pub(公钥)和id_rsa。 12cd /root/.sshll -a ...
在SpringBoot中使用AOP切面编程
在SpringBoot中使用AOP切面编程如果有对SpringAOP不太懂的小伙伴可以查看我之前的Spring学习系列博客SpringBoot的出现,大大地降低了开发者使用Spring的门槛,我们不再需要去做更多的配置,而是关注于我们的业务代码本身,在SpringBoot中使用AOP有两种方式: 一、使用原生的SpringAOP(不是很推荐,但这是最基本的应用) 基原理就是之前写的SpringAOP在web应用中的使用的第三种方式,使用@AspectJ样式注解方式 第1步,引入Aspect的相关依赖1234567891011<dependency> <groupId>org.aspectj</groupId> <artifactId>aspectjrt</artifactId> <version>1.9.1</version> </dependency><!--织入器--> <...
SpringCloud学习之—Eureka集群搭建
SpringCloud学习之—Eureka集群搭建Eureka集群的搭建上次说过了在SpringCloud应用中使用Eureka注册中心,用来对服务提供者进行服务注册与发现,但同时,它也是一个“微服务”,单个应用使用空间有限,因此和zookeeper一样,它也需要搭建集群(Cluster)。 搭建Eureka集群的原理就是创建多个eureka应用(端口不同),然后将所有的注册中心的地址联合到一起。下边就以创建三个集群为例 一、将之前的创建的eureka项目复制三份 复制三份是为了不破坏原来的项目,让小伙伴们更好地学习 先创建三个子Module,然后复制pom.xml中信依赖,复制application.yml,然后各自创建启动类 1234<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-eureka-server</artifactId></dependency> ...
在SpringCloud中使用Feign进行服务访问
在SpringCloud中使用Feign进行服务访问之前已经说过了SpringCloud作为“分布式微服务”的解决方案时的大概原理和方法了。就是一个个web应用之间的访问,之前的访问方式有两种: 使用RestTemplate这个封装好的类,使用ip+端口+服务地址进行访问,这是最简单的访问方式了 12345@GetMapping("demo1/consumer/hello/{id}")public String hello(@PathVariable("id") String id){ //远程调用provider中的接口 return restTemplate.getForObject("http://localhost:8001/demo1/provider/hello/"+id,String.class);} 使用Ribbon进行访问负载均衡,也就是将“提供者”注册到注册中心,然后“消费者”使用微服务名进行访问 12345@GetMapping(...
重申一遍,在Java中只有值传递,没有引用传递
重申一遍,在Java中只有值传递,没有引用传递一、基本概念:值传递和引用传递是指在方法调用中,由调用者传递过来的参数是一个具体的值还是一个地址引用。我发现小伙伴认为Java中存在引用传递的最大原因就是对上边概念中的这个“地址”有误解,它指的是栈中变量的引用,并不是指堆中对象的地址。 值传递:顾名思义,就是由调用方法的地方将实际的值传到方法中。也就是说,我将我的值给你了,你想怎么改就怎么改,但是你的任何改变都不会影响我自身。 引用传递: 引用传递是一种特殊的变量,它被认为是一个变量的别名。当定义一个引用时,其实是为目标变量起一个别名,引用并不分配独立的内存空间,它与目标变量公用其内存空间,当定义一个引用时,如果该引用不是用作函数的参数或者返回值,则必须提供该引用的初始值(即必须提供引用的目标变量名)。 二、在Java中怎么只有值传递的?在Java中的8大基本数据类型和String中,这个值传递很容易理解,看如下代码: 12345678910public static void main(String[] args) { int a = 1...
数据结构之递归案例一
数据结构之递归案例一什么是递归?顾名思义,所谓递归就是一个函数(或方法)自己调用自己,最简的如下: 123public void text() { text();} 就是这么简单,但是一定要给这个递归函数一个出口,不然就会无限循环下去,最后的结果就是OutOfMemory(内存溢出),如果是在main函数中调用的话,就会出现栈空间已满的错误。 如何给一个递归的方法写一个出口呢?只要在递归的过程中,有一个方法有一条return 语句,也就是有一个递归方法不再进行递归就会退出了。我们给上方法添加一个返回的条件; 1234567891011private int count = 0;/** 每次让count累加,当它等于4时,就返回,这样就能这个递归函数了*/public void text() { if (count == 4) { return; } count ; text();} 递归有什么用?1.最著名的就是裴波那契数列有如下问题:假设第一个月有一...
SpringCloud之eureka注册中心入门
SpringCloud之eureka注册中心入门eureka注册中心一、基本概念SpringCloud封装 了Netflix公司的eureka作为自己微服务的注册中心。这个注册中心和dubbo中的zookeeper很相似,简单来说,只要你可以将你的”微服务“模块注册到注册中心,就可以供其他服务调用,一般来说,只有provider会注册到eureka,consumer也可以注册,但是并不建议这么做。 eureka的架构图如下: 二、在SpringCloud项目中使用eureka 要想使用SpringCloud的子模块,一般分为两步: 引入相关的maven依赖 然后在配置类上加上@EnableXXX注解 1. 创建一个新的Maven的Module项目,用来开启eureka 为了让小伙伴们更好地学习,我将上一次的项目复制了一份(见Github项目代码) pom.xml中添加依赖 12345<dependency> <groupId>org.springframework.cloud</groupId> <!--这个是...
Lambda入门,看这一篇幅就够了
Lambda入门,看这一篇幅就够了一、引入一个例子我们写一个多线程的例子,如下:采用实现Runable接口的方式 123456789101112131415161718192021222324252627package cn.lyn4ever.lambda;public class TestMain1 { public static void main(String[] args) { //线程1 MyThread myThread1 = new MyThread(); Thread t1 = new Thread(myThread1); t1.start(); //线程2 MyThread myThread2 = new MyThread(); Thread t2 = new Thread(myThread2); t2.start(); }}/** * 我们先写一个类来实现Runable接口,为了方便直接写进了这个类...
打开UML类图的正确姿势
打开UML类图的正确姿势UML(Unified Modeling Language) 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。UML是在开发阶段,说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。最佳的应用是工程实践,对大规模,复杂系统进行建模方面,特别是在软件架构层次,已经被验证有效。统一建模语言(UML)是一种模型化语言。模型大多以图表的方式表现出来。一份典型的建模图表通常包含几个块或框,连接线和作为模型附加信息之用的文本。这些虽简单却非常重要,在UML规则中相互联系和扩展。以上内容来自百度百科。 推荐一个绘图和学习的在线工具ProcessOn UML类图,属于UML图中的一种,是在面向对象语言用中用来表示一个类的图形,基本的UML类图如下所示: 类简单表示:如上图,就表示一个类,三个格子从上至下分别表示:* 类名(如果是接口,就使用斜体表示)* 类的特性(一般是类的字段和属性,可没有这一行)* 类的操作(一般是类的方法或行为) 它们前边的符号有以下几类:“+”表示pu...
SpringBoot项目全局异常处理与自定义404页面
SpringBoot项目全局异常处理与自定义404页面一、错误处理原理分析使用SpringBoot创建的web项目中,当我们请求的页面不存在(http状态码为404),或者器发生异常(http状态码一般为500)时,SpringBoot就会给我们返回错误信息。 也就是说,在SpringBoot的web项目中,会自动创建一个/error的错误接口,来返回错误信息。但是针对不同的访问方式,会有以下两种不同的返回信息。这主要取决于你访问时的http头部信息的Accept这个值来指定你可以接收的类型有哪些 使用浏览器访问时的头信息及其返回结果 1Accept: text/html 使用其他设备,如手机客户端等访问时头部信息及其返回结果(一般是在前后端分离的架构中) 1Accept: */* 二、进行错误处理处理异常主要有两种方式: 1. 使用SpringBoot的自动配置原理进行异常处理SpringBoot自动配置了一个类ErrorMvcAutoConfiguration来处理处理异常,有兴趣的可以去看一下,然后在这个类中定义一个错误的BasicErrorCon...


