自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

原创 Hadoop Shell 命令 与 WordCount

前言 在前2章内, 我们分别介绍了Hadoop安装的3种形式(Standalone mode/ Pseudo-Distributed mode/Cluster mode). 本章, 我们介绍如何使用HDFS命令进行一些基本的操作. 官方的操作文档可以查看Hadoop Shell命令. 正文 前置...

2019-03-30 17:34:51 151 0

原创 Spark Shell 的使用

前言 前一章中我们介绍了Spark的Standalone模式的安装. 本章我们介绍下Spark Shell操作窗口的基本的安装. 基本启动与使用 基本启动与使用 本地启动 进入./bin目录, 使用spark-shell即可启动. localhost:bin Sean$ spark-sh...

2019-03-30 15:32:56 3820 0

原创 Spark 安装 Standalone模式 (单机与集群)

前言 今天我们了解下Spark的安装. Spark的安装模式有很多模式, 主要包括 Spark Standalone、Running Spark on YARN、Running Spark on Kubernetes、Running Spark on Mesos. 其中YARN/Mesos/Kub...

2019-03-29 17:09:04 810 0

原创 Java 多线程面试题

前言 在看完《Java多线程编程核心技术》与《Java并发编程的艺术》之后,对于多线程的理解到了新的境界. 先拿如下的题目试试手把. 投行面试 Q1: 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行? 答案: 使用Thread....

2019-03-27 20:06:51 2096 2

原创 Java 多线程(总章)

前言 随着CPU核数的不断增多,多线程技术变得越来越重要.就个人感觉, 其也是分布式研究的基础. 在新时代内, 必然会从本机多线程协作向多机多进程协作进行发展.(最近比较火的Hadoop与Spark皆是如此). Java内的多线程技术来源已久, 从开始的Thread/Runnable结构、sync...

2019-03-27 10:54:07 100 0

原创 JUC包(六) Executor框架

前言 在上文中, 我们介绍了线程池的基本构造与使用原理. 本章, 我们将介绍下线程池的上一层的包装Executor. 正文 为了应对不同的场景, Java设计者设计出不同的线程池 ThreadPoolExecutor FixedThreadPool 固定大小线程池 SingleThread...

2019-03-27 01:46:44 71 0

原创 JUC包(五) 线程池

前言 在前面的篇章中.我们将解了线程/锁/多线程容器.本章我们将介绍一个用于管理线程的容器:线程池. 正文 线程池基本构造如下所示: 基本使用步骤如下: 步骤1: 核心线程池是否已满? 未满直接执行,满了放入等待队列BlockedQueue中. 步骤2: 等待队列是否已满? 未满放入其中, 满...

2019-03-27 01:29:09 78 0

原创 JUC包(四) 并发容器与框架

