《大数据技术原理与应用》学习笔记——Ch4:分布式数据库HBase
Intro本文为《大数据技术原理与应用》第四章学习笔记。
HBase安装和编程实践指南
HBase简介HBase是一个高可靠、高性能、面向列、可伸缩的分布式数据库,是BigTable的一个开源实现,主要用来存储非结构化和半结构化的松散数据。
HBase和BigTable的底层技术对应关系:
BigTable
HBase
文件存储系统
GFS
HDFS
海量数据处理
MapReduce
Hadoop MapReduce
协同服务管理
Chubby
Zookeeper
在已有Hadoop和HDFS的情况下为什么需要HBase:
Hadoop无法满足大规模数据实时处理应用的需求
HDFS面向批量访问模式,不是随机访问模式
传统的通用关系型数据库无法应对在数据规模剧增时导致的系统扩展性和性能问题(分库分表也不能很好解决)
传统关系数据库在数据结构变化时一般需要停机维护
空列浪费存储空间
HBase与传统关系数据库的对比分析
HBase
关系型数据库
数据类型
采用了更加简单的数据模型,它把数据存储为未经解释的字符串
采用关系模型,具有丰富的数据类型和存储 ...
论文投稿反馈意见总结——SIGCSE_2021_paper_206
总评审优点:
话题与SIGCSE非常相关
数据集相当大
分析很好地呈现出来
将视频观看行为编码为字符串是一种有趣的方法
视觉效果非常简洁
缺点:
文章像一篇应用机器学习进行的项目报告
结果&讨论部分较多不足之处。在Programming1和Programming2课中没有full participation learners,原文的意思是利用轮廓系数确定的K值是2,所以没有这类学习者,但是过于牵强,应该是由于课程差异很大而导致的可能同一聚类方法不能应用于不同的课程。
4门特殊课程的选择过程没讲清楚
建议:
展示一些创造性的新应用技术
进行一些实验,以证明该工作在现有工作的基础上有所改进
比较并替代现有技术
评分
评分项
审1
审2
审3
有理论基础
2
1
3
有一个或多个研究问题
3
2
3
研究问题有基于相关的前期工作
2
2
3
工作解决了研究问题
2
2
3
文章提供了足够的细节来支撑对研究结果的复现
1
3
3
文章中描述的过程/方法是回答研究问题的有效方法
2
2
2
贡献描述清楚。(若是新项目,)介绍了超出先前工作的贡献。( ...
论文精读笔记——Achievable Rate Maximization by Passive Intelligent Mirrors
Intro多媒体通信课堂报告,选取ICASSP2018中的Achievable Rate Maximization by Passive Intelligent Mirrors一文。
ABSTRACT使用Passive Intelligent Mirrors(PIM,无源智能反射镜)来操作多用户MISO下行链路通信。
设计transmit powers(传输功率)和mirror reflection coefficient(镜像反射系数):保证移动用户的个人Quality of Service(QoS)需求的前提下,使sum-rate(和速率)最大化。
问题特点:non-convex(非凸)
solution:alternating maximization(交替极大化)与majorization-minimization算法(优化极小化算法)相结合。
merit:在不需要额外的能量消耗的情况下,system throughput(系统吞吐量)至少提高了40%。
1. INTRODUCTION无线设备数量直奔500亿(50 billions)
对蜂窝网络的要求:
比现有网络高1000 ...
Leetcode刷题——动态规划专题
参考刷题指南labuladong动态规划系列
动态规划答疑
子序列子序列问题解题模板参考labuladong教程:子序列解题模板
思路1:一个一维的 dp 数组在子数组array[0..i]中,以array[i]结尾的目标子序列的长度是dp[i]。
思路2:一个二维的 dp 数组思路2.1:涉及两个字符串/数组时在子数组arr1[0..i]和子数组arr2[0..j]中,我们要求的子序列长度为dp[i][j]。
思路2.2:只涉及一个字符串/数组时在子数组array[i..j]中,我们要求的子序列(最长回文子序列)的长度为dp[i][j]。
300. 最长递增子序列参考labuladong教程:从最长递增子序列学会如何推状态转移方程
**dp[i]**: 表示以 nums[i] 这个数结尾的最长递增子序列的长度。
base case:所有dp[i]的 初始值均为 1,因为以 nums[i] 结尾的最长递增子序列起码要包含它自己。
状态转移关系:nums[i] = x,既然是递增子序列,我们只要找到前面那些结尾比 x 小的子序列,然后把 x 接到最后,就可以形成一个新的递增子序列,而 ...
HBase1.4.13完全分布式安装
版本选择首先check版本要求!否则后续会遇到难以预料的“惊喜”。以下截图为2020年9月信息,可能随时更新,最新信息自行查询官网标准。
JDK版本:
Hadoop版本:
本机已安装Hadoop2.7.7&JDK1.8,于是选择HBase-1.4.x进行安装。从镜像源中下载hbase-1.4.13-bin.tar.gz。
HBase1.4.13安装先用scp从网关把压缩包传到Master服务器上:
1scp hbase-1.4.13-bin.tar.gz lpj@cpu-node0:/home/lpj/
解压并重命名:
12tar -zxf hbase-1.4.13-bin.tar.gz -C /home/lpj/mv hbase-1.4.13 hbase1.4
配置环境变量,将hbase下的bin目录添加到path中,这样,启动hbase就无需到/usr/local/hbase目录下,大大地方便了hbase的使用。编辑~/.bashrc文件,先前在安装Hadoop时已经引入过PATH,直接在export PATH这行追加/home/lpj/hbase1.4/bin,这里的 ...
ZooKeeper3.4.14完全分布式安装
ZooKeeper版本的选择与下载在HBase文档里有这一句话:
然后在ZooKeeper的下载镜像源里说道:
为了求稳&参照实验室前人装了3.4.14的经验,下载了zookeeper-3.4.14.tar.gz这个包。然后用MobaXterm的Sftp传到网关,再用scp传到Master服务器:
1scp zookeeper-3.4.14.tar.gz lpj@cpu-node0:/home/lpj/
解压并重命名:
12tar -zxf zookeeper-3.4.14.tar.gz -C /home/lpj/mv zookeeper-3.4.14 zookeeper3.4
ZooKeeper配置首先在zookeeper文件夹里新建两个文件夹:
12mkdir zkdata # 数据mkdir zkdatalog # 日志
然后进入到zookeeper的conf目录下,把zoo_sample.cfg复制一份命名为zoo.cfg,用来做配置文件:
12cd /home/lpj/zookeeper3.4/conf/cp zoo_sample.cfg zoo.cfg
...
Leetcode刷题——哈希表&nSum专题
参考刷题指南GitHub-CyC2018/Leetcode题解之哈希表
1. 两数之和暴力遍历法:
123456789101112class Solution { public int[] twoSum(int[] nums, int target) { for(int i=0;i<nums.length;i++){ for(int j=i+1;j<nums.length;j++){ if(nums[i]+nums[j]==target){ return new int[]{i,j}; } } } return new int[]{}; }}
哈希表法,令元素值作为key映射到相应的作为value的索引,当元素值这个key存在且不是num[i] ...
《大数据技术原理与应用》学习笔记——Ch3:分布式文件系统HDFS
Intro本文为《大数据技术原理与应用》第三章学习笔记。
HDFS编程实践参考教程
HDFS简介Hadoop分布式文件系统(Hadoop Distributed File System,HDFS),大数据平台两大核心技术之一,为了解决海量数据的分布式存储问题。
计算机集群结构
分布式文件系统的结构分布式文件系统在物理结构上是由计算机集群中的多个节点构成的,这些节点分为两类,一类叫“主节点”(Master Node)或者也被称为“名称结点”(NameNode),另 一类叫“从节点”(Slave Node)或者也被称为“数据节点”(DataNode)。
主节点:数据目录(元数据)服务。负责文件和目录的创建、删除和重命名等,同时管理数据节点和文件块的映射关系。
从节点:完成数据存储任务。负责数据的存储和读取。
存储:由NameNode分配存储位置,然后由客户端把数据直接写入相应DataNode。
读取:客户端从NameNode中获得数据节点和文件块的映射关系,然后到相应位置访问文件块。
通常采用多副本存储:文件块被复制为多个副本存储在不同节点上,且存储同一文件块的不同副本的各个节点分布 ...
Leetcode刷题——链表专题
参考刷题指南GitHub-CyC2018/Leetcode题解之链表
160. 相交链表超高复杂度的暴力遍历:
123456789101112131415161718public class Solution { public ListNode getIntersectionNode(ListNode headA, ListNode headB) { if (headA == null || headB == null) return null; ListNode B = headB; while (headA != null){ while (headB !=null){ if (headA == headB) return headA; else headB = headB.next; } headA = headA.next; headB ...
Hadoop2.7.7完全分布式安装:1台Master+1台Slave
Intro进入实验室后有了更多可用服务器的条件,参照Hadoop集群安装配置教程_Hadoop3.1.3_Ubuntu进行了一下真正的Hadoop集群的安装部署。基本步骤参照教程,但基于自己实验室里条件有不少改动的地方。
首先基于实验室原有Hadoop平台,把实验对象从Hadoop3.1.3改成了Hadoop2.7.7。
Overview摘抄自林子雨老师的教程:
当Hadoop采用分布式模式部署和运行时,存储采用分布式文件系统HDFS,而且,HDFS的名称节点和数据节点位于不同机器上。这时,数据就可以分布到多个节点上,不同数据节点上的数据计算可以并行执行,这时的MapReduce分布式计算能力才能真正发挥作用。为了降低分布式模式部署难度,本教程简单使用两个节点(两台物理机器)来搭建集群环境,一台机器作为 Master节点,局域网IP地址为x.x.x.x,另一台机器作为 Slave 节点,局域网 IP 地址为x.x.x.y。由三个以上节点构成的集群,也可以采用类似的方法完成安装部署。Hadoop 集群的安装配置大致包括以下步骤:(1)步骤1:选定一台机器作为 Master;(2)步骤2 ...