大数据学习目录

背景

最近有很多朋友问我,该怎么转大数据? 这个问题太大了,不是一句两句话能说清楚的,毕竟每个人情况不一样,每个公司的情况不一样,技术栈也不一样。而且大数据这个范围太大了,也有很多个方向。所以,我只能以我了解的维度,从一个JAVA开发转大数据开发的技术栈,做一个系列给大家讲一讲。这篇文章,主要是我的大数据技术栈。大家可以参考目录,去学习自己想了解的知识。由于本人水平有限,如有错误,欢迎联系Wx: woaiqiandaxian 加以批评指正。本目录也将随着个人成长,持续更新下去。

教程代码:
https://github.com/qiandaxian/bigdata-learn


说道现如今的大数据技术,很多重要思想,起源于谷歌的三篇论文,所以想要学习大数据,最好先了解谷歌的三篇论文:

继续阅读大数据学习目录

分享一个数学计算

前几天群里不认识的一个哥们,需要计算一下:
A+B=C,其中 C 不包含 A,B 中任意数字的集合
一时闲来无事,正好练练手,用python写了下,代码如下:

# -*- coding: utf-8 -*-
import time

'''
A+B=C,C不包含A,B中任意数字
'''

'''按位切分数字,返回字典{0-9,0-1}
ex{
  0:1,
  9:1
} 说明结果中包含0,9两个数字
'''
def spiltNumber( num ):
    n = num
    result = {}
    while (n > 0):
        if(n % 10 not in result):
            result[n % 10] = 1
        n = n / 10
    return result

# 2个字典取并集,为空说明不重复
def checkDictContains(dict1,dict2):
    return len(dict.fromkeys([x for x in dict1 if x in dict2])) == 0

def getList(start, end):
    list = range(start, end)
    return list

def getResult(start,end):
    # 返回的结果列表
    result = []
    # 迭代的次数
    z = 0
    for i in range(start, end):
        print("执行矩阵运算 x:%d,y:(%d~%d)..." % (i,i,end))
        for j in range(i, end):
            z += 1
            # 将左侧乘数转成倒排索引
            leftNumberDict = dict(spiltNumber(i), **spiltNumber(j))
            # 结果转换成倒排索引
            count = i + j
            countDict = spiltNumber(count)
            if (checkDictContains(countDict, leftNumberDict)):
                result.append(" %d + %d = %d" % (i, j, count))
                print("匹配结果: %d + %d = %d" % (i, j, count))
    print("匹配的结果数:%d" % (len(result)))
    print("迭代总次数:%d" % (z))

if __name__ == '__main__':
    startTime = time.time()
    getResult(100,999)
    print("执行时间:%d s" % (time.time()-startTime))

执行结果如下:

...
执行矩阵运算 x:992,y:(992~999)...
执行矩阵运算 x:993,y:(993~999)...
执行矩阵运算 x:994,y:(994~999)...
执行矩阵运算 x:995,y:(995~999)...
执行矩阵运算 x:996,y:(996~999)...
执行矩阵运算 x:997,y:(997~999)...
执行矩阵运算 x:998,y:(998~999)...
匹配的结果数:55509
迭代总次数:404550
执行时间:4 s

继续阅读分享一个数学计算

使用ambari2.7.0搭建hdp3.0集群

base

本文参考自:https://docs.hortonworks.com/HDPDocuments/Ambari-2.7.0.0/bk_ambari-installation/content/ch_Getting_Ready.html
文中所有安装配置,基于centos7。

ambari安装步骤

  1. 配置服务器

操作系统版本 centos7.4,我的配置是:

hostname ip 内存
server1 192.168.50.60 4G
server2 192.168.50.61 4G
server3 192.168.50.62 4G
server2 192.168.50.63 4G
server3 192.168.50.64 4G

虚拟机请配置成桥接模式,保存每台设备,都有独立的局域网IP,便于局域网访问

继续阅读使用ambari2.7.0搭建hdp3.0集群

调用链监控系统的选型

背景

最近进行系统分布式改造,需要上一款调用链监控系统。预研了一下cat,zipkin,pinpoint。现就将3者做一个简单的归纳总结;

对比

cat zipkin pinpoint
可视化
java埋点方式 侵入 侵入 不侵入字节码
serverMap 简单的依赖图 简单
heartbeat
报表 非常丰富
JAVA客户端支持
社区 文档丰富 文档一般,暂无中文社区 一般,文档少,无中文社区
案例 携程,点评 京东,阿里改造后不开源 暂无
项目源头 ebay cal google dapper google dapper

继续阅读调用链监控系统的选型

ctrip-apollo-springmvc客户端使用步骤

官方文档

Java客户端使用指南

一. 引入依赖

<dependency>
        <groupId>com.ctrip.framework.apollo</groupId>
        <artifactId>apollo-client</artifactId>
        <version>1.1.0</version>
    </dependency>

二. 添加配置文件

apollo meta server

1.0.0版本开始支持以下方式配置apollo meta server信息,按照优先级从高到底分别为:
5. 通过app.properties配置文件
可以在classpath:/META-INF/app.properties指定apollo.meta=http://config-service-url

我们采用第5种方式,在resources目录下,添加/META-INF/app.properties,内容为:

app.id=xxx-appid
apollo.meta=http://x.x.x.x:9202
#dev.meta=http://x.x.x.x:9202
#pro.meta=http://x.x.x.x:9204

继续阅读ctrip-apollo-springmvc客户端使用步骤

Linux搭建分布式配置文件中心disconf-web

背景

公司进行分布式改造,由于配置文件是本地配置,造成配置文件修改工作量大,有些参数修改,需要重启应用才能生效。配置文件的查看对比也体验很差,由此引入分布式配置文件管理框架 disconf。

文档

  1. 官网
    https://disconf.readthedocs.io/zh_CN/latest/
  2. github
    https://github.com/knightliao/disconf
  3. 官方demo
    https://github.com/knightliao/disconf-demos-java

disconf简介

disconf-web

统一的配置中心,提供web功能,和管理接口

disconf-client

应用端需要添加的依赖支持,一般指添加了依赖的应用

linux下安装步骤

  1. 下载源码
mkdir disconf
git clone https://github.com/knightliao/disconf.git
  1. 下载安装依赖

– 安装Mysql(Ver 14.12 Distrib 5.0.45, for unknown-linux-gnu (x86_64) using EditLine wrapper)
– 安装Tomcat(apache-tomcat-7.0.50)
– 安装Nginx(nginx/1.5.3)
– 安装 zookeeeper (zookeeper-3.3.3)
– 安装 Redis (2.4.5)
– 安装maven

继续阅读Linux搭建分布式配置文件中心disconf-web

linux下zookeeper集群安装配置

官网:http://zookeeper.apache.org/

1下载

wget http://ftp.jaist.ac.jp/pub/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

2解压

tar -zxvf  zookeeper-3.4.10.tar.gz
  • bin目录
    命令目录,zk的操作命令。
  • conf目录
    配置目录,zk的配置信息。

继续阅读linux下zookeeper集群安装配置