前言 在经过前几章的AQS与CAS等原理的轰炸之后. 本章, 我们将了解下JUC包内常见的并发容器.对于各种的并发容器, 我们会各取一个进行细说. Map类型容器(CurrentHashMap) Queue类型容器(ConcurrentLinkedQueue) 阻塞队列类型容器(BlockedL...

2019-03-27 00:37:58 117 0

原创 JUC包(三) 锁与锁实现(AQS)

前言 在原 JUC包 (一) 原子类 与 CAS操作中我们主要了解了什么是原子操作,以及原子操作的实现CAS(Compare ans Swap)操作. 本章,我们继续接着介绍使用CAS原理实现的锁操作. 锁在JUC包中使用非常广泛, 其取代了传统的synchronized关键字被广泛使用. 下文...

2019-03-26 20:24:29 151 0

原创 Hadoop安装(YARN 集群)

前言 在前面的章节中, 我们介绍了Hadoop 安装(单结点). 本章中,我们介绍下Hadoop的集群安装模式. 前置条件 三台VMware虚拟机, 分别为: 192.168.31.60 192.168.31.61 192.168.31.62 其主机名称分别为: sean60/sean61/...

2019-03-26 00:35:43 98 0

原创 Hadoop 安装(单结点)

前言 Hadoop的部署与安装是Hadoop研究过程中必定不可缺少的一环. Hadoop部署方式分三种,Standalone mode、Pseudo-Distributed mode、Cluster mode,其中前两种都是在单机部署。本章主要讲述如何在Standalone mode与Pseudo...

2019-03-25 11:15:20 79 0

原创 ZooKeeper 使用场景之 负载均衡

前言 上章,我们简单了解了下ZooKeeper内的成员变量及调度服务.本章主要讲解下ZooKeeper的负载均衡. 正文 假设我们有3台服务器用于负载.那么有一台Client,其该怎么链接哪台机器呢?当其链接的主机宕机后该链接哪台服务器呢?我们可以使用Nginx或KeepAlive或者心跳机制....

2019-03-23 22:46:45 264 0

原创 ZooKeeper 基本架构 与常见运用

前言 在前面的章节ZooKeeper 基本操作 与 Java APIs我们介绍了.ZooKeeper的基本使用.本章中,我们将讲解下ZooKeeper的基本架构与常见的运用. 基本架构 使用场景 基本架构 在讲述基本架构之前, 我们先问一个问题: 什么是ZooKeeper? ZooKeep...

2019-03-23 22:29:19 49 0

原创 ZooKeeper 基本操作 与 Java APIs

前言 在前章ZooKeeper安装(集群化)我们安装ZooKeeper集群. 本章, 我们讲解下ZooKeeper的基本操作. 命令行操作 我们通常使用zkCli.sh脚本进行登陆.登陆命令:./zkCli.sh --server 192.168.31.60:2181 其后,基本操作主要有如下几...

2019-03-23 21:58:47 174 0

原创 Java核心基础(总章)

前言 最近又看了一遍Java基础.顺便将之前博客内的内容都汇总一下. 正文 Java基础相关的博文主要包括如下内容: [1]. JAVA核心解析:JDK和JRE [2]. Java基础(二) 注释和基本数据类型 [3]. Java基础(三) Java变量、操作符及判断和循环语句 [4]. Jav...

2019-03-23 15:56:23 220 0

原创 ZooKeeper安装(集群化)

前言 重新安装了下ZooKeeper,仍然遇到了一些问题.将操作流程记录如下. 基本操作 前提条件: JDK. 基本机器: 192.168.31.60 192.168.31.61 192.168.31.62 对于ZooKeeper而言, Master与Follower结点是通过选举选举出...

2019-03-23 12:40:48 176 0

原创 Linux 集群脚本基础

前言 在最近安装虚拟机集群的时候,随意写了下虚拟机集群的脚本. 基础知识 分割字符串 shell 使用指定的分割符来分割字符串 #!/bin/bash string="hello,shell,haha" array=(${string//,/ }) for var...

2019-03-23 11:35:03 86 0

原创 VMware虚拟机 网桥模式详细配置(及计算机网络基本知识 IP/子网掩码/网关/DNS)

前言 在昨日配置虚拟机的时候,虚拟机内部无法访问百度等网站进行资源下载.查明看了很多资料之后,发现是因为网关配置错误了.(真是有点蛋疼.)于是将网桥模式的配置过程详细配置如下. 基本操作 点击编辑下的网络配置,恢复默认设置. 选择桥接模式,选择需要的网卡.(注意 无线网选无限网卡 / 有线...

2019-03-23 11:17:11 910 0

原创 Java 多线程技巧

总结 本章主要记录.Java多线程分析和使用过程中的一些技巧.后续的内容也会陆续补充在此处. 正文 如何Dump文件? 使用jstack -l <pid> >> filename. 例如: jstack -l 20866 > hello.log 参考 如何分析T...

2019-03-23 10:21:32 68 0

原创 HashMap 线程安全问题

前言 我们紧接着上节ArrayList 线程安全问题讲下HashMap的线程安全问题. 之前看书,书中经常会提及.HashTable是线程安全的,HashMap是线程非安全的.在多线程的情况下, HashMap会出现死循环的情况.此外,还会推荐使用新的JUC类 ConcurrentHashMap....

2019-03-21 21:55:33 3493 2

原创 ArrayList 线程安全问题

前言 在观看多线程书籍的时候,经常会看到大家提及ArrayList与HashMap时候.皆会说明, ArrayList与HashMap类型都不是线程安全的. 那么,在传统的集合包内的集合类到底为什么线程非安全呢?在新的JUC包类又有什么可以替代呢? 让我们开始今天的部分. 本章主要包括如下几个部分...

2019-03-21 17:33:39 6928 1

原创 JUC包 (二) CountDownLatch、CyclicBarrier、Semaphore 工具类

前言 在Java 多线程(三) 线程通信内我们介绍了可以使用join()方法来控制某个线程在一众线程后执行. 正这一节中,我们将介绍三种工具类,同样实现这一目标. 三种工具使用场景各部相同. 本章主要分为如下几个部分: CountDownLatch类 CycleBarrier类 Semaphor...

2019-03-20 02:28:21 188 0

原创 JUC包 (一) 原子类 与 CAS操作

前言 在前四个模块中,我们主要介绍了Thread类、synchronized与volatile关键字、线程通信、ReentrantLock锁. 本节我们将介绍Java中的原子操作. 本章主要包括如下几个部分: 原子更新基本类型 原子更新数组 原子更新引用类型 原子更新字段类 正文 原子更新基...

2019-03-20 01:48:14 193 0

原创 Java 多线程(四) 锁与锁机制

前言 在Java 多线程(二) Synchronized与Volatile关键字内我们介绍了synchronized关键字,以及与锁之间的关系.在本章中,我们将继续介绍这部分的内容 同时,我们可以解决在Java 多线程(三) 线程通信中提及的,无法唤醒某个特定线程的问题.(Condition类进行...

2019-03-20 00:59:17 846 0

原创 Java 多线程(三) 线程通信

前言 在前一章我们介绍了线程中较为重要的几个关键字synchronized与volatile.synchronized关键字主要是用于标示线程的同步关系与锁.volatile主要是用于将线程内的局部变量与进程总变量之间的交互关系. 本文我们将介绍下线程之间的相互通信.本章主要包括如下的几个部分的内...

2019-03-19 16:31:51 145 0

原创 Java 多线程(二) Synchronized与Volatile关键字

前言 在上章中,我们介绍了Java Thread API.本章我们介绍下Java中的Synchronized与Volatile关键字. 在本章中,我们将介绍如下的几个模块: Synchronized关键字 线程安全问题 synchronized 关键字的使用 对象锁与类锁 Synchroniz...

2019-03-19 01:46:03 294 0

原创 [Java基础] 如何保留两位小数

前言 前段时间在处理float类型的数据的时候,发现在float/double类型的数据输出时,总会遇到这样的问题. 例如: 1.000000000005. 问题: 1. 位数过多,看起来比较难受; 2. 最后的尾数有偏移. 解决办法: 将尾数四舍五入;将位数进行截断. 正文 如何保留2位小数...

2019-03-18 11:38:03 2653 0

原创 Java 多线程(一) Thread API 基础

前言 Java自开发之初就具有多线程多特性,其于JDK1.5又增添了java.util.concurrent内增添了非常多的多线程组件.于本章之中,我们优先总结下在Java初期,我们经常使用的Java API. 其中,虽然stop()等方法已经废弃,我们仍然将其提出,并且提出其优/缺点. Java...

2019-03-18 01:37:15 172 0

原创 局域网内的服务器搭建(VMware)

前言 在实践大数据过程中,苦于没有集群的环境,今天准备仔细搞一搞.本章主要记录下本次操作的具体步骤. 安装VMware Workstation 安装虚拟机 配置虚拟机网络和网络类型 安装VMware Workstation 在Windows操作系统上安装.虚拟机操作系统. 下载地址: htt...

2019-03-17 23:22:48 503 0

原创 Maven 总章

前言 Maven是一个用于包管理、发布部署的一个工具. 相同的类型的工具还有Ant,Gradle. 本教程内所涉及的资源都可以在此项目内找到:https://github.com/SeanYanxml/maven-train PS: 记得我解除的第一个任务就是打包,曾经对于发现Jar In Jar...

2019-03-13 19:36:54 67 0

原创 Maven 打包实战

前言 上一章,我们介绍了Maven内的常见插件.Maven的主要作用是用于包的管理和依赖.其次,根据Maven的生命周期可以知道, 它还可以作为一个运维和打包、部署的工具而存在. 本章我们将详细的介绍Maven打包以及打包的各种情况. PS: 本文所用的Maven例子可以在我的Github仓库内找...

2019-03-13 19:14:04 919 0

原创 Maven 常见插件

前言 上章我们了解了Maven的基础命令和生命周期. 本章我们详细的聊聊插件,为后面的打包做基础. 插件 所有的插件配置都是写在pom.xml文件的&lt;build&gt;目录之间的.我们常见的Maven插件如下所示: maven-compiler-pluginJDK版本和编...

2019-03-13 13:47:13 51 0

原创 Maven 基础命令与生命周期

前言 前面几章,我们介绍了Maven的安装和使用方法.本章开始,我们介绍下,如何使用Maven来完成我们需要的打包操作. 基本命令 本章我们继续使用maven-train-parent-util项目进行演示.Maven基本的操作命令主要有: mvn clean 清除依赖的Jar包,重新装载 mv...

2019-03-12 20:47:38 86 0

原创 Maven的聚合和依赖

前言 前几章我们介绍了Maven的基本安装和使用.本章我们将介绍下Maven的聚合和依赖. 在一个复杂的项目内,我们经常会遇到聚合和依赖问题.(PS: 我们上章所说的Jar包的引用其实就是依赖的一种.) PS: 本文所用的Maven例子可以在我的Github仓库内找到 https://github...

2019-03-12 20:12:29 88 0

原创 Maven 基本使用与远端仓库配置

前言 在前章介绍如何[安装Maven](Maven 安装和配置)后,本章继续介绍如何高效的使用Maven帮助我们进行开发. 于Maven真正使用之前,我们通常需要安装一些Maven的插件,帮助我们快速使用和开发.Eclipse Maven开发工具的导入请看Eclipse Maven插件&a...

2019-03-12 18:32:20 228 0

原创 Maven 安装和配置

前言 想必都有体会过管理Jar包的痛苦,和包版本不一,版本冲突的痛苦.为此,Java开发者创建了Maven用于管理开发过程中的Jar包依赖和使用.本章主要介绍Maven的安装和配置. Brew安装 Mac用户可以使用brew install maven进行安装. 手动安装 下载相关Ja...

2019-03-12 17:48:11 210 0

原创 Eclipse Maven插件&Tomcat插件

前言 有段时间没有使用Eclipse创建Server程序在Tomcat内运行了.由于Spring Boot的普及,已经好久没有手动的将程序部署在Tomcat内进行运行了. 由此,借此机会将插件的安装和使用做法一一记录如下,防止忘记. 本章节主要包含如下几个内容: Eclipse内Maven插件的...

2019-03-12 16:11:36 322 0

原创 git log 数据统计 与 git blame 代码作者查询

前言 之前,有次比较好奇某段代码由谁编写的,以及每个人的代码编写量. 于是查了下,发现git blame命令和git log命令. 需要注意的是 git log统计有可能由误差(比如空行,或者其他非代码文件也会当作统计) 代码量和个人的贡献不成正比, 正比如代码提交次数不能直接反应一个人的编写...

2019-03-11 21:14:20 757 0

原创 [实战算法] 算法练习题汇总(总章)

前言 说来惭愧,工作2年多,对于算法方面是一点都没有进步。反而有点退步。本章意在重启当初的算法练习题. 看样子, 当初欠下的技术债还是要还. 练习地址: https://www.nowcoder.com/activity/oj 项目地址: https://github.com/SeanYanxml...

2019-03-05 14:59:54 245 0

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