自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 资源 (4)
  • 收藏
  • 关注

原创 如何从0开始学习大数据技术

如何从0开始学习大数据技术呢?本文就本人的经历给大家介绍一下如何开始学习大数据技术,如果你已经开始用自己的方法学习大数据技术,不妨也参考一下本文的方法,如果你是大牛,那可以忽略本文下面的内容了。1.硬件准备要想学习大数据技术,硬件是必不可少的,需要一台至少8GB内存的电脑,有条件的家里如果有多台电脑,且自己比较爱折腾的话就更好了。内存从1块钱1MB的时候,到现在1块钱20MB,依然是电脑最缺少...

2019-02-26 21:52:46 557

原创 深入浅出JVM之字节码执行

1.javap反汇编工具javap是jdk自带的反汇编工具,可以通过该命令查看编译后的class文件的常量池、字段以及方法等信息。对于下面的这个类:public class CalcCirc { public int doCalc() { int a=10; int b=20; int c=2; return (a+b)*c; }}使用javap -v CalcCi...

2020-04-13 08:28:56 445

原创 深入浅出JVM之Class文件结构

一、语言无关性jvm并不是只支持java语言,其他的语言如groovy,scala,ruby等,只要能够生产class文件,都可以在jvm上运行。最新版本的jvm上甚至还增加了一些新的指令,这些指令在java语言中无法使用,而在动态语言如groovy中才能使用。所以class文件才是jvm运行的基石。二、文件结构用二进制文件打开工具Notepad++或Winhex打开一个class文件,可以...

2020-04-09 14:49:17 236

原创 深入浅出JVM之锁及优化方法

一、线程安全当多个线程同时修改一个变量时会有线程安全问题,如果要保证这个变量时全局唯一进行修改,就需要给这个变量加锁,加锁后能够保证该变量的修改是串行进行的,因此该变量时线程安全的。但是需要牺牲一定的性能。比如ArrayList,该对象不是线程安全的,当线程A对该对象增加数据的时候,线程B也可以对该对象增加数据,当线程A的数组存储空间不足时会自动申请扩展空间,此时数据是不可用状态,而此时线程B...

2020-04-07 09:28:05 184

原创 深入浅出JVM之Java堆分析

一、内存溢出(OOM)的原因jvm中可能引起内存溢出的内存区域有堆、永久区、线程栈和直接内存。其中堆保存了所有的对象的内容,永久区保存对象的信息。这四个区域的内存空间得不到满足都有可能导致内存溢出。堆溢出由于对象不断的占用分配的空间,而这些对象的引用也没有及时的释放,堆的空间不断被占用,最终导致内存溢出。解决办法是增大堆空间,及时释放内存(减少对象被引用的时间)永久区由于系统中类的数量太...

2020-04-02 08:07:09 155

原创 深入浅出JVM之类装载器

class装载验证流程1.加载:这装载类的第一个阶段,取得类的二进制流,有三种方式,一个是直接从本地class文件获取,一个是从jar包中获取,一个是通过远程调用从网络获取类的二进制流。将类的内容(常量、字段和方法信息)转换为方法区的数据结构,然后在Java堆中生产对应的java.lang.Class对象。2.链接2.1验证:​ 保证Class二进制流的格式是否正确。​...

2020-04-01 11:34:34 97

原创 深入浅出JVM之GC参数

一、堆的结构edens0s1tenured一个对象被创建后一般是会放在eden区的,但也有例外,比如局部变量会在栈上分配,超过一定阈值的大对象会直接放在老年代。s0和s1是幸存代,使用复制算法来复制对象,所以s0和s1的内存大小是一样的。当对象经过多次垃圾回收还存在的话就会被标记为老年对象,会将该对象放入到老年代(tenured)中。二、串行收集器最古老,...

2020-04-01 11:33:15 121

原创 深入浅出JVM之GC算法与种类

