- 浏览: 80118 次
- 性别:
- 来自: 成都
文章列表
数据快递员-Sqoop
- 博客分类:
- Hadoop
Hadoop目前来讲,多数还是应用于处理线下数据,其处理的数据来源大多还是传统的关系型数据库,在这种应用场景下,Hadoop平台类似于一个数据处理工厂,输入是原材料(原始数据),而输出是生产的产品(分析或挖掘后的数据)。由谁来运输原材料和产品呢,我们可以自建车队,自定义物流系统,但是有这么一家优质的快递公司-Sqoop提供了物流服务,而且是免费的(开源),怎能不用之?所以,这篇文章主要介绍Sqoop的基本原理和相关用法。
Sqoop是一个开源工具,它允许用户将数据从关系型数据库抽取到Hadoop中,用于进一步的处理。抽取出的数据可以被MapReduce程序使用,也可以被其他类似 ...
由于搜索引擎的泛滥,网络爬虫如今已经成为全球互联网的一大公害。除了专门做搜索的Google,Yahoo,微软,百度以外,几乎每个大型门户网站都有自己的搜索引擎,搜狐,腾讯,网易。再加上十分流氓的社区搜索奇虎等等,国 ...
java.util.concurrent介绍
- 博客分类:
- JAVA高级
java.util.concurrent 包含许多线程安全、测试良好、高性能的并发构建块。不客气地说,创建 java.util.concurrent 的目的就是要实现 Collection 框架对数据结构所执行的并发操作。通过提供一组可靠的、高性能并发构建块,开发人员可以 ...
JAVA继承后的初始化顺序
- 博客分类:
- JAVA基础
JAVA继承后的初始化顺序是一个考点,其初始化顺序如下所示:
(1)将父类的静态变量初始化
(2)将子类的静态变量初始化
(3)将父类的属性初始化
(4)执行父类的构造方法
(5)将子类的属性初始化
(6)执行子类的构造方法
宏和inline的区别?
1. inline函数和宏都是在程序出现的地方展开,不是通过函数调用实现的。
2. 宏展开的时间和inline函数不同,inline函数是在编译期间完成展开,宏是在预编译间展开,如果从宏观上看,可以认为是在编译期间展开。
3. inline函数可以在编译期间要对参数类型进行检测,宏不进行检测
4. inline可以不展开,宏一定要展开。因为inline指示对编译器来说,只是一个建议,编译器可以选择忽略该建议,不对该函数进行展开。
5. inline可以有正规的返回值,宏不行。
一、红黑树介绍
红黑树由Rudolf Bayer于1972年发明,当时被称为平衡二叉B树(symmetric binary B-trees),1978年被Leonidas J. Guibas 和 Robert Sedgewick改成一个比较摩登的名字:红黑树。
二、红黑树与AVL树比较
红黑树AVL树类似,都是在进行插入和删除操作时通过特定操作保持二叉查找树的平衡,从而获得较高的查找性能。自从红黑树出来后,AVL树就被放到了博物馆里,据说是红黑树有更好的效率,更高的统计性能。 红黑树和AVL树的区别:红黑树使用颜色来标识结点的高度,它所追求的是局部平衡而不是AV ...
(1)什么事UML,分为哪两类?
答:统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言。
统一建模语言 (UML)是非专利的第三代建模和规约语言。 UML是在开发阶段,说明,可视化,构建和书写一个面向对象软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。 UML图分为两类:
静态图:是描述对象之间可能存在的关系的种类,以 ...
JAVA笔试题套题(2)
- 博客分类:
- 笔试题
1. 输出1234567*(2^987654321)的后10位数
答案是(1234567*(2^987654321))%(10^10).关键是怎么算出这个数利用取模操作。取模满足分配率:(a*b)%c=((a%c)*(b%c))%c可将2^987654321分为2^m*2^m*...*2^n(m>=n).
2. Java中ArrayList中插入一个元素的平均复杂度是多少?
O(1). 回答得不好。可见数据结构:线性表/数组那一节。
面完马上又打进来一个,还是那边的人,不过是另一个。可能是协调的问题,两个人同时对我进行二面。
1. 两个集合,怎么求交集?
...
位图法定义
所谓bitmap,就是用每一位来存放某种状态,适用于大规模数据,但数据状态又不是很多的情况。通常是用来判断某个数据存不存在的。
例如,要判断一千万个人的状态,每个人只有两种状态:男人,女人,可以用0,1表示。那么就可以开一个int数组,一个int有32个位,就可以表示32个人。操作的时候可以使用位操作。
位图法应用
一、给40亿个不重复的unsigned int的整数,没排过序的,然后再给一个数,如何快速判断这个数是否在那40亿个数当中
申请512M的内存
一个bit位代表一个unsigned int值
读入40亿个数,设置 ...
触发器 触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由个事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。
触发器可以查询其他表,而且可以包含复杂的 SQL 语句。它们主要用于强制服从复杂的业务规则或要求。例如,您可以根据客户当前的帐户状态,控制是否允许插入新订单。
触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。 ...
找出单链表的中间元素
- 博客分类:
- 算法
算法思想:使用两个指针first和second,只是first每次走一步,second每次走两步,这样当second达到链表尾部时,first刚好在链表的中间。
static Link GetMiddleOne(Link head) {
Link first = head;
Link second = head;
while (first != null && first.Next != null) {
first = first.Next.Next;
second = second.Next;
}
return second;
...
找出单链表的倒数第n个元素
- 博客分类:
- 算法
这道题目有两种算法,但无论哪种算法,都要考虑单链表少于n个元素的情况。这里假设要寻找倒数第4个元素。 第1种算法,建立两个指针,第一个先走4步,然后第2个指针也开始走,两个指针步伐(前进速度)一致。
static Link GetLast4thOne(Link head) {
Link first = head;
Link second = head;
for (int i = 0; i < 4; i++) {
if (first.Next == null) throw new Exception("Less than 4 element ...
这道题目有两种算法,既然是要反转,那么肯定是要破坏原有的数据结构的: 算法:我们需要额外的两个变量来存储当前节点curr的下一个节点next、再下一个节点nextnext:
public static Link ReverseLink1(Link head)
{
Link curr = head.Next;
Link next = null;
Link nextnext = null; //if no elements or only one element exists
if (curr == null || curr.Next == null) {
re ...
线程的阻塞
为了解决对共享存储区的访问冲突,Java 引入了同步机制,现在让我们来考察多个线程对共享资源的访问,显然同步机制已经不够了,因为在任意时刻所要求的资源不一定已经准备好了被访问,反过来,同一 ...