《大数据技术原理与应用》学习笔记——Ch2:大数据处理架构Hadoop
Intro本文为《大数据技术原理与应用》第二章学习笔记。
Hadoop概述“Hadoop”不是一个单一的技术,而是一系列大数据技术的结合体,是一整套解决方案的统称,可以称为一个项目。
两大核心:HDFS实现海量数据的分布式存储,MapReduce实现海量数据的分布式处理
特性:
高可靠性
高效性
高可扩展性
高容错性
成本低
运行在Linux平台上
支持多种编程语言
Hadoop生态系统
组件
功能
HDFS
分布式文件系统
MapReduce
分布式并行编程模型
YARN
资源管理和调度器
Tez
运行在YARN之上的下一代Hadoop查询处理框架
Hive
Hadoop上的数据仓库
HBase
Hadoop上的非关系型的分布式数据库
Pig
一个基于Hadoop的大规模数据分析平台,提供类似SQL的查询语言Pig Latin
Sqoop
用于在Hadoop与传统数据库之间进行数据传递
Oozie
Hadoop上的工作流管理系统
Zookeeper
提供分布式协调一致性服务
Storm
流计算框架
Flume
一个高可用的, ...
论文精读笔记——Unsupervised Clickstream Clustering for User Behavior Analysis Courses
Intro在阅读完《ViSeq: Visual Analytics of Learning Sequence in Massive Open Online Courses》后觉得里面的参考文献[27]似乎更有帮助,于是精读了这篇文章:《Unsupervised Clickstream Clustering for User Behavior Analysis》,作以下笔记。
Unsupervised Clickstream Clustering for User Behavior AnalysisABSTRACT面向通用的在线服务(社交网络或众包服务),了解用户行为。
研究面向用户行为分析的无监督点击流聚类,建立了一个无监督的系统,从点击流数据(用户点击事件的痕迹)中捕捉用户行为,并以直观的方式可视化检测到的行为,通过划分相似图来识别相似用户的集群。
相似图上的分区(也就是聚类过程)利用迭代特征剪枝算法(iterative feature pruning)来捕捉用户集群中的自然层次结构,产生直观的特征便于可视化和理解。
INTRODUCTIONClickstreams:用户操作生成的带 ...
论文精读笔记——ViSeq:Visual Analytics of Learning Sequence in Massive Open Online Courses
Intro为了借鉴《ViSeq: Visual Analytics of Learning Sequence in Massive Open Online Courses》中3.1中的相似度计算方法,精读了这一篇文章,作以下笔记,笔记内容偏向关注文章中和相似度计算有关的部分,另外还简略看了一下关系度较高的两篇参考文献,也作了一点记录。
ViSeq: Visual Analytics of Learning Sequence in Massive Open Online CoursesAbstract背景:由于更多的工作只研究aggregated events而不关注sequence of learning activities
ViSeq:可视化的分析系统,实现不同学习群体学习序列的可视化,更好地理解学习行为背后的原因
ViSeq包含四个链接视图:用于识别学习者分组的投影视图(projection view)、用于显示某个选定的学习者群体内整体序列模式的模式视图(pattern view)、用于说明连续事件之间转换的序列视图(sequence view)、带有扩展序列链的用来比较选中的 ...
Spark2.4.6安装教程
Intro本文大部分内容转载于Spark安装和编程实践(Spark2.4.0),另附上一点本人安装过程中的记录,以备参考。
安装 Spark2.4首先需要下载Spark安装文件。推荐下载地址:清华源和华科源,原文是下载Spark2.4.0,但目前已经更新到2.4.6了,所以就选择spark-2.4.6-bin-without-hadoop.tgz下载即可。
本教程的具体运行环境如下:
Hadoop 3.1.3
Java JDK 1.8
Spark 2.4.0
Hadoop和Java JDK的安装参照Hadoop3.1.3安装教程:单机&伪分布式配置。
安装Spark(Local模式)1234sudo tar -zxf ~/下载/spark-2.4.0-bin-without-hadoop.tgz -C /usr/local/cd /usr/localsudo mv ./spark-2.4.0-bin-without-hadoop/ ./sparksudo chown -R hadoop:hadoop ./spark # 此处的 hadoop 为你的用户名
...
Hadoop3.1.3安装教程:单机&伪分布式配置
Intro当开始着手实践 Hadoop 时,安装 Hadoop 就是第一步。感谢林子雨教授实验室提供的Hadoop系列完整教程,让我不再纠结各种博客里的差错。本文相当于转发一下系列教程中的Hadoop3.1.3安装教程_单机/伪分布式配置_Hadoop3.1.3/Ubuntu18.04(16.04),再附上一点本人安装过程中的记录,以备参考。
环境原教程使用 Ubuntu 18.04 64位 作为系统环境,本人使用 Ubuntu 20.04 64位,两个环境在操作过程中无差异。
创建hadoop用户如果安装 Ubuntu 的时候不是用的 “hadoop” 用户(一般肯定不是),那么需要增加一个名为 hadoop 的用户,在终端输入:
1sudo useradd -m hadoop -s /bin/bash
这条命令创建了可以登陆的 hadoop 用户,并使用 /bin/bash 作为 shell。
接着使用如下命令设置密码,按提示输入两次密码:
1sudo passwd hadoop
可为 hadoop 用户增加管理员权限,方便部署,避免一些比较棘手的权限问题:
1sudo addus ...
Java学习笔记(一)——杂七杂八的tips
Intro前几天突然接到一个用Java复现Python代码的活,把我这个Java零基础的人折磨得要命。借此契机入门Java的同时也先记一下某一些特定的tips,方便以后查阅吧。
四舍五入12int start = (int)Math.round(Float.parseFloat(start_video_locations.get(index2).toString()))//start_video_locations为Object类型的变量
List的去重1List course_ids = (List) course_ids_col.stream().distinct().collect(Collectors.toList());
List的排序1Collections.sort(list_name);
获取list长度1int list_length = list.size();
object类型的小数转成double12double score = Double.valueOf(String.valueOf(ques_df.row(0).get(3)));//这里q ...
在终端以命令行形式编译带第三方jar包的Java程序
eclipse爬
背景:在一个.java文件里import了一个第三方包,然后从网上下载了它的.jar文件。不管.java文件和.jar文件放在什么地方,以下命令皆适用:
12javac -cp package_name.jar class_name.javajava -cp .:package_name.jar class_name
注:
-cp和-classpath是一样的功能,-cp是简写。
若两个文件不在同一个地方,记得视终端所在位置而定是否需要写上.jar或.java文件的绝对路径。
java命令中的.代表当前路径(这里假设终端在.java文件处打开),而冒号:(假设为Linux系统,Windows系统改为分号;)表示多个路径之间的间隔,在引用多个.jar包和.jar包与主程序生成的.class时必须用到。
参考文章:java -cp -classpath 引用多个jar的方法
用apt方式在Ubuntu中直接安装Sublime Text
由于apt与Ubuntu的绝配,Sublime Text官方提供了一种懒人专用的安装方法:官方文档,apt-get之后就不用再去设置什么路径。其余Linux版本也可以参考文档里后面的内容。
注意:去过 https://download.sublimetext.com/ 这个网址下载过安装包的应该都知道下载速度奇慢无比,建议在科学上网环境下进行以下操作,最后apt下载的是一个大概9M大小的归档。
安装步骤:
123456789101112131415# 安装GPG密钥:wget -qO - https://download.sublimetext.com/sublimehq-pub.gpg | sudo apt-key add -# 确保apt设置为使用https源sudo apt-get install apt-transport-https# 选择要使用的版本(以下两个二选一)# 稳定版echo "deb https://download.sublimetext.com/ apt/stable/" | sudo tee /etc/apt/sources.list. ...
大数据技术综述
1 大数据概述1.1 定义巨量数据集合,指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。
1.2 特征(4V)
Volume:数据的超大规模
Variety:数据来源多样性与异构性
Velocity:数据的高处理速度
Value:数据价值密度低
1.3 大数据思维
要相关,不要因果。大数据时代认为没有必要非得知道现象背后的原因,而是要让数据自己“发声”。
要全体,不要抽样。大数据时代认为要分析与某事物相关的所有数据,而非少量的数据样本。
要效率,允许不精确,要注重效率,而不再追求精确。
2 大数据技术体系
图片来源
2.1 数据来源
参考文章1参考文章2
2.1.1 结构化数据结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据。一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。
结构化数据的存储和排列很有规律,便于查询和修改等操作,但扩展性不高。
2.1.2 半结构化数据半结构化数据是结构化数据的一种形式,它并 ...
Pyclustering模块中K-Medoids算法和Elbow(肘部)法则的应用
Introduction最近在做数据分析相关研究时需要用到K-Medoids算法对数据进行聚类,然后在平时常用的Python的sklearn.cluster库模块中没有找到这个算法函数,于是想着找一下别的库。首先是发现了一位研究数据分析的博主的一份笔记:K-medoids聚类算法原理简介&Python与R的实现,在文末评论里他提到博文中用的pyclust模块不维护了,然后推荐了pyclustering模块和其参考文档。为加深自己的理解,特此对文档做一份学习笔记。
K-Medoids文档渣翻与应用pyclustering.cluster.kmedoids.kmedoids:一个用于表征K-Medoids算法的类
公共类成员函数1234567891011121314151617def __init__ (self, data, initial_index_medoids, tolerance=0.001, ccore=True, kwargs)# K-Medoids聚类算法的构造初始化def process (self)# 根据K-Medoids算法的规则进行聚类分析def pre ...