1.GC的概念Garbage Collection垃圾收集,在C或C++语言中,内存空间由程序员来释放,但是Java语言中程序员不会单独操作内存空间,所以内存释放需要由JVM来实现。在Java中,GC对象是堆空间和永久区。2.引用计数法老牌垃圾回收算法,通过计算对象的引用计数来标记对象是否是垃圾。该算法会为每个对象记录一下引用的次数,如果有一次引用就记录为1,如果有三次引用就标记为3,如果用...

2020-04-01 11:31:55 104

原创 深入浅出JVM之性能监控工具

一、系统性能监控linux操作系统中有很多命令可以查看应用程序的性能情况,下面介绍一下这些常用的命令:uptime:可以查看的信息有系统时间,运行时间,连接数-其中每一个终端算一个连接,1,5,15分钟内的系统平均负载,也就是运行队列中的平均进程数。这是一个操作系统级的命令,可以查看当前操作系统的整体的状况如何。top:常用的系统性能监控命令,可显示当前进程的cpu利用率和内存使用率,找到...

2020-04-01 11:27:59 175

原创 深入浅出JVM之常用jvm配置参数

1.Trace跟踪参数-verbose:gc 打开GC功能-XX:+printGC 打开GC日志在控制台显示-XX:+PrintGCTimeStamps 打印GC发生的时间戳-XX:+PrintGCDetails 打开GC详细信息,在程序调用结束后会打印出详细的堆内存信息,下面是在64位jdk1.7版本下使用参数:-Xmx10m -Xms10m -XX:+PrintGCDetails -X...

2020-03-31 11:58:23 172

原创 深入浅出JVM之JVM运行机制

一、JVM启动流程启动jvm首先在命令窗口输入java命令,该命令会根据当前路径和系统版本寻找jvm.cfg(该配置文件一般在JAVA_HOME/jre/lib/amd64文件夹下),来加载jvm的配置文件,根据这个配置文件寻找jvm.dll(JAVA_HOME\jre\bin\server),jvm.dll是jvm的主要实现。然后初始化JVM获得JNIEnv接口,java中通过findClas...

2020-03-31 11:56:46 175

原创 深入浅出JVM之JVM入门知识

一、Java语言规范:1.java语法java的语法比较简单,对于分支语句的结构如下:if then Statement:if(Expression) Statement对应的代码如下:if(true){do sth;}ArgumentList:在定义一个方法时可能需要指定方法的参数,这个参数个数可以是固定的,也可以是不固定的。jdk1.7之后支持多个参数2.词法结构:在源代...

2020-03-31 11:54:20 167

原创 HDFS架构

1.来源HDFS来源于Google在2003年10月份发表的FGS论文:《The Google File System》,HDFS是GFS克隆版。HDFS的全称是Hadoop Distributed File System。它是易于扩展的分布式文件,运行在大量的普通廉价机器上,提供了很好的容错机制。能够为大量用户提供新能不错的文件存取服务。2.结构介绍HDFS上的文件是以块来进行存储的...

2019-08-15 22:03:30 264

原创 Hive高阶之显示数据库名称和字段名

在hive中默认是不显示数据库的名称和数据表的字段名称的,这样我们在hive进行查询的时候就会发现不是很方便。默认hive的客户端执行方式如下:[root@node3 ~]# sudo -u hive hiveLogging initialized using configuration in jar:file:/opt/cloudera/parcels/CDH-5.15.2-1.cdh5.1...

2019-03-13 22:42:01 843

原创 Hive高阶之数据压缩详解

一般在hadoop集群上运行一个MapReduce会有以下步骤:input-> Map-> shuffle -> reduce -> output如果我们采用了数据压缩,在map阶段产生的数据大小就会减少,会减少磁盘的IO,同时还能够减少网络的IO。Linux操作系统中常见的压缩格式是bzip2、gzip、lzo、snappy这四种,这四种压缩方法的比较如下:压...

