摘要: ## 项目01-flume、kafka与hdfs日志流转### 1、启动kafka集群```shell$>xkafka.sh start```### 3、创建kafka主题```shellkafka-topics.sh --zookeeper s102:2181 --create --topic topic-umeng-raw-logs2 --replication-fact... 阅读全文
posted @ 2018-08-27 20:48 大道至简(老徐) 阅读(607) 评论(0) 推荐(0)
摘要: ## 日志滚动与cron调度### 1、日志滚动nginx默认日志不能进行滚动,始终写入到一个文件中,即access.log。编写日志滚动的shell脚本,并使用linux的cron定时调度周期性进行日志文件滚动。#### 1.1 编写滚动脚本1. 创建roll_log.sh脚本文件 以root身份在/usr/local/bin/创建umeng_roll_log.sh文件 ```shell... 阅读全文
posted @ 2018-08-27 20:47 大道至简(老徐) 阅读(337) 评论(0) 推荐(0)
摘要: ## 项目01-nginx模块### 1、nginx介绍nginx是一款高性能web服务器和反向代理服务器,在互联网项目中使用非常频繁,尤其其出色的性能以及轻量级进程占用,已经超过了apache的httpd服务器的使用量。内部可以配置零拷贝实现快速文件传输。### 2、openrestyopenresty是将nginx现有一些重要插件做了集成,省去安装nginx之后还需要在安装插件的繁琐步骤,内置... 阅读全文
posted @ 2018-08-27 20:46 大道至简(老徐) 阅读(249) 评论(0) 推荐(0)
摘要: ## 项目01-手机端模块### 1、项目描述### 2、术语说明- App 手机应用程序- App开发商 开发App的企业和个人- 用户 安装了App的人员。- 数据服务商 提供数据服务的企业。- 数据服务平台 数据服务商的产品。- 租户 租用了数据服务商的App开发商- 云版 数据服务商部署自己的数据服务平台到云中。- 企业版 数据服务商出售数据服... 阅读全文
posted @ 2018-08-27 20:45 大道至简(老徐) 阅读(209) 评论(0) 推荐(0)
摘要: ## Spark机器学习### 1、介绍MLlib是spark机器学习库,目标是让机器学习易用使用并具有伸缩性。在更高层面上,提供如下工具:- ML算法 常用算法,比如分类、回归、聚类和协同过滤。- 特征 特征抽取,特征变换、降维以及选择。- 管线 构造、计算以及调优管线的工具。- 持久化 保存、加载算法、模型和管线。- 工具 线性代数、统计学、数据处理等等。### 2、基础概念- ve... 阅读全文
posted @ 2018-08-27 20:45 大道至简(老徐) 阅读(581) 评论(0) 推荐(0)
摘要: ## Spark内存管理### 1、介绍spark内存管理不是通过物理或者硬件底层API实现对内存资源探测,只是通过对内存操作过程期间的字节量的变化不断更新维护的数字,通过该方式跟踪内存使用情况。spark对每个task都关联了内存的使用量,存放在了map中。严格意义上讲,spark内存的管理是估算量,不是精确量。spark的内存管理主要针对的堆内内存,和离堆非堆无关。### 2、Spark内存结... 阅读全文
posted @ 2018-08-27 20:44 大道至简(老徐) 阅读(481) 评论(0) 推荐(0)
摘要: ## Spark Streaming### 1、介绍Spark Streaming是Spark core API的扩展,针对实时数据流计算,具有可伸缩性、高吞吐量、自动容错机制的特点。数据源可以来自于多种方式,例如kafka、flume等等。使用类似于RDD的高级算子进行复杂计算,像map、reduce、join和window等等。最后,处理的数据推送到数据库、文件系统或者仪表盘等。也可以对流计算... 阅读全文
posted @ 2018-08-27 20:43 大道至简(老徐) 阅读(507) 评论(0) 推荐(0)
摘要: ## Spark SQL### 1、介绍 Spark SQL是构建在Spark core模块之上的四大模块之一,提供DataFrame等丰富API,可以采用传统的SQL语句进行数学计算。运行期间,会通过Spark查询优化器翻译成物理执行计划,并行计算后输出结果。底层计算原理仍然采用RDD计算实现。### 2、Spark与Hive集成1. 在spark配置目录下创建指向hive-site.xml文件... 阅读全文
posted @ 2018-08-27 20:42 大道至简(老徐) 阅读(615) 评论(0) 推荐(0)
摘要: ## Spark Job调度### 1、概览Spark有几种用于在计算之间调度资源的工具。首先,回想一下,如[集群模式概述中所述](http://spark.apache.org/docs/latest/cluster-overview.html),每个Spark应用程序(SparkContext的实例)都运行一组独立的executor进程。Spark运行的集群管理器提供了跨应用程序的调度工具。其... 阅读全文
posted @ 2018-08-27 20:41 大道至简(老徐) 阅读(5296) 评论(0) 推荐(0)
摘要: ## Spark master节点HA配置### 1、介绍Spark HA配置需要借助于Zookeeper实现,因此需要先搭建ZooKeeper集群。### 2、配置#### 2.1 修改所有节点的spark-evn.sh文件在spark-env.sh文件添加如下环境变量:```properties#需要将该条目注释掉#export SPARK_MASTER_IP=master1 #导入expor... 阅读全文
posted @ 2018-08-27 20:40 大道至简(老徐) 阅读(1378) 评论(0) 推荐(0)
摘要: ## 机器学习 ### 1、介绍 机器学习是科学的一个分支,涉及编程系统,他们会自动学习和改进的经验。在这里,学习意味着认识和理解输入的数据。根据所提供的数据,并作出明智的决定。这些算法从特定的数据和过去的经验,统计,概率论,逻辑,组合优化,搜索,强化学习和控制理论的原则,建立知识。机器学习是一个广阔的领域。有几种方法来实现机器学习技术,但是最常用的是监督和无监督学习。 - 监督学习 ... 阅读全文
posted @ 2018-08-27 20:39 大道至简(老徐) 阅读(784) 评论(0) 推荐(0)
摘要: ## 07、Spark集群的进程管理 ### 7.1 概述 Spark standalone集群模式涉及master和worker两个守护进程。master进程是管理节点,worker进程是工作节点。spark提供了很多方便启动或停止进程的脚本,风格和hadoop相似。 ### 7.2 启动脚本 ```shell #启动所有spark进程包括master和worker,该命令在maste节... 阅读全文
posted @ 2018-08-27 20:38 大道至简(老徐) 阅读(868) 评论(0) 推荐(0)
摘要: ## Java中的字符集### 1、字符集概述字符集是各国家文字与字符编码对照表。字符可以看成是计算机中展示的图案效果,每个字符集都对每一种图案进行编码,有着一对一的对应关系。因此进行字符输出时,都需要指定使用哪一种字符集作为参考。不同字符集使用不同的字节数和范围来存储相应的字符。常用字符集有ascii、gb2312、gbk、iso8859-1、utf-8、unicode、big5等。### 2、... 阅读全文
posted @ 2018-08-27 20:37 大道至简(老徐) 阅读(1634) 评论(0) 推荐(0)
摘要: ## 时间复杂度 ### 1、时间频度 时间复杂度通常是衡量算法的优劣的,衡量算法的时间严格来讲是很难衡量的,由于不同的机器性能不用环境都会造成不同的执行时间。算法的执行时间和语句的执行次数成正比,因此通过计算执行测试来推断执行时间。算法中语句执行次数称为语句频度或时间频度,记为T(n),n是问题的规模,T是Time,即时间频度。 ### 2、时间复杂度 n不断变化时,T(n)也在不断变化,为... 阅读全文
posted @ 2018-08-27 20:36 大道至简(老徐) 阅读(1438) 评论(0) 推荐(0)
摘要: ## Hive建模### 1、介绍Hive作为数据仓库,同关系型数据库开发过程类似,都需要先进行建模,所谓建模,就是对表之间指定关系方式。建模在hive中大致分为星型、雪花型和星座型。要对建模深入理解,首先需要对hive数仓中的集中表概念进行界定。hive中的表从形态上分内部表、外部表、桶表、分区表。在数据逻辑上划分为维度表和事实表。维度表等价于我们常说的字典表。事实表就是字典表之外的数据表。##... 阅读全文
posted @ 2018-08-27 20:34 大道至简(老徐) 阅读(4254) 评论(0) 推荐(0)
摘要: ## 08、Spark常用RDD变换 ### 8.1 概述 Spark RDD内部提供了很多变换操作,可以使用对数据的各种处理。同时,针对KV类型的操作,对应的方法封装在PairRDDFunctions trait中,KV类的RDD可以被隐式转换成PairRDDFunctions类型。其中很多的操作,和传统的SQL语句中的操作是对应的,只是底层换成Spark的MR计算。 ### 8.2 常用... 阅读全文
posted @ 2018-08-27 18:27 大道至简(老徐) 阅读(544) 评论(0) 推荐(0)
摘要: ## 06、部署Spark程序到集群上运行 ### 6.1 修改程序代码 1. 修改文件加载路径 在spark集群上执行程序时,如果加载文件需要确保路径是所有节点能否访问到的路径,因此通常是hdfs路径地址。所以需要修改代码中文件加载路径为hdfs路径: ```scala ... //指定hdfs路径 sc.textFile("hdfs://mycluster... 阅读全文
posted @ 2018-08-27 18:26 大道至简(老徐) 阅读(365) 评论(0) 推荐(0)
摘要: ## 05、Spark shell连接到Spark集群执行作业 ### 5.1 Spark shell连接到Spark集群介绍 Spark shell可以连接到Spark集群,spark shell本身也是spark的一个应用,是和Spark集群的一种交互方式。每次action动作的执行,都会对应一个job。 ### 5.2 连接方式指定 ```shell #进入Spark bin目录 $... 阅读全文
posted @ 2018-08-27 18:25 大道至简(老徐) 阅读(311) 评论(0) 推荐(0)
摘要: ## 04、Spark Standalone集群搭建 ### 4.1 集群概述 独立模式是Spark集群模式之一,需要在多台节点上安装spark软件包,并分别启动master节点和worker节点。master节点是管理节点,负责和各worker节点通信,完成worker的注册与注销。worker节点是任务执行节点,通过worker节点孵化出执行器子进程来执行任务。 ### 4.2 集群规划... 阅读全文
posted @ 2018-08-27 18:24 大道至简(老徐) 阅读(882) 评论(0) 推荐(0)
摘要: ## 03、IDEA下Spark API编程 ### 3.1 编程实现Word Count #### 3.1.1 创建Scala模块 #### 3.1.2 添加maven支持,并引入spark依赖 ```xml 4.0.0 com.oldboy myspark 1.0-SNAPSHOT org.apache.spark spa... 阅读全文
posted @ 2018-08-27 18:23 大道至简(老徐) 阅读(239) 评论(0) 推荐(0)
摘要: ## 02、体验Spark shell下RDD编程 ### 1、Spark RDD介绍 RDD是Resilient Distributed Dataset,中文翻译是弹性分布式数据集。该类是Spark是核心类成员之一,是贯穿Spark编程的始终。初期阶段,我们可以把RDD看成是Java中的集合就可以了,在后面的章节中会详细讲解RDD的内部结构和工作原理。 ### 2、Spark-shell下... 阅读全文
posted @ 2018-08-27 18:23 大道至简(老徐) 阅读(519) 评论(0) 推荐(0)
摘要: ## 01、Spark安装与配置 ### 1、hadoop回顾 Hadoop是分布式计算引擎,含有四大模块,common、hdfs、mapreduce和yarn。 ### 2、并发和并行 并发通常指针对单个节点的应对多个请求的能力,是单一节点上计算能力的衡量,并行通常针对集群来讲,是利用多个节点进行分布式协同作业,我们称之为并行计算。 ### 3、Spark 快如闪电集群计算引擎,应用于大... 阅读全文
posted @ 2018-08-27 18:22 大道至简(老徐) 阅读(228) 评论(0) 推荐(0)
摘要: ## Redis### 1、介绍Redis是NoSQL中的一种,使用Key-value类型存储数据,基于内存的具有高性能数据库,可以定制持久化到磁盘的策略。支持的类型丰富多样,例如list、set、hash、zset等。读操作速度可达110,000/s,写入速度可达80,000/s。### 2、Redis安装#### 2.1 windows1. 解压redis-2.2.2-win32-win64.... 阅读全文
posted @ 2018-08-27 18:21 大道至简(老徐) 阅读(341) 评论(0) 推荐(0)
摘要: ## 01、Scala介绍与安装 ### 1.1 Scala介绍 Scala是对java语言脚本化,特点是就是使不具备脚本化的java语言能够采用脚本化方式来使用,使其具有脚本语言简单、所见即所得的特点,并且编程效率高,实现速度快等特点。在大数据领域中,Spark和Kafka这些著名的框架都是采用scala语言编写,但由于Scala的语法比较诡异,所以最开始接触scala的人会有些不适应,但是熟... 阅读全文
posted @ 2018-08-27 18:21 大道至简(老徐) 阅读(222) 评论(0) 推荐(0)
摘要: ## 推荐系统### 1、概要推荐系统时使用广泛的技术之一,尤其在电商领域中,使用非常频繁。推荐系统涉及多种专业术语和算法。### 2、数据说明#### 2.1 用户列表所有用户构成的集合,主要是用户id。 例如电影推荐中的所有观影人users.dat数据:```reactuid::性别::年龄::职业::邮编----------------------1::F::1::10::480672::M... 阅读全文
posted @ 2018-08-27 18:20 大道至简(老徐) 阅读(1122) 评论(0) 推荐(0)
摘要: ## Socket编程### 1、介绍python支持socket编程,可以使用TCP和UDP协议。同java中的socket编程相类似。### 2、tcp协议#### 2.1 服务器端服务器端绑定到指定地址,监听特定的端口,接受发来的连接请求。```python# -*-coding:utf-8-*-import socketimport threading#接收者线程class RecvThr... 阅读全文
posted @ 2018-08-27 18:19 大道至简(老徐) 阅读(199) 评论(0) 推荐(0)
摘要: ## MySQL访问### 1、介绍python访问mysql数据库,需要安装mysql的python插件。### 2、安装插件通过pip命令安装mysql插件。```python#cmd>pip install PyMySQL```### 3、编写访问代码访问本地数据库时,注意不能用**localhost**,需要使用127.0.0.1。### 3.1 查询```python# -*-codin... 阅读全文
posted @ 2018-08-27 18:19 大道至简(老徐) 阅读(168) 评论(0) 推荐(0)
摘要: ## 多线程### 1、低级API使用```python#-*-coding:utf-8-*-import threadimport time#函数def sayhello(name,age): print "%s,%d"%(name,age)#try - catchtry: thread.start_new_thread(sayhello, ("tom", 12))except Ex... 阅读全文
posted @ 2018-08-27 18:18 大道至简(老徐) 阅读(115) 评论(0) 推荐(0)
摘要: ## Python基础### 1、hello world字符串单双引号即可,'''或"""三引号也可以,通常用于多行文档原生输出。```python#双引号>>>print "hello world"#单引号>>>print 'hello world'#方法调用>>>print('hello world')>>>print("hello world")#,号结尾不换行打印>>>pr 阅读全文
posted @ 2018-08-27 18:17 大道至简(老徐) 阅读(271) 评论(0) 推荐(0)
摘要: ## Python面向对象### 1、class定义```python#定义类class Emp: pass```### 2、静态变量```pythonclass Emp: #静态变量,通过类直接访问 id = 100 #__开头的是私有属性 __age = 20#通过类直接访问print Emp.id```### 3、构造函数和实例方法#### 3.1 构造函数... 阅读全文
posted @ 2018-08-27 18:17 大道至简(老徐) 阅读(200) 评论(0) 推荐(0)
摘要: ## Python ### 1、 python介绍 Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构。 ### 2、 python特点 1. 易于学习 Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简... 阅读全文
posted @ 2018-08-27 18:16 大道至简(老徐) 阅读(360) 评论(0) 推荐(0)
摘要: ## 05、Win7上openSSH的安装与配置### 1、概述linux上的ssh命令在网络通信场景下非常方便。现在windows也支持ssh方式和远程主机进行访问。如果只是使用ssh简单的访问功能,就需要很多文章说的还需要安装cygwin之类的软件。但是有一些注意事项需要谨记。### 2、安装#### 2.1 下载安装openSSH for windows软件包选择64位版本,OpenSSH... 阅读全文
posted @ 2018-08-27 18:15 大道至简(老徐) 阅读(3484) 评论(0) 推荐(1)
摘要: ## 关于java中的hashcode和equals方法原理 ### 1、介绍 java编程思想和很多资料都会对自定义javabean要求必须重写hashcode和equals方法,但并没有清晰给出为何重写此两个方法,至少不是非常的明确。 首先要确定的一件事是并不是“必须”,估计跟中英文语言习惯有关。hashcode方法只有在和hash类型的集合(比如HashMap和HashSet)配合使用... 阅读全文
posted @ 2018-08-27 18:14 大道至简(老徐) 阅读(1754) 评论(0) 推荐(0)
摘要: ## JVM ### 1、JVM Runtime data area,运行时数据区。包含5个区域,分别为method area、heap、java stack、native method stack、program counter register。 图示如下: ![java_pro_018](http://www.it18zhang.com/images/blog/xpc_java_pr... 阅读全文
posted @ 2018-08-27 18:13 大道至简(老徐) 阅读(429) 评论(0) 推荐(0)
摘要: ## 数据结构 ### 1、描述 数据结构是指数据存储结构方式。大致上分为线性表、栈、队列、树、图。 ### 2、线性表 #### 2.1 数组 数组是连续的内存存储区。读取速度非常快。 #### 2.2 链表 链表在java中的实现是LinkedList,内部使用引用的方式来实现,集合内不同通过Node来实现,有指向上家和下家的指针,每个节点上关联了元素。列表存放了first和... 阅读全文
posted @ 2018-08-27 18:12 大道至简(老徐) 阅读(411) 评论(0) 推荐(0)
摘要: ## 大数据面试题题库### 01、hadoop部分#### 1.1 简述hadoop安装过程安装ssh,jdk,hadoop软件包,分发安装包与配置文件,hadoop集群模式有本地模式、伪分布式、完全分布式三种。启动hadoop集群。#### 1.2 列举hadoop有哪些进程,分别是什么作用?namenodedatanodesecondary namenodeResourceManagerNo... 阅读全文
posted @ 2018-08-27 18:11 大道至简(老徐) 阅读(517) 评论(0) 推荐(0)
摘要: ## IDEA下通过Git实现代码管理 ### 1、介绍 #### 1.1 Git概述 Git是类似于SVN等代码管理软件,使用分布式技术实现。Github是互联网代码仓库,每个人可以在上面创建自己的仓库,使用git完成同github仓库的代码同步等管理工作。 ```sequence IntelliJ idea->Git: 使用 Git->GitHub: 同步资源 ``` #### 1... 阅读全文
posted @ 2018-08-27 18:10 大道至简(老徐) 阅读(422) 评论(0) 推荐(0)
摘要: ## 使用QJM实现HDFS的HA配置### 1、背景hadoop 2.0.0之前,namenode存在单点故障问题(SPOF,single point of failure),如果主机或进程不可用时,整个集群就变得不可用,直到namenode进行重启或产生新的namenode。主要有两种方式会影响到HDFS集群:- 不可预期事件比如机器宕机,集群变得不可用直到操作人员重启namenode。- ... 阅读全文
posted @ 2018-08-27 18:09 大道至简(老徐) 阅读(394) 评论(0) 推荐(0)
摘要: ### 1、HDFS分布式文件系统 1. 分布式存储 2. 分布式计算 ### 2、hadoop hadoop含有四个模块,分别是 common、 hdfs和yarn。 1. common 公共模块。 2. HDFS hadoop distributed file system,hadoop分布式文件系统,负责文件的存储管理。HDFS包括Namenode进程、DataNode... 阅读全文
posted @ 2018-08-27 18:08 大道至简(老徐) 阅读(636) 评论(0) 推荐(0)