- 博客(38)
- 收藏
- 关注
原创 从零开始搭建Hadoop框架(单机模式)
准备工作Master和Slave1中都要安装Hadoop,在这我们以Master为例,Slave1类似 1).Hadoop 简介 Hadoop是一个开源的可运行于大规模集群上的分布式并行编程框架,其最核心的设计包括:MapReduce 和 HDFS。基于 Hadoop,你可以轻松地编写可处理海量数据的分布式并行程序,并将其运行于由成百上千个结点组成的大规模计算机集群上。 HDFS:Had
2018-01-05 12:14:58 665
原创 MySQL绿色版安装指南
首先,将下载好的MySQL解压. 如图所示,可能没有my.ini. 如果没有则自己手动创建一个my.ini[mysql]# 设置mysql客户端默认字符集default-character-set=utf8 [mysqld]#设置3306端口port = 3306 # 设置mysql的安装目录basedir=D:\mysql-5.7.20-winx64# 设置mysql数据库
2017-12-23 13:52:00 414
原创 Storm 核心概念及工作原理
Strom 简介Apache Storm(http://storm.apache.org)是由Twitter 开源的分布式实时计算系统,Storm 可以非常容易并且可靠的处理无线的数据流,对比Hadoop的批处理,Storm是一个实时的、分布式的、具备高容错的计算系统。Storm的核心代码使用clojure书写,实用程序使用python开发,使用java开发拓扑。Storm 的使用场景非常广泛,比如
2017-11-10 10:38:28 2153
原创 Kafka 概述 核心组件及特性
什么是KafkaApache Kafka是一个开源消息系统,由Scala写成。是由Apache软件基金会开发的一个开源消息系统项目。Kafka最初是由LinkedIn开发,并于2011年初开源。2012年10月从Apache Incubator毕业。该项目的目标是为处理实时数据提供一个统一、高通量、低等待的平台。Kafka是一个分布式消息队列:生产者、消费者的功能。它提供了类似于JMS的特性,
2017-11-02 15:15:56 1606
原创 Flume初体验
需求:从网络端口接受数据,输出到控制台 Agent选型:netcat+source + memory channel + logger sink官网提供的配置# example.conf: A single-node Flume configuration# Name the components on this agenta1.sources = r1a1.sinks = k1a1.cha
2017-11-02 15:04:23 743
原创 Flume 概述架构及部署
简介Flume是由 Cloudera 提供的一个分布式、高可靠、高可用的服务,用于分布式的海量日志的高效收集、聚合、移动系统。简单来说,Flume 就是一个针对日志数据进行采集和汇总的一个工具(把日志从A地方移动到B地方)Flume官网 Flume官方文档Flume 特点可靠性:当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume提供了三种级别的可靠性保障,从强到弱依次分别为:
2017-10-31 17:35:44 649
原创 Spark-RDD详解
什么是RDD?弹性分布式数据集分布在不同集群节点的内存中可以理解成一大数组数组的每一元素是RDD的一分区RDD的每一分区是一数据块一个RDD可以分布并被运算在多台计算机节点的内存及硬盘中 RDD代表了一系列数据集合分布在机群的内存中。SPARK CORE 的任务是对这些数据进行分布式计算。RDD特性RDD数据块可以放在磁盘上也可放在内存中(取决于设置)如出现缓存失效或丢失,RDD的
2017-10-30 15:57:53 703 1
原创 Spark-core 运行原理
架构图在此Spark Core部件解析应用程序(Application): 基于Spark的用户程序,包含了一个Driver Program 和集群中多个的Executor;驱动程序(Driver Program): 运行Application的main()函数并且创建 SparkContext. 通常用SparkContext代表Driver Program执行单元 (Executor):
2017-10-24 22:42:19 1143
原创 Spark组件介绍
Spark简介Spark可以独立于Hadoop单独运行Spark的设计理念 交互式和迭代式在集群多点内存中运行的分布式计算容错数据集合 同时Spark还支持使用不同的语言编程(Java,Scala,R,Python) 可以从不同的数据源获取数据(HDFS,Cassandra,HBase) 实现不同的功能Spark Core, Spark SQL, Spark Streamin
2017-10-23 10:29:16 4693
原创 项目使用Dubbo实现解耦和
代码准备本次作者建立了一个小Demo来说明如何使用Dubbo实现解耦和的项目部署方式 作者使用的开发工具是idea,大家也可以使用eclipse或者myeclipse. 首先使用idea创建一个maven项目, 其中包括了5个子模块,分别是 - dao - daoimpl - service - serviceimpl - web 项目结构如下图,请原谅画的比较…..(额..抽
2017-09-25 11:45:43 2346
原创 MapReducu操作HBase
1.创建项目作者使用的开发工具是idea,也可以使用eclipse、myeclipse或其它工具,创建一个maven项目1.pom.xml 配置如下<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org
2017-09-25 09:35:13 487
原创 HBase常用操作
一、Shell 操作使用如下命令进入hbase 的shell 客户端,输入quit或exit退出$ hbase shell查看hbase 所有命令$ help如果忘记了命令如何使用,使用help ‘命令’查看帮助文档,如下hbase(main):048:0> help 'list'List all tables in hbase. Optional regular expression param
2017-09-25 09:32:44 1586
原创 Jedis操作Redis模型
对于外部程序,想要访问Redis首先需要对Redis进行两个设置 在Redis配置文件redis.conf中配置如下1. 注释掉bang 127.0.0.1,否则只能本机访问 2. 关闭redis的保护模式不推荐使用new jedis这样的操作,因为操作一次都要对redis进行远程访问,会大量的消耗资源 推荐使用连接池,其中有三个非常重要的类JedisPoolConfig:设置和读取配置文件
2017-09-23 21:53:50 370
原创 Shuffle详解
Shuffle过程是MapReduce的核心。Shuffle的意思是洗牌或者打乱,会使用Java的同学应该见过Java API里面的Collections.shuffle(list)方法,它会随机地打乱参数list里面的元素顺序。 如果读者不知道MapReduce里面的Shuffle是什么,请看下图 Shuffle差不多就是从MapTask输出到ReduceTask输入的这一过程。 在真实
2017-09-16 22:46:28 1779
原创 HUE安装与配置
准备软件包准备 HUE官方网站 HUE官方帮助手册 已安装的分布式框架例如Hadoop 以及其它需要与HUE集成的软件需要的依赖$ yum install -y gcc libxml2-devel libxslt-devel cyrus-sasl-devel mysql-devel python-devel python-setuptools python-simplejson sqlite
2017-09-09 12:16:56 6923
原创 Lua构建及安装
前言lua源码Lua官网下载地址 注意:在~/lua-5.3.x/doc目录下有一个叫readme.html为官方帮助文档 在使用源码编译的时候,需要一个依赖readline-devel使用如下命令安装$ sudo yum instal readline-devel安装根据安装平台的类型lua官方提供了如下几种 aix bsd c89 freebsd generic linux ma
2017-09-09 11:55:13 561
原创 Sqoop-Shell命令参数详解
前言此文章为作者查看Sqoop官方网站整理归纳 加入了部分个人见解. 顺便附上:Sqoop官方帮助手册显示(Show) function 描述 可选参数 server 连接到sqoop服务器的信息 -a -h -p -w option 各种客户端选项 -n version 客户端构建版本 -a -c -s -p connector 连接器相关
2017-09-02 21:05:18 2165
原创 Sqoop安装及初体验
前言文章中所有的路径,均是演示所用. 实际情况请自行斟酌 首先介绍一下什么是Sqoop Sqoop(发音:skup)是一款开源的工具,主要用于在Hadoop(Hive)与传统的数据库(mysql、postgresql…)间进行数据的传递,可以将一个关系型数据库(例如 : MySQL ,Oracle ,Postgres等)中的数据导进到Hadoop的HDFS中,也可以将HDFS的数据导进到关系
2017-09-02 13:25:21 1017 1
原创 Java操作HBase
本文通过Java书写MapReduce的方式来对Hbase进行操作 - 使用 MapReduce将 HDFS 的文件导入到 hbase - 从 HBase 实现备份数据到 HDFS - 将 HBase 中的数据导入到 MySQL创建项目首先,使用开发工具创建一个maven项目 具体pom文件如下.pom文件<?xml version="1.0" encoding="UTF-8"?><pr
2017-08-31 09:20:47 977
原创 Hive环境搭建
前言: 首先Hive中的元数据默认存放在Derby中,Derby是单用户的,使用起来不方便,我们使用MySQL来存储Hive的元数据信息,元数据包括表的名字,表的列和分区及其属性,表的属性(是否为外部表等),表的数据所在目录等。 由于Hive的元数据需要不断的更新、修改,而HDFS系统中的文件是多读少改的,这显然不能将Hive的元数据存储在HDFS中。安装mysql直接使用yum安装mysql是无
2017-08-24 15:15:34 496
原创 Hive体系架构
Hive 是什么首先是一个构建在Hadoop之上的数据仓库(它并不是一个真实的数据库)由Facebook开源,最初用于解决海量结构化的日志数据统计问题 Hive定义了一种类似于SQL查询语言:HQL(非常类似于MySQL中的SQL语句,同时做了扩展) 通常用于离线数据处理(采用MapReduce) 可以认为是一个HQL=>MapReduce的语言翻译器 底层支持多种不同的执行引擎(默认是
2017-08-24 14:19:54 572
原创 HBase架构
首先摆一个架构图主要包含的方面是HDFS 因为数据是保存在HDFS上的HBase内存满了之后就会将内存中的数据写入到HDFS上.也就是说除了内存之外的数据全部保存在HDFS上Client: 与HBase进行读写操作可以有多个Client来访问HBaseZooKeeper 客户端是与ZooKeeper进行交互的并不是直接与HMaster进行交互的ZooKeeper中存储的信息是非常重要
2017-08-16 00:02:31 455
原创 HBase的物理模型
Table中的所有行都按照rowkey的字典顺序排列 Table在行的方向上分割为多个Region Region是按照大小分割的每个表开始只有一个region,随着数据增 多,region不断变大,当大到一定程度的时候,region就会分割成两个>新的region,之后会有越来越多的region; 那么为什么要拆分region呢? 第一点.可以并行化的处理数据.可以分割的数据可
2017-08-15 23:16:07 885
原创 HBase与RDBMS&HDFS对比
在使用Hbase之前,我们来简单的介绍一下HBase; Hbase是一种分布式的列式的存储系统,和传统的RDBMS不一样; Hbase是一种面向列的数据库;那么什么是面向列? 坐标系大家都知道吧?(不知道请自行百度.哈哈哈哈)几个坐标放在一起可以指定到一个准确的位置; Hbase中的数据需要通过行键(Rowkey以下称作rk),列族(ColumnFamily以下称作cf),列(Column以
2017-08-15 23:15:30 1706
原创 Hbase之Shell
Hbase的Shell操作写在前面因为格式问题,为了显示美观一点笔者在Shell命令中逗号后面添加了空格.实际使用请不要加空格 说明 名字 意义 tname TableName表名 rk Row_Key行键 cf Column_Family列族 c Column列 regex 正则表达式#使用如下命令进入Hbase 的shell 客户端,输入quit
2017-08-15 21:55:24 501
原创 HBase之JavaAPI
HBase提供了Java API的访问接口,实际开发中我们经常用来操作HBase,就和我们通过java API操作RDBMS一样。如下 API 作用 HBaseAdmin HBase 客户端,用来操作HBase Configuration 配置对象 Connection 连接对象 Table HBase 表对象 TableName HBase 中的表名
2017-08-15 20:47:02 725
原创 Hadoop之HDFS存储及读取机制
什么是HDFS? 首先HDFS称为分布式文件系统,是一个高容错性的系统。 分布式文件系统,首先其中有几点。分别是: 分布式。 文件。 系统 即横跨在多台计算机上的同一个文件存储系统。存储在分布式文件系统上的数据自动分布在不同的节点上。 由于是分布式文件系统,所以元数据与数据文件是分离存储的 NameNode DataNode
2017-08-02 15:05:35 805
原创 正则表达式之Python篇
正则不属于任何语言,大多数语言都提供正则的支持 正则是一种模式的描述,有其特定的描述符 re 模块使 Python 语言拥有全部的正则表达式功能。 compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。 re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。re.matc
2017-07-11 10:02:21 368
原创 SAX解析XML
何为Sax解析 Java解析XML通常有两种方式,DOM和SAX。DOM虽然是W3C的标准,提供了标准的解析方式,但它的解析效率一直不尽如人意,因为使用DOM解析XML时,解析器读入整个文档并构建一个驻留内存的树结构(节点树),然后您的代码才可以使用DOM的标准接口来操作这个树结构。但大部分情况下我们只对文档的部分内容感兴趣,根本就不用先解析整个文档,并且从节点树的根节点来索引一些我们需要的数据
2017-07-06 10:34:34 438
原创 Python实现二叉树
class Btree: root = None def __init__(self, data=None): root = self.Node(data) self.root = root def append(self,data): node = self.Node(data) if self.root is
2017-07-06 09:46:43 295
原创 Python之集合,字典 迭代器
元组定义方式yz = (2, 2, 2, 2, 3)列表定义方式ar = [2, 2, 2, 2, 3]集合定义方式jh = {2, 2, 2, 3}迭代器定义方式it=iter(array) #array为元组,列表,集合等定义字典方式zd = {'cn': '中国', 'en': '英国', 'us': '美国'}print("us --> ", dl['us'])print("cn -->
2017-06-18 14:07:01 1135
原创 Linux(Cent Os7)安装配置JDK
首先在终端运行java命令 如有系统自带的jdk则需要卸载 ,执行如下代码yum remove -y jdk将通过Xftp上传到虚拟机.并且在终端执行yum install -y jdk-8u121-linux-x64.rpm接下来配置环境变量,进入当前用户HOME目录cd ~ //进入当前用户的根目录gedit .bashrc //配置局部环境变量如果需要配置全局环境变量则:gedit /
2017-05-30 08:32:23 706
转载 欢迎使用CSDN-markdown编辑器
欢迎使用Markdown编辑器写博客本Markdown编辑器使用StackEdit修改而来,用它写博客,将会带来全新的体验哦:Markdown和扩展Markdown简洁的语法代码块高亮图片链接和图片上传LaTex数学公式UML序列图和流程图离线写博客导入导出Markdown文件丰富的快捷键快捷键加粗 Ctrl + B 斜体 Ctrl + I 引用 Ctrl
2017-05-30 08:09:05 245
转载 java数据结构与算法之改良顺序表与双链表类似ArrayList和LinkedList(带Iterator迭代器与fast-fail机制)
理解Iterator接口为什么需要迭代器(Iterator) 在分析迭代器前,我们先来了解一下为什么需要迭代器,在以前的代码中,我们总是通过如下去循环获取某些集合中的元素:List list = new ArrayList();for(int i = 0 ; i < list.size() ; i++){ String str = list.get(i);
2016-11-28 10:38:56 595
原创 字符串的常用提取方法
public int indexOf(int ch) //搜索第一个出现的字符ch,如果没找到返回-1public int indexOf(String value) //搜索第一个出现的字符串 value,如果没找到返回-1public int lastIndexOf(int ch) public int lastIndexOf(String value) //搜索最后一个出现的字符ch(或字符
2016-11-28 10:20:15 1733
原创 equals方法的重写1
比较两个对象是否相等,equals方法默认的是比较其内存地址是否相等.实际上应用的时候,有些时候需要比较对象的某个特征是否相同.此时就需要重写 equals方法 public boolean equals(Object obj) { if(obj==this){ return true;//如果内存地址相同.则相同 } if(!(obj instanceof Studen
2016-11-27 09:51:59 514
转载 equals方法重写
来自http://www.iteye.com/topic/269601的文章 一、为什么equals()方法要重写?判断两个对象在逻辑上是否相等,如根据类的成员变量来判断两个类的实例是否相等,而继承Object中的equals方法只能判断两个引用变量是否是同一个对象。这样我们往往需要重写equals()方法。我们向一个没有重复对象的集合中添加元素时,集合中存放的往往
2016-11-27 09:48:17 1387
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人