2019-03-12 21:55:07 189

原创 Hive高阶之数据压缩

Hive的压缩依赖于MapReduce的支持,也就是安装的hadoop组件,如果不支持的话就需要自行编译。常用的压缩方法是snappy压缩,而这种压缩方法依赖于操作系统的snappy组件,所以hadoop组件一般不默认编译,如果要支持的话就需要重新进行编译。好在CDH版本已经支持压缩方法了,不需要重新进行编译。我们可以通过hadoop命令查看当前的hadoop集群是否支持snappy压缩。[ro...

2019-03-08 21:48:25 245

原创 Hive高阶之Beeline与JDBC

从这篇笔记开始我们开始进入Hive的高级部分,这其中包括HiveServer2、Hive数据压缩、hive数据存储、hive企业优化等。首先看一下HiveServer2,该工作作为Hive的一个server端进行启动,供其他的工具使用。之前的hive基础知识部分的笔记都是以hive client为基础的,如果想用其他的工具比如jdbc、spark sql来使用hive就需要启动HiveServe...

2019-03-04 23:34:40 2028

原创 Hive基础之UDF编程

UDF指用户定义函数,即在hive中进行客户化的函数,hive中自定义了很多function,我们使用show function命令可以很容易查看已有函数的用法:hive (default)> desc function split;OKtab_namesplit(str, regex) - Splits str around occurances that match regex...

2019-03-01 21:38:07 422

原创 Hive基础之排序查询

hive中排序查询的语法见:LanguageManual SortBy,排序中包括ORDER BY, SORT BY, CLUSTER BY, and DISTRIBUTE BY四种方法。1.order byorder by是与关系型数据库的用法是一样的,还以员工表emp为例,按照员工编号降序进行排列的查询语句如下:select * from emp order by empno desc;...

2019-03-01 21:37:07 309

原创 Hive基础之导入导出

hive中导入导出的语法见:LanguageManual ImportExport,导入导出是在hive0.8.0版本之后才有的功能。1.export导出,将hive表中的数据导出到外部,导出的语法如下:EXPORT TABLE tablename [PARTITION (part_column=``"value"``[, ...])] ``TO ``'export_target_pat...

2019-03-01 21:36:12 182

原创 Hive基础之高阶查询

hive中查询语句的语法都在Select Syntax,所有查询相关的语法都在该手册中,本文主要介绍一些高阶的查询语句的用法。1.分组查询需求1,每个部门的平均工资是多少,在这里我们使用avg函数来求平均值,使用group by来进行分组。select t.deptno, avg(t.sal) avg_sal from emp t group by t.deptno ;hive (de...

2019-03-01 21:35:22 430

原创 Hive基础之基础查询

hive中查询语句的语法都在Select Syntax,所有查询相关的语法都在该手册中,包括where、partition以及正则表达式查询,所有与查询相关的语法都在该手册中。全表查询emp表前5条的数据:hive (default)> select * from emp limit 5 ;OKempno ename job mgr hiredate ...

2019-03-01 21:33:40 5925

原创 Hive基础之导出数据

我们在hive中分析完数据后有时候需要将结果导出到本地文件以供其他用途。hive中提供了几种方式来导出结果,下面就详细介绍一些这几种导出数据的方法。1.导出到本地文件目录hive (default)> insert overwrite local directory '/opt/datas/hive_exp_emp' > select * from de...

2019-03-01 21:32:36 559

原创 Hive基础之导入数据

在hive中创建表之后需要将数据加载或者导入到表中,然后在hive中才能够用查询语句进行分析,本文就来整理一下hive加载数据的方法。加载数据到表中的语法参考Loading files into tables,我们摘抄如下:LOAD DATA [LOCAL] INPATH ``'filepath' [OVERWRITE] INTO TABLE tablename [PARTITION (par...

2019-03-01 21:31:39 328

原创 Hive基础之分区表

我们在做数据挖掘和分析的时候有时候只是针对某一段时间或者某一个月的数据,而我们在创建表的时候是将所有时间的数据都放在一起,这样就会导致我们在进行分析的时候会分析所有的数据,如果数据量很大的时候效率就会很慢,这时候Hive就提供一种特性叫分区表,可以针对一个月的数据进行查询和分析。原来可能要分析100G的数据文件,经过分区后可能只需要分析10G的文件,这样可以大大提升数据分析的效率。下面我们就来详细...

2019-02-26 21:41:08 321

原创 Hive基础之管理表和外部表

在hive创建表的语法中有一个关键字是EXTERNAL,该关键字表示表的类型,在hive中一共有两种类型的表:管理表和托管表(外部表)。如果没有加EXTERNAL关键字,则创建表都是管理表。1.管理表信息如何查看一张表是管理表还是托管表呢?可以使用desc命令:hive (default)> desc formatted dept;OKcol_name data_ty...

2019-02-26 21:39:14 676

原创 Hive基础之表操作

使用过Oracle数据库的童鞋都知道Oracle里面有两张经典的表员工(emp)和部门(dept),本文就以这两张表为基础,介绍一些Hive中表的一些基表操作。1.创建表根据emp和dept的字段类型,将其转换为Hive中的对应的数据类型,我们可以得到这两张表的建表语句:–员工表create table IF NOT EXISTS default.emp(empno int,ename...

2019-02-26 21:37:29 275

原创 Hive基础之数据类型

hive创建表的语法参考如下网址:Create/Drop/Truncate Table1.数据类型在创建表的时候我们在新建列的时候会需要指定数据类型,一般在数据文件中我们可以将所有的数据都指定为string即字符串类型,然后再用函数转换为其他的数据类型,比如日期、数值等。CREATE TABLE [IF NOT EXISTS] [db_name.]table_name ``[(...

2019-02-26 21:33:10 333

原创 Hive基础之创建表

hive创建表的语法参考如下网址:Create/Drop/Truncate Table1.创建基础表在这个网页里详细记录了创建表的每个语法,下面就一一来看这些创建表的语法内容:CREATE TABLE [IF NOT EXISTS] [db_name.]table_name ``[(col_name data_type [COMMENT col_comment], ... [c...

2019-02-26 21:31:40 468

原创 Linux下创建本地yum源

在安装CM的时候需要联网进行下载安装文件,如果我们能够搭建本地的yum源就可以不用联网下载rpm包,也不用往其他节点上手工安装rpm文件,会比较省事,本文主要介绍在Centos7下安装yum源。1.安装软件操作系统版本:CentOS 7.4检查是否安装了createrepo:[root@node2 ~]# rpm -qa|grep createrepocreaterepo-0....

2019-02-18 22:58:00 548

原创 在VMware上安装CentOS7教程(二)

前面已经将虚拟机的配置选择好,下面就开始安装。1.启动虚拟机首先给虚拟机选择安装镜像:选择本地硬盘上的安装ISO镜像,然后点击【开启此虚拟机】按钮,将虚拟机启动,虚拟机会自动加载光盘镜像,在虚拟机中选择continue按钮,进入CentOS的安装界面,这里的配置都是选择默认的,有两个地方需要说明的,一个是Software Selection,这里选择要安装的软件列表,默认是mini...

2019-02-18 22:56:45 394

原创 在VMware上安装CentOS7教程(一)

CentOS是linux家族中的一员,由于其实免费开源的一个操作系统,相对于收费的RedHad Enterprise来说,企业越来越倾向于使用CentOS来作为服务器的操作系统,本教程是使用VMware虚拟机来安装CentOS 7操作系统,装好后可以供其他实验使用,比如装hadoop机器,学习docker、k8s的安装等。1.安装前的准备工作首先要下载安装介质:CentOS-7-x86...

2019-02-18 22:54:57 258

原创 Hive基础之创建数据库

hive创建数据库的语法参考如下网址:Create/Drop/Alter/Use Database1.创建数据库企业应用中标准的创建数据库的语法如下:create database if not exists db_hive;这句话的意思是如果不存在数据库db_hive则创建该数据库,如果不加入if not exists,那么在创建数据库的时候如果存在db_hive,则会抛出异常。加上这...

2019-02-18 21:34:10 9695

原创 Cloudera Manager 5.15.2离线安装笔记(三)

接上一步:Cloudera Manager 5.15.2离线安装笔记(二),现在已经将agent安装完毕,下面可以复制安装文件到集群的结点上并进行安装。1.复制安装文件 这一步将安装文件复制到所有的结点上,这一步取决于内网的网速和机器的性能,一般会比较快。2.选择安装的组件安装文件复制完毕后会进入结点检查页面,可以跳过这一步,直接进入安装组件的选择界面。在这个界面可以选择想...

2019-02-14 20:14:46 602

原创 Cloudera Manager 5.15.2离线安装笔记(二)

本文接上一篇文章:Cloudera Manager 5.15.2离线安装笔记(一),已经将CM的Server端正确安装并重新启动,下面可以开始从网页端来安装集群1.登录系统输入网址http://192.168.246.160:7180默认用户名和密码都是admin。 2.选择安装版本 Clouder Manager分为免费版和企业版,企业版收费,我们只需要选择免费版...

2019-02-14 20:11:55 444

原创 Cloudera Manager 5.15.2离线安装笔记(一)

Cloudera Manager 5.15.2离线安装笔记(一)工欲善其事必先利其器,想要学好一门技术首先得有趁手的工具,要想学好大数据技术,还是得有比较好的工具才行。本笔记记录的是安装Cloudera Manager的过程。CDH的全称是Cloudera’s Distribution Including Apache Hadoop,是hadoop众多发行版本中的一种,是由Cloudera维护...

2019-02-14 19:54:11 1102

原创 linux上拷贝但不覆盖相同文件名的文件

在做ERP克隆的时候需要做一些文件拷贝,但不希望将相同文件名的文件覆盖,因为很多是配置文件,覆盖后配置还需要改,所以需要拷贝但不覆盖的命令,也就是只拷贝新的文件,对旧文件不做处理。今天看了一下linux的cp命令说明,最后被我找到了,用法如下:cp -R --reply=yes source/* test/ 使用这个命令可以把源文件夹的内容拷贝到目标文件夹,并且不覆盖原有的文件。...

2011-05-30 16:21:43 1976

原创 XFire兼容Spring2.0的问题

XFire默认使用的spring-1.2.6,如果使用spring-2.0就会出现如下错误:Unrecognized xbean element mapping: beans in namespace http://xfire.codehaus.org/config/1.0此时我们需要修改一下services.xml文件如下: http://xfire.codehaus.org/con

2008-06-07 13:37:00 816 1

原创 OC4J部署XFire所需的jar包

在OC4J中部署一个简单的HelloWorld例子所需的Jar包有: commons-logging-1.0.4.jarjdom-1.0.jarspring-1.2.6.jarwsdl4j-1.6.1.jarxbean-spring-2.8.jarxfire-all-1.2.6.jar

2008-06-07 13:08:00 362

HeadFirst PMP 2nd Edition

深入浅出系列的的PMP相关的书籍,对于想考PMP或者想学项目管理的人员来说是很好的入门教材。

2019-03-01

概率论与数理统计

本书是学习概率论与数理统计的经典教材,概率论是机器学习与人工智能的基础,学习人工智能的话需要打好概率论的基础。

2019-03-01

Analysis of Financial Time Series

时间序列好书,量化交易和数据分析,数据挖掘经典教材,包含书中的代码和勘误。

2019-02-28

空空如也

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

TA关注的人

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