自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 KAFKA笔记 - 部署

基于Scala 2.11\kafka版本:0.10.0.1 下载地址: Zookeeper: http://mirror.bit.edu.cn/apache/zookeeper/current/ Scala: http://www.scala-lang.org/download/2.11.8.html Kafka: http://kafka.apache.org/downloads1、Zookee...

2018-05-20 11:49:12 244

原创 Spark-SQL学习笔记(1) - Datasets and DataFrames

概述    Spark SQL是Spark中的一个模块,负责结构化数据的处理。它跟Spark RDD API不一样,Spark SQL提供的接口会提供更多关于数据和执行计算的信息。在内部,Spark SQL使用这些额外的信息去执行额外的优化。可以通过SQL 和 Dataset API与Spark SQL进行交互。当使用同一个执行引擎得到的计算结果,它是不会依赖于使用的API/编程语言。这意味着开发...

2018-05-07 22:03:08 288

原创 spark - Serialization

    序列化在分布式应用的性能中扮演着重要的角色。格式化对象缓慢,或者消耗大量的字节格式化,会大大降低计算性能。通常这是在spark应用中第一件需要优化的事情。Spark的目标是在便利与性能中取得平衡,所以提供2种序列化的选择。Java serialization    在默认情况下,Spark会使用Java的ObjectOutputStream框架对对象进行序列化,并且可以与任何实现java....

2018-04-30 12:24:57 335

原创 spark-shuffle

shuffle 操作Spark中的某些算子会触发一个名为shuffle的时间。Shuffle是spark一种重新分配数据的机制,便于不同分区之间进行分组。Shuffle都会涉及数据的序列化、磁盘IO 和 网络IO,使得Shuffle成为一种复杂而昂贵的操作。背景为理解Shuffle过程中发生什么,举个reduceByKey的例子。reduceByKey操作生产一个新的RDD,组

2018-04-16 23:00:26 303

原创 spark - RDD 持久化

    spark作业中,对RDD进行action操作时,会根据血缘关系从头计算。如果RDD被计算多次,建议将RDD进行持久化,确保该RDD本身只被计算一次。scala> val res = sc.textFile("file:/opt/data/emp.txt").flatMap(_.split("\t")).map((_,1)).reduceByKey(_+_)res: org.apa...

2018-04-14 21:58:15 202

原创 spark - HistoryServer

spark会提供一个web ui,使用者可以通过此ui对查看作业的相关信息,例如:stages 和 tasks的调度、RDD使用内存情况、环境变量 以及 executors的运行信息。但是当作业执行完就没办法在查看相关的信息。但我们我可以通过Spark’s history server查看这些以及执行完毕的作业信息。1、如何开启?1.1、修改 spark-defaults.co

2018-04-08 21:12:04 213

原创 sparkSQL 访问mysql数据

1、如果使用spark-shell 操作,需要修改spark-defaults.conf 配置spark.executor.extraClassPath=/opt/software/hive/lib/mysql-connector-java-5.1.45-bin.jarspark.driver.extraClassPath=/opt/software/hive/lib/mysql-connecto...

2018-04-04 22:45:42 431

原创 spark集群模式部署

参考网址:http://spark.apache.org/docs/latest/cluster-overview.html在2.3版本中,spark支持以下集群管理    Standalone – 简单易用的集群管理模式。    Hadoop YARN – 应该是目前spark最常用的集群模式了,yarn是hadoop2中的资源管理器。    Apache Mesos – 一个通用的集群,可以运...

2018-03-31 22:04:45 274

原创 spark源码编译

参考网址:http://spark.apache.org/docs/latest/building-spark.html由于spark对hadoop版本有一定的依赖,所以建议使用源码来编译,本次编译的版本为:spark2.2。0由于这次编译需要CDH的HADOOP依赖,解压spark的源码包,编辑pom.xml文件, 在repositories节点 加入如下配置:<repository&gt...

2018-03-23 21:25:15 151

转载 hadoop支持lzo完整过程

转自 http://blog.csdn.net/joseph_happy/article/details/50374057 简介部署安装lzop native library安装hadoop-lzo配置hadoop环境变量验证lzo(通过hive测试)创建lzo表导入数据...

2018-03-05 20:18:26 4612 2

原创 基于hive进行简单压缩技术测试

1、准备测试数据、在hive上创建表page_views,并将测试将数据导入create table page_views(track_time string,url string,session_id string,referer string,ip string,end_user_id string,city_id string)ROW FORMAT DELIMITED FIE...

2018-03-03 12:55:11 373 1

原创 浅谈HADOOP中压缩技术的选择

众所周知,没有任何一种压缩算法能达到一劳永逸的效果,如何选择压缩算法需要实际情况实际分析,归根到底其实就是时间与空间的选择。压缩的好处 和 坏处好处:    1、节省空间    2、减少IO(硬盘IO 和 网络传输IO)    3、减少网络传输时间    坏处:    1、由于使用数据时,需要先将数据解压,加重CPU负荷常用的压缩技术:    目前如果LZO使用索引技术,是能支持风格压缩在Hado...

2018-03-03 12:44:35 413

原创 scala编程 - 样例类

        样例类在scala中是第一种特殊的类,可用于模式匹配(但在基于版本2.11.8测试中普通的类也能进行模式匹配),case class是多例的,后面需要加参数(无参也要加上括号),case object 是单例的。import scala.util.Randomabstract class Animal extends flyable { def print { pr...

2018-02-21 15:59:25 279

原创 scala编程 - 模式匹配

1、匹配字符串import scala.util.Randomimport scala.util.matching.Regex.Match/** * 字符串匹配 * scala中的case匹配成功后,就不会再进行匹配,自动break。 */object CaseString { def main(args: Array[String]): Unit = { val ...

2018-02-21 15:38:25 209

原创 scala面向对象编程 - 类、抽象类、伴生对象、继承、类的构造方法

1、类 、抽象类、伴生对象、继承// scala中不存在public关键字,源文件中可以包含多个类,这些类都具有公有可见性// 定义一个抽象类abstract class Animal { val age:Int = 0 val weight:Int = 0 // 抽象类中的函数能有默认实现 def cry(): Unit = println("This a Anim

2018-02-20 23:39:14 251

原创 scala编程基础

1、变量Scala和Java一样,有7种数值类型Byte、Char、Short、Int、Long、Float和Double(无包装类型)和一个Boolean类型/** * 声明、定义变量 */object VariableDemo { def main(args: Array[String]): Unit = { // 定义一个变量,吧变量名在前,类型在后。

2018-02-15 21:57:05 201

原创 hive笔记-使用JDBC操作hive

参考网址:https://cwiki.apache.org/confluence/display/Hive/HiveClient#HiveClient-JDBC其实根据官网的wiki即可实现,连代码都不用自己敲,但是有几个地方需要注意的。package com.hihi.hive;import java.sql.SQLException;import java.sql.Connection;...

2018-01-16 21:29:08 3616 1

原创 hive笔记-刷新分区

1、选择一张分区表(本次取的是内部表),把分区数据取到本地。[root@hadoop001 hiveData]# hadoop fs -get /user/hive/warehouse/emp_dept_partition/deptno=30/000000_0 emp_dept_partition-deptno30[root@hadoop001 hiveData]# lsdept emp_d...

2018-01-14 16:46:20 12349

原创 hive笔记-通过修改源码注册永久UDF

准备:先下载对应版本的源码,并源码编译一次。1、找出对应的java文件,并对其修改[root@hadoop001 hive-1.1.0-cdh5.7.0]# find . -name FunctionRegistry.java./ql/src/java/org/apache/hadoop/hive/ql/exec/FunctionRegistry.java2、修改FunctionRegistry...

2018-01-12 23:28:28 889

原创 hive笔记-自定义UDF

1、定义自己的UDF函数package com.hihi.hive;import org.apache.hadoop.hive.ql.exec.UDF;import org.apache.hadoop.io.Text;public class HelloWord extends UDF { public Text evaluate(final Text s) { ...

2018-01-11 21:37:26 2063

原创 hive笔记-export/import

该EXPORT命令将表或分区的数据连同元数据一起导出到指定的输出位置。然后可以将此输出位置移至不同的Hadoop或Hive实例,并使用该IMPORT命令从那里导入。导出分区表时,原始数据可能位于不同的HDFS位置。还支持导出/导入分区子集的功能。导出的元数据存储在目标目录中,数据文件存储在子目录中。EXPORT和IMPORT命令中使用的源和目标metastore DBMS的独立工作; 例如,它们可...

2018-01-08 21:13:04 1140

原创 hive笔记-静态分区和动态分区

1、静态分区CREATE TABLE emp_dept_partition(empno int,ename string,job string,mgr int,hiredate string,sal double,comm double) PARTITIONED BY (deptno int)ROW FORMAT DELIMITED FIELDS TERMINATED BY "\t" ;备注:静态...

2018-01-07 22:21:34 2902

原创 hive笔记-如何创建一张表并将数据导入

参考资料:https://cwiki.apache.org/confluence/display/Hive/Home#Home-UserDocumentationhive版本:hive1.1.0主要通过参考官网wiki,顺便做做笔记。具体的参数功能建议直接参考官网。创建一个数据库的语法("[]"为可选参数):CREATE (DATABASE|SCHEMA) [IF NOT EXISTS] data...

2018-01-07 19:20:37 2211

原创 客户端向yarn提交MR作业流程简述

这里简述一下客户端向yarn提交MR作业是,yarn是如何进行调度,同时会有哪些进程(windos下为线程)协调工作。1、yarn简述yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式操作系统平台,而mapreduce等运算程序则相当于运行与操作系统之上的应用程序。yarn在hadoop2.x系列中被加入的资源管理器,取代hadoop1.x中的jobtracker,将资...

2018-01-04 22:45:46 4611

原创 通过源码了解hdfs客户端写文件流程

之前梳理了一下hdfs客户端的简单流程,但为了跟深刻的了解,所以尝试通过源码了解一次。先准备demo代码,将断点打在fs.copyFromLocalFile()。public class HdfsClientDemo { FileSystem fs = null; Configuration conf = null; @Before public void init() throws Ex...

2018-01-01 19:06:19 759

原创 hive中使用HQL实现wordcount

1、使用一张表,记录文件数据,文件的一行就是表里一个字段的数据,所以使用换行符作为分隔符,并以文件名为分区drop table file_data;create table file_data(context string) partitioned by (file_name string)row format delimited fields terminated by '\n'stored a...

2017-12-30 23:50:12 436

原创 hive 1.1.0搭建

系统:centOS6.5 x86_64hive版本:apache-hive-1.1.0-cdh5.7.0JDK版本:1.71、下载cdh版本的hivehttp://archive.cloudera.com/cdh5/cdh/5/2、解压、配置环境变量tar -zxvf apache-hive-1.1.0-cdh5.7.0-bin.tar.gzvi /etc/profileexport HIVE_H...

2017-12-30 22:35:26 922

原创 hadoop伪集群模式部署

系统:centOS6.5 x86_64hadoop版本:hadoop-2.6.0-cdh5.7.0JDK版本:1.7参考网址:http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html1、下载cdh版本的hadoophttp://archive.cloudera.com/cdh...

2017-12-28 20:46:53 193

原创 Hadoop源码编译

系统:centOS 6.5-x86_64Hadoop版本:hadoop-2.8.11、下载hadoop源码,如果官网没有对应的版本,可以选择去github下载。http://hadoop.apache.org/releases.htmlhttps://github.com/apache/hadoop2、准备编译环境下载好源码后,解压后先修改解压文件的

2017-12-28 20:18:15 167

原创 HDFS客户端上传文件流程

HDFS读文件流程(上传文件) 1 客户端与nameNode通讯 1.1 客户端像nameNode发送上传文件请求。 1.2 nameNode返回响应,允许客户端上传文件。 1.3 客户端根据配置(dfs.blocksize - 块大少、hadoop 2.x 默认为128M)将文件切成N个block。 1.4 客户端向nameNode发出RPC请求上传第一个block,

2017-12-24 17:37:16 5188

原创 hdfs简单介绍

1. HDFS前言设计思想分而治之:将大文件、大批量文件,分布式存放在大量服务器上,以便于采取分而治之的方式对海量数据进行运算分析;在大数据系统中作用:为各类分布式运算框架(如:mapreduce,spark,tez,……)提供数据存储服务重点概念:文件切块,副本存放,元数据2. HDFS的概念和特性首先,它是一个文件系统,用于存储文件,通过统一的命名空间——目

2017-12-22 23:11:51 288

原创 VMware中centOS配置静态IP

centOS配置静态IP为什么要设置静态IP?因为虚拟机默认是使用动态获取IP的,而在hadoop中,IP可以说是在配置文件中写死(这里所指的是集群模式下,非伪集群模式下在配置文件中配置localhost 127.0.0.1)。1、 关闭windos7防火墙 2、 关闭centOS防火墙 service iptables stop -- 关闭防火墙chkconfig iptables off – ...

2017-12-17 21:48:46 188

原创 C++ 多态,虚函数

虚函数和多态  1.基本概念如果在类中某个成员函数被定义为虚函数,那么在该类的派送类中如果拥有与基类虚函数函数原型相同的函数同样为虚函数,并且与其基类中的版本构成覆盖关系。    一个指向子类的基类指针或引用子类的基类引用,调用虚函数,若基类的虚函数被子类的覆盖,则调用子类版本而非基类版本,否则调用基类版本,这种语法称为多态。  2.覆盖的条件    成员函数 + 虚函数 +

2015-09-06 23:06:01 486

原创 钻石继承和虚继承

在C++中,类是允许多继承的,多继承大大的提高了代码的复用、减少代码冗余、大大的提高了类的表现力,使得类更贴近现实中的事物,使用起来更为灵活,更面向对象。但由于这灵活的语法,使得C++使用起来比别的编程语言更为复杂,不过凡事有利必有弊,这里就不去探讨其中的利弊,还是把注意力放到使用继承时候需要注意的地方。 钻石继承什么是钻石继承?                        

2015-08-22 21:39:43 3623 2

原创 【C++】智能指针的实现

一点都不智能的智能指针#include using namespace std;templateclass Auto{public: // 避免编译器报错,需要显式类型转换 explicit Auto(T* data = NULL) : m_data(data) {} // 转移拷贝 Auto(Auto& that) : m_data(change(that)) {}

2015-08-08 18:27:48 496

原创 【C++】双向线性链表容器的实现

// 双向线性链表容器#include #include #include using namespace std;// 链表类模板templateclass List{public: // 构造、析构、支持深拷贝的拷贝构造和拷贝赋值 List(void) : m_head(NULL), m_tail(NULL) {} ~List(void) { clear();

2015-08-06 22:47:36 977

原创 C++中的运算符重载

运算符重载 重载的运算符必须接受至少一个自定义类型。接受的参数都为内置类型的运算符无法被重载。运算符作为类的成员函数被重载时,类的对象就作为第一个参数。注意此时函数的返回方式。重载++a会调用operator++(a),重载a++会调用operator++(a, int),其中第二个int参数是不会被用到的,只是用来区分前缀和后缀调用。--的重载也是一样。

2015-07-30 22:22:57 1014

原创 pthread线程属性介绍

线程属性创建线程函数int pthread_create (pthread_t* restrictthread,  const pthread_attr_t* restrictattr,void* (*start_routine) (void*), void* restrict arg);的第二个参数即为线程属性,传空指针表示使用缺省属性。线程属性为一个结构体,具体如下

2015-07-25 17:52:11 829

原创 【C++】静态成员与单例模式

C++中的静态成员,以及单例模式的实现

2015-07-11 20:31:11 1147 1

原创 Unix/linux 进程间通讯 - 共享内存

Unix/linux 下使用共享内存实现进程间通讯

2015-07-05 20:57:31 450

空空如也

空空如也

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

TA关注的人

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