Hi

2020年3月24日 | 标签:
热度:

好吧,又找了一个空间,恢复了。。。

也升级到了最新的,然后发现后台写文章这里好陌生。。。

AD:老薛主机

优惠码:

all15off 终身15%折扣

wangnet 首次25%折扣

2016年10月12日 | 标签: ,
热度:

第一、Linux VPS系统准备

在写这篇文章之前,老左个人建议在搬瓦工VPS购买机器比较划算,年付9.99美元的512MB方案速度还是比较快的(具体方案参考)。系统环境安装的是centos 5 32位。

第二、检测系统XFCE版本

yum grouplist

检查XFCE版本

看到上图中,我们检测到版本是4.4的,一般都是这个版本。

第三、安装XFCE 4.4版本

yum groupinstall xfce-4.4

在安装过程中会出现两次”Is this ok [y/n]“我们只需要输入y且回车就可以。

第四、安装VNC桌面系统

yum install vnc vnc-server

同样的,在过程中有一次我们看到”Is this ok [y/n]“我们只需要输入y且回车就可以。

第五、配置VNC系统及分辨率

vi /etc/sysconfig/vncservers

然后在内容中添加

VNCSERVERS=”1:root”
VNCSERVERARGS[1]=”-geometry 1024×768″

上面的分辨率可以根据我们自己的需要修改,比如可以改成800×600等。

第六、设置VNC密码

vncpasswd

输入命令之后会提示让我们输入VNC密码,输入密码的时候我们是看不到字符的,一定要看好,输入一次之后回车,然后还需要输入一次。

第七、启动VNC系统环境

vncserver

第八、修改xstartup配置文件

vi /root/.vnc/xstartup

我们可以用VI修改文件,也可以用WinSCP这类FTP工具直接下载修改后替换,所有的内容都替换成下面的内容。

#!/bin/sh
# Uncomment the following two lines for normal desktop:
unset SESSION_MANAGER
#exec /etc/X11/xinit/xinitrc
[ -x /etc/vnc/xstartup ] && exec /etc/vnc/xstartup
[ -r $HOME/.Xresources ] && xrdb $HOME/.Xresources
xsetroot -solid grey
vncconfig -iconic &
#xterm -geometry 80×24+10+10 -ls -title “$VNCDESKTOP Desktop”&
#twm &
startxfce4 &

第九、设置权限以及重启VNC/设置开机启动

chmod +x ~/.vnc/xstartup
service vncserver restart
chkconfig vncserver on

第十、安装FireFox浏览器以及支持简体中文设置

在上面的进程中,是没有安装浏览器的,虽然VNC自带也有浏览器工具但是感觉不是太好用。我们还是比较喜欢使用FIREFOX火狐浏览器之类的工具,这样便于我们在机器上操作项目。其次,如果我们访问中文站点时候会出现乱码,所以我们还需要安装组件支持简体中文语言的。

yum -y install firefox
yum -y install fonts-chinese

上面的2条命令就是安装浏览器以及添加支持简体中文组件的功能,这样我们所有的VNC+XFCE就安装完毕。我们可以通过VNC工具来连接。

附 – 连接测试

A – 使用vncviewer连接工具登录

vncviewer连接工具

这个我们应该比较会使用,用我们的VPS IP地址:1就可以登录,点击确定。

VNC连接密码

这里的密码是我们上面第六步的密码。然后我们就可以看到桌面环境。

B -VNC+XFCE桌面及浏览器

VNC打开浏览器

我们可以看到安装好的FIREFOX火狐浏览器,我们打开看看是否可以使用。

xfce打开网站

感觉还不错吧。

总结,以上的Linux VPS(CentOS)安装VNC+XFCE可视化桌面环境教程,老左已经测试过可以实现,如果有需要安装的朋友依据对应的系统环境版本安装,如果有出现问题可以给我留言一起探讨解决问题。

本文转载自: http://www.laozuo.org/2912.html

2015年4月30日 | 标签:
热度:

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢!

怎么能快速地掌握Python?这是和朋友闲聊时谈起的问题。

Python包含的内容很多,加上各种标准库、拓展库,乱花渐欲迷人眼。我一直希望写一个快速的、容易上手的Python教程,而且言语简洁,循序渐进,让没有背景的读者也可以从基础开始学习。我将在每一篇中专注于一个小的概念,希望在闲暇时可以很快读完。
小提醒

  1. 教程将专注于Python基础,语法基于Python 2.7 (我会提醒Python 3.x中有变化的地方,以方便读者适应3.X的情况)。测试环境为Linux。标准库的一些包不适用于Windows平台。如果文中的程序无法在你的平台上运行,欢迎讨论。
  2. 我将专注于Python的主干,以便读者能以最快时间对Python形成概念。
  3. Linux命令行将以$开始,比如 $ls, $python
  4. Python命令行将以>>>开始,比如 >>>print ‘Hello World!’
  5. 注释会以#开始

建议

  • 将教程中的命令敲到Python中看看效果。
  • 看过教程之后,可以进行一些练习。
  • 参与文章评论区的讨论,可以更好的积累经验。

你可以在“实验楼”通过在线环境学习本教程:

http://www.shiyanlou.com/courses/214

Python基础

Python基础01 Hello World!

Python基础02 基本数据类型

Python基础03 序列

Python基础04 运算

Python基础05 缩进和选择

Python基础06 循环

Python基础07 函数

Python基础08 面向对象的基本概念

Python基础09 面向对象的进一步拓展

Python基础10 反过头来看看

Python进阶

Python进阶01 词典

Python进阶02 文本文件的输入输出

Python进阶03 模块

Python进阶04 函数的参数传递

Python进阶05 循环设计

Python进阶06 循环对象

Python进阶07 函数对象

Python进阶08 错误处理

Python进阶09 动态类型

Python深入

到现在为止,Python学习已经可以告一段落。下面的部分,我想讨论Python的高级语法和底层实现。这一部分的内容并不是使用Python所必须的。但如果你想从事一些大型的Python开发(比如制作Python工具、写一个框架等),你会希望对这一部分内容有所的了解。

Python深入01 特殊方法与多范式

Python深入02 上下文管理器

Python深入03 对象的属性

Python深入04 闭包

Python深入05 装饰器

Python补充

Python补充01 序列的方法

Python补充02 Python小技巧

Python补充03 Python内置函数清单

Python补充04 Python简史

Python补充05 字符串格式化 (%操作符)

Python补充06 Python之道

Python标准库

Python标准库的重要性在于:

  • 标准库是Python的一个组成部分。
  • Python的哲学是一个问题只有一个最好的解决方法。这些标准库为许多问题提供了一个标准的解决方案。

Python标准库——走马观花

Python标准库的学习准备

Python标准库01 正则表达式 (re包)

Python标准库02 时间与日期 (time, datetime包)

Python标准库03 路径与文件 (os.path包, glob包)

Python标准库04 文件管理 (部分os包,shutil包)

Python标准库05 存储对象 (pickle包,cPickle包)

Python标准库06 子进程 (subprocess包)

Python标准库07 信号 (signal包)

Python标准库08 多线程与同步 (threading包)

Python标准库09 进程信息 (部分os包)

Python标准库10 多进程初步 (multiprocessing包)

Python标准库11 多进程探索 (multiprocessing包)

Python标准库12 数学与随机数 (math包,random包)

Python标准库13 循环器 (itertools)

Python标准库14 数据库 (sqlite3)

Python标准库的学习的主要难度在于,需要一定的其它领域的基础知识。可参考:

Linux概念与体系

下面是Python标准库中,网络相关的内容。Python在网络方面有很多应用,无论是作为服务器,还是做爬虫。Python自身的语法简单,可读性高,有强大的脚本功能。这些让Python的开发者可以迅速开发出优秀网络产品。

Python网络01 原始Python服务器

Python网络02 Python服务器进化

Python网络应用也需要网络协议的相关知识。可参考:

协议森林

被解放的姜戈

Django是Python最有代表性的一个网络框架。使用Django,可以方便的实现一个功能全面、管理简便的网站或App后端。这里从实用的角度出发,介绍如何使用Django框架。

被解放的姜戈01 初试天涯

被解放的姜戈02 庄园疑云

被解放的姜戈03 所谓伊人

被解放的姜戈04 各取所需

被解放的姜戈05 黑面管家

被解放的姜戈06 假作真时

被解放的姜戈07 马不停蹄

Python快速教程 尾声

参考资料

参考书以及介绍
见豆列: http://book.douban.com/doulist/1619790/

2014年8月19日 | 标签:
热度:

大数据是一个含义广泛的术语,是指数据集,如此庞大而复杂的,他们需要专门设计的硬件和软件工具进行处理。该数据集通常是万亿或EB的大小。这些数据集收集自各种各样的来源:传感器,气候信息,公开的信息,如杂志,报纸,文章。大数据产生的其他例子包括购买交易记录,网络日志,病历,军事监控,视频和图像档案,及大型电子商务。

在大数据和大数据分析,他们对企业的影响有一个兴趣高涨。大数据分析是研究大量的数据的过程中寻找模式,相关性和其他有用的信息,可以帮助企业更好地适应变化,并做出更明智的决策。

一、Hadoop

Hadoop 是一个能够对大量数据进行分布式处理的软件框架。但是 Hadoop 是以一种可靠、高效、可伸缩的方式进行处理的。Hadoop 是可靠的,因为它假设计算元素和存储会失败,因此它维护多个工作数据副本,确保能够针对失败的节点重新分布处理。Hadoop 是高效的,因为它以并行的方式工作,通过并行处理加快处理速度。Hadoop 还是可伸缩的,能够处理 PB 级数据。此外,Hadoop 依赖于社区服务器,因此它的成本比较低,任何人都可以使用。

Hadoop是一个能够让用户轻松架构和使用的分布式计算平台。用户可以轻松地在Hadoop上开发和运行处理海量数据的应用程序。它主要有以下几个优点:

⒈高可靠性。Hadoop按位存储和处理数据的能力值得人们信赖。

⒉高扩展性。Hadoop是在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以千计的节点中。

⒊高效性。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。

⒋高容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。

Hadoop带有用 Java 语言编写的框架,因此运行在 Linux 生产平台上是非常理想的。Hadoop 上的应用程序也可以使用其他语言编写,比如 C++。

二、HPCC

HPCC,High Performance Computing and Communications(高性能计算与通信)的缩写。1993年,由美国科学、工程、技术联邦协调理事会向国会提交了“重大挑战项目:高性能计算与 通信”的报告,也就是被称为HPCC计划的报告,即美国总统科学战略项目,其目的是通过加强研究与开发解决一批重要的科学与技术挑战问题。HPCC是美国 实施信息高速公路而上实施的计划,该计划的实施将耗资百亿美元,其主要目标要达到:开发可扩展的计算系统及相关软件,以支持太位级网络传输性能,开发千兆 比特网络技术,扩展研究和教育机构及网络连接能力。

该项目主要由五部分组成:

1、高性能计算机系统(HPCS),内容包括今后几代计算机系统的研究、系统设计工具、先进的典型系统及原有系统的评价等;

2、先进软件技术与算法(ASTA),内容有巨大挑战问题的软件支撑、新算法设计、软件分支与工具、计算计算及高性能计算研究中心等;

3、国家科研与教育网格(NREN),内容有中接站及10亿位级传输的研究与开发;

4、基本研究与人类资源(BRHR),内容有基础研究、培训、教育及课程教材,被设计通过奖励调查者-开始的,长期 的调查在可升级的高性能计算中来增加创新意识流,通过提高教育和高性能的计算训练和通信来加大熟练的和训练有素的人员的联营,和来提供必需的基础架构来支 持这些调查和研究活动;

5、信息基础结构技术和应用(IITA ),目的在于保证美国在先进信息技术开发方面的领先地位。

三、Storm

Storm是自由的开源软件,一个分布式的、容错的实时计算系统。Storm可以非常可靠的处理庞大的数据流,用于处理Hadoop的批量数据。Storm很简单,支持许多种编程语言,使用起来非常有趣。Storm由Twitter开源而来,其它知名的应用企业包括Groupon、淘宝、支付宝、阿里巴巴、乐元素、 Admaster等等。

Storm有许多应用领域:实时分析、在线机器学习、不停顿的计算、分布式RPC(远过程调用协议,一种通过网络从远程计算机程序上请求服务)、 ETL(Extraction-Transformation-Loading的缩写,即数据抽取、转换和加载)等等。Storm的处理速度惊人:经测 试,每个节点每秒钟可以处理100万个数据元组。Storm是可扩展、容错,很容易设置和操作。

四、Apache Drill

为了帮助企业用户寻找更为有效、加快Hadoop数据查询的方法,Apache软件基金会近日发起了一项名为“Drill”的开源项目。Apache Drill 实现了 Google’s Dremel.

据Hadoop厂商MapR Technologies公司产品经理Tomer Shiran介绍,“Drill”已经作为Apache孵化器项目来运作,将面向全球软件工程师持续推广。

该项目将会创建出开源版本的谷歌Dremel Hadoop工具(谷歌使用该工具来为Hadoop数据分析工具的互联网应用提速)。而“Drill”将有助于Hadoop用户实现更快查询海量数据集的目的。

“Drill”项目其实也是从谷歌的Dremel项目中获得灵感:该项目帮助谷歌实现海量数据集的分析处理,包括分析抓取Web文档、跟踪安装在Android Market上的应用程序数据、分析垃圾邮件、分析谷歌分布式构建系统上的测试结果等等。

通过开发“Drill”Apache开源项目,组织机构将有望建立Drill所属的API接口和灵活强大的体系架构,从而帮助支持广泛的数据源、数据格式和查询语言。

五、RapidMiner

RapidMiner是世界领先的数据挖掘解决方案,在一个非常大的程度上有着先进技术。它数据挖掘任务涉及范围广泛,包括各种数据艺术,能简化数据挖掘过程的设计和评价。

功能和特点

免费提供数据挖掘技术和库

100%用Java代码(可运行在操作系统)

数据挖掘过程简单,强大和直观

内部XML保证了标准化的格式来表示交换数据挖掘过程

可以用简单脚本语言自动进行大规模进程

多层次的数据视图,确保有效和透明的数据

图形用户界面的互动原型

命令行(批处理模式)自动大规模应用

Java API(应用编程接口)

简单的插件和推广机制

强大的可视化引擎,许多尖端的高维数据的可视化建模

400多个数据挖掘运营商支持

耶鲁大学已成功地应用在许多不同的应用领域,包括文本挖掘,多媒体挖掘,功能设计,数据流挖掘,集成开发的方法和分布式数据挖掘。

六、 Pentaho BI

Pentaho BI 平台不同于传统的BI 产品,它是一个以流程为中心的,面向解决方案(Solution)的框架。其目的在于将一系列企业级BI产品、开源软件、API等等组件集成起来,方便商务智能应用的开发。它的出现,使得一系列的面向商务智能的独立产品如Jfree、Quartz等等,能够集成在一起,构成一项项复杂的、完整的商务智能解决方案。

Pentaho BI 平台,Pentaho Open BI 套件的核心架构和基础,是以流程为中心的,因为其中枢控制器是一个工作流引擎。工作流引擎使用流程定义来定义在BI 平台上执行的商业智能流程。流程可以很容易的被定制,也可以添加新的流程。BI 平台包含组件和报表,用以分析这些流程的性能。目前,Pentaho的主要组成元素包括报表生成、分析、数据挖掘和工作流管理等等。这些组件通过 J2EE、WebService、SOAP、HTTP、Java、JavaScript、Portals等技术集成到Pentaho平台中来。 Pentaho的发行,主要以Pentaho SDK的形式进行。

Pentaho SDK共包含五个部分:Pentaho平台、Pentaho示例数据库、可独立运行的Pentaho平台、Pentaho解决方案示例和一个预先配制好的 Pentaho网络服务器。其中Pentaho平台是Pentaho平台最主要的部分,囊括了Pentaho平台源代码的主体entaho数据库为 Pentaho平台的正常运行提供的数据服务,包括配置信息、Solution相关的信息等等,对于Pentaho平台来说它不是必须的,通过配置是可以用其它数据库服务取代的;可独立运行的Pentaho平台是Pentaho平台的独立运行模式的示例,它演示了如何使Pentaho平台在没有应用服务器支持的情况下独立运行entaho解决方案示例是一个Eclipse工程,用来演示如何为Pentaho平台开发相关的商业智能解决方案。

Pentaho BI 平台构建于服务器,引擎和组件的基础之上。这些提供了系统的J2EE 服务器,安全,portal,工作流,规则引擎,图表,协作,内容管理,数据集成,分析和建模功能。这些组件的大部分是基于标准的,可使用其他产品替换之。

 

原文链接:http://www.thebigdata.cn/JiShuBoKe/9164.html

2014年8月7日 | 标签:
热度:

我们的HDFS中有一部分落地数据是用LZO格式来压缩的(另一部分采用gz压缩的RCFile,MapReduce中间结果采用snappy压缩)。第一是因为它的压缩比和压缩/解压速度综合下来比较令人满意,第二是它只需要少量effort就能支持可切分(生成LZO文件后跑单机或分布式建索引程序),这样能充分利用MapReduce分而治之的编程思想和数据本地性。
之前要查看已经put到HDFS的LZO文件,都是先get到本地,再用lzop命令解压出来查看,但是有时候我们只是想预览下lzo文件的几行信息,前面一种方式就比较麻烦了,替代方案可以使用如下命令:

hadoop fs -cat /share/data/log/web/2013-08-22/2013-08-22_log.lzo | lzop -dc | head -1

lzop会接受输入流然后解压输出流给head显示第一行

但是如果不加后面的重定向命令,照道理应该输出到终端上,但是事实并非如此

hadoop fs -cat /share/data/log/web/2013-08-22/2013-08-22_log.lzo | lzop -dc

会报错“lzop: <stdout>: uncompressed data not written to a terminal”

而对于gzip命令和zcat命令,没有发生这种情况

hadoop fs -cat /tmp/temp.txt.gz | gzip -d  
hadoop fs -cat /tmp/temp.txt.gz | zcat

其实这是lzop故意这样设计的,因为解压后的数据可能非常大,如果不加限制全部输出到终端会撑爆终端的,所以不管文件大小一律先报错,可以做这样一个实验

[hadoop@jindows.cn tmp]$ echo "chenyukang" | gzip -c | gzip -d  
chenyukang
[hadoop@jindows.cn tmp]$ echo "chenyukang" | lzop -c | lzop -dc  
lzop: <stdout>: uncompressed data not written to a terminal

如果确实要打印全部数据到终端有两种办法

1. 后面跟重定向到cat命令

[hadoop@jindows.cn tmp]$ echo "chenyukang" | lzop -c | lzop -dc | cat  
chenyukang

2. 使用lzop的-f参数或者–force,强制输出

[hadoop@jindows.cn tmp]$ echo "chenyukang" | lzop -c | lzop -dcf  
chenyukang
2014年8月5日 | 标签: , ,
热度:

hive版本: 0.11.0

在执行dense_rank

hive语句:

select ta.cookie_id
, ta.interest_ratio
, ta.goods_id
, DENSE_RANK() over (order by ta.COOKIE_ID) as RN
from tm_rec_user_cf_goods_visit ta
where ta.goods_cnt = 6
group by ta.cookie_id,ta.goods_id,ta.interest_ratio

HIVE的报错信息如下:

 

HiveServerException(Message: Query returned non-zero code: 40000, cause: FAILED: SemanticException Failed to breakup Windowing invocations into Groups. At least 1 group must only depend on input columns. Also check for circular dependencies.
Underlying error: org.apache.hadoop.hive.ql.exec.UDFArgumentTypeException: One or more arguments are expected.,ErrorCode: 40000,SQLState: 42000)

 

解决办法:

将 DENSE_RANK 改成 dense_rank

然后在执行 就没有问题了。

rank函数也有同样的问题。

ROW_NUMBER函数不会有同样的错误。

2014年8月5日 | 标签:
热度:

据估计,到2015年,全世界一半以上的数据将涉及hadoop–围绕这个开源平台的生态系统日益庞大,这有力地印证了这个惊人的数字。

  然而,有些人表示,虽然hadoop是眼下热闹非凡的大数据领域最热话题,但它肯定不是可以解决数据中心和数据管理方面所有难题的灵丹妙药。考虑到这一点,我们暂且不想猜测这个平台未来会如何,也不想猜测彻底改变各种数据密集型解决方案的开源技术未来会如何,而是关注让hadoop越来越火的实际应用案例。

  毫无疑问,现在有几个出众的例子,表明hadoop及相关开源技术(hive和hbase等)在如何重塑大数据公司考虑基础设施的角度。

  不妨阐明几个引人注目的、大规模hadoop部署案例,它们在重塑依赖大数据的公司,这些公司从事社交媒体、旅游和一般商品和服务等行业。

 

案例之一:电子港湾的hadoop环境

  电子港湾公司分析平台开发小组的anil madan讨论了这家拍卖行业的巨擘在如何充分发挥hadoop平台的强大功能,充分利用每天潮水般涌入的8tb至10tb数据。

  虽然电子港湾只是几年前才开始向生产型hadoop环境转移,但它却是早在2007年就率先开始试用hadoop的大规模互联网公司之一,当时它使用一个小型集群来处理机器学习和搜索相关性方面的问题。

  这些涉及的是少量数据;madan表示,但是就这个试验项目而言很有用;不过随着数据日益增加、用户活动日益频繁,电子港湾想充分利用几个部门和整个用户群当中的数据。

  电子港湾的第一个大型hadoop集群是500个节点组成的athena,这个专门建造的生产型平台可以满足电子港湾内部几个部门的要求。该集群只用了不到三个月就建成了,开始高速处理预测模型、解决实时问题;后来不断扩大规模,以满足其他要求。

  madan表示,该集群现由电子港湾的许多小组使用,既用于日常生产作业,又用于一次性作业。小组使用hadoop的公平调度器(fair scheduler)来管理资源分配、为各小组定义作业池、赋予权重、限制每个用户和小组的并行作业,并且设定抢占超时和延迟调度。

  虽然madan经常在台上畅谈hadoop具有的实际价值,他也经常提到工作小组在扩建电子港湾基础设施时面临、继续竭力克服的几个主要挑战。下面列出了与hadoop有关的一系列挑战:

  可扩展性

  就现有版本而言,主服务器namende存在可扩展性问题。由于集群的文件系统不断扩大,它占用的内存空间也随之扩大,因为它把整个元数据保存在内存中。1pb的存储容量大概需要1gb的内存容量。几种切实可行的解决方案是分层命名空间分区,或者结合使用zkeeper和hbase,实现元数据管理。

  可用性

  namende的可用性对生产型工作负载来说至关重要。开源社区正致力于冷备份(cld standby)、暖备份(warm standby)和热备份(ht standby)这几个选项,比如检查点(checkpint)节点和备份(backup)节点;从辅助namende切换avatar的avatar节点;以及日志元数据复制技术。我们正在评估这些方案,以建立我们的生产型集群。

  数据发现

  在天生不支持数据结构的系统上支持数据监管、发现和模式管理。一个新项目准备把hive的元数据存储区和wl合并成一个新系统,名为hwl。我们旨在努力把该系统连接到我们的分析平台中,那样我们的用户很容易跨不同的数据系统发现数据。

  数据移动

  我们正在努力开发发布/订阅数据移动工具,以便跨我们不同的子系统,如数据仓库和hadoop分布式文件系统(hdfs),支持数据拷贝和调和。

  策略

  通过配额(目前的hadoop配额需要做一些改进)进行存储容量管理,能够制定良好的保留、归档和备份等策略。我们正根据集群的工作负载和特点,跨不同的集群努力定义这些策略。

  度量指标、度量指标、度量指标

  我们正在开发成熟可靠的工具,以便生成度量指标,用于度量数据来源、使用情况、预算编制和利用率。一些hadoop企业服务器体现的现有度量指标有的不够全面,有的只是临时的,很难看清楚集群使用模式。

案例之二:通用电气借助hadoop分析用户的情感

  据通用电气公司(ge)hadoop技术部的产品经理linden hillenbrand声称,情感分析很棘手–它不仅仅是个技术挑战,还是个业务挑战。

  在通用电气公司,数字媒体小组和hadoop小组通力合作,为高度依赖高级情感分析功能的营销部门开发了一款交互式应用软件。

  此举目的在于,让营销小组能够通过我们开展的各项活动,评估外界对通用电气所持的看法(正面看法、中立看法或负面看法)。hadoop负责支持该应用软件的情感分析部分,这部分对hadoop来说是一种高度密集的文本挖掘应用环境。

  他声称,利用 hadoop应对技术层面的这些挑战带来了重大改进。

  为了强调这一点,hillenbrand提到了公司在情感分析方面采取的独特nsql方法,这一方法带来了80%的准确率,也是hadoop这个核心平台的基础,确保公司未来在数据挖掘方面求得发展。正如下图表明的那样,通用电气在利用数据挖掘以及新平台带来一种新的洞察力方面有了大幅改进。

  hillenbrand表示,就通用电气在内部对hadoop未来的展望而言,情感分析项目取得了双重成功。它不仅为这家《财富》50强公司的营销小组提供了更准确的结果,还为这家公司的下一代深度数据挖掘、分析和可视化等项目奠定了基础。

案例之三:旅游行业的典型应用案例

  rbitz wrldwide旗下的全球消费者旅游品牌每天要处理数以百万计的搜索和交易。

  通过关系数据库等传统系统,存储和处理这类活动生成的越来越庞大的数据量变得越来越难,因而这家公司求助于hadoop,帮助消除部分复杂性。

  这家公司的首席软件工程师jnathan seidman和另一名工程师ramesh venkataramiah一向乐于讨论这家旅游网站的基础设施如何加以管理。他们俩在最近面向多位听众的一次交流中讨论了hive的作用,尤其是对一些关键搜索功能所起的作用。

  hadoop和hive帮助这家在线旅游中心处理各项事务:改进让游客可以迅速筛选和分类酒店的功能,到查看更宏观内部趋势的功能,不一而足。据这两位工程师声称,rbitz的大数据问题让它成为运用hadoop的”典型”。他们俩表示,面对很分散的服务网络–这些服务每天生成数百gb大小的当天日志,处理每天数百万的这些搜索和交易,这绝非易事。

  在上面的幻灯片中,他们俩演示了如何利用hadoop和hive来处理数据;可能更重要的是,演示了什么使得这家公司的特定问题最适合用hadoop来处理(因为需要提醒的是一点,并非所有业务都有hadoop的用武之地。)

 

案例之四:facebook更新hadoop的状态

  虽然一些公司和机构对其庞大的hadoop系统秘而不宣,但是就已知存在的系统而言,facebook的数据仓库hadoop集群已成为世界上已知规模最大的hadoop存储集群。

  下面是关于这个单一hdfs集群的一些详细信息:

  单一hdfs集群中存储容量达21 pb

  2000个机器

  每个机器12 tb(有几个机器是每个24tb)

  1200个机器每个有8个处理器核心,800个机器每个有16个核心

  每个机器有32 gb内存

  每个机器有15个映射/化简(map-reduce)任务

  已配置存储容量总共超过21pb,大于之前大名鼎鼎的雅虎集群(14pb)。在hadoop的早期,facebook就与另外几个互联网巨擘,充分利用这种框架来管理其不断发展的业务。

  由于每月活跃用户超过4亿个,页面浏览量超过5000亿人次,每个月共享的内容多达250亿则,对于自称能够处理大数据问题的任何技术而言,facebook是再合适不过的应用环境。

  facebook的工程师与雅虎的hadoop工程小组密切合作,把hadoop推向更高的可扩展性和性能。facebook有许多hadoop集群,其中最大的一个集群用于数据仓库。下面一些统计数字描述了facebook的数据仓库hadoop集群的几个特点:

  每天增加12 tb的压缩数据

  每天扫描800 tb的压缩数据

  每天处理25000个映射/化简作业

  hdfs里面有6500万个文件

  30000个客户机同时访问hdfs namende

  facebook的软件工程师、开源倡导者jnathan gray演示了facebook如何一直使用更庞大hadoop平台架构的一部分:hbase,支持生产环境下的在线应用程序和离线应用程序。

  虽然上述有点深奥,又针对特定环境,但是大致描述了hbase适合的那种复杂数据环境;而更重要的是,描述了这个环境需要怎样的一些重大调整和专门知识才加以管理。hbase仅仅是facebk管理海量数据、为用户提供异常智能化服务的方法之一。

 

案例之五:infchimps处理一百万倍的混合(mashup)

  问一下phillip “flip” krmer哪里能找到几乎任何的列表、电子表格或数据集,他会很高兴地向你介绍他的公司infchimps,这家公司自称是”全世界的数据仓库”。

  每个月都有成千上万的人访问该网站进行搜索,查询特定的数据。最近,该网站的用户在查询推特和社交网络数据。其较为传统的数据集包括其他热门数据,比如金融、体育比赛和股票数据。

  krmer表示,当然,用户们在别的地方也能查询这些数据集,但是他们常常访问infchimps,未必是由于缺少数据或者很难获得数据,而是由于别处获取数据的成本极其高昂,或者数据采用了不适合使用的格式–至少对infchimps面向的开发人员这个客户群来说是这样。

  这家公司正在装配一个数据存储库,里面含有成千上万的公共和商业数据集,许多数据集达到了tb级。现代机器学习算法通过借助数据的一般结构,深入分析数据;即便数据有机地嵌入到链接数据集里面,也是如此。当然,所有这些工作会带来一个复杂的数据环境,势必需要一种能够跨多个对象运行的平台,无论对内部(数据收集和管理方面)来说,还是对平台用户来说,都是如此。

  infchimps让用户们可以借助使用hadoop以及亚马逊云和rackspace云的基础设施,充分利用数据。你从下面可以看到,这家公司充分利用了弹性hadoop,还利用了亚马逊网络服务(aws)和rackspace,同时在后端上使用hadoop满足自己的要求。

  这家公司让用户可以随时获取自己所需的hadoop资源,无论这些是预定资源、临时资源还是专用资源。这种灵活的功能能够支持夜间批处理作业、合规或测试集群、科学系统和生产型系统。加上为基于hadoop的功能新增了irnfan(infchimps的自动化系统配置工具)这一基础,弹性hadoop让用户可以专门为手头的作业调整资源。infchimps声称,这简化了根据需要时,映射或化简专门机器、高计算机器、高内存机器等机器的过程。

 

案例之六:hadoop在挖掘军事情报方面的作用

  digital reasning声称,就其中一个核心市场:美国政府而言,它在”自动理解大数据”方面一路领跑。

  digital reasning致力于实现这个目标,为此最近竭力梳理来自美国情报部门的海量的非结构化文本数据,寻找可能危及国家安全的威胁。这款专门定制的软件用于面向实体的分析(entity-riented analytics),已成为synthesys技术的核心,这项技术则是其业务的立足之本。

  该公司使用cludera的发行版,而且其synthesys平台支持分布式的、面向列的开源数据库hbase。据digital reasning声称,”这种集成让我们得以获得超大规模处理功能,并且为政府和商业市场提供复杂数据分析能力。”

  公司首席执行官tim estes在下面的幻灯片中具体介绍了公司的基础设施和这一使用场景:

  ”cludera及其hadoop专家小组与我们紧密合作,在复杂分析领域取得了新的突破。cludera和digital reasning共同为要求极高的客户提供了针对极其庞大的不同数据集,识别和关联实体的功能,”digital reasning的首席执行官tim estes如是说。

  他继续说,以前,只能”孤立地分析关键情报数据孤岛”,但是synthesys集成了cludera的apache hadoop(cdh3)和hbase支持功能后,我们可以把用于自动理解数据的算法与能以前所未有的方式处理规模和复杂性,把各部分联系起来的平台结合起来。”

2014年5月23日 | 标签:
热度:

Hive是将符合SQL语法的字符串解析生成可以在Hadoop上执行的MapReduce的工具。

使用Hive尽量按照分布式计算的一些特点来设计sql,和传统关系型数据库有区别,

所以需要去掉原有关系型数据库下开发的一些固有思维。

基本原则:

1:尽量尽早地过滤数据,减少每个阶段的数据量,对于分区表要加分区,同时只选择需要使用到的字段

select … from A

join B

on A.key = B.key

where A.userid>10

and B.userid<10

and A.dt=’20120417′

and B.dt=’20120417′;

应该改写为:

select …. from (select …. from A

where dt=’201200417′

and userid>10

) a

join ( select …. from B

where dt=’201200417′

and userid < 10

) b

on a.key = b.key;

2:尽量原子化操作,尽量避免一个SQL包含复杂逻辑

可以使用中间表来完成复杂的逻辑

drop table if exists tmp_table_1;

create table if not exists tmp_table_1 as

select ……;

drop table if exists tmp_table_2;

create table if not exists tmp_table_2 as

select ……;

drop table if exists result_table;

create table if not exists result_table as

select ……;

drop table if exists tmp_table_1;

drop table if exists tmp_table_2;

3:单个SQL所起的JOB个数尽量控制在5个以下

4:慎重使用mapjoin,一般行数小于2000行,大小小于1M(扩容后可以适当放大)的表才能使用,小表要注意放在join的左边(目前TCL里面很多都小表放在join的右边)。

否则会引起磁盘和内存的大量消耗

5:写SQL要先了解数据本身的特点,如果有join ,group操作的话,要注意是否会有数据倾斜

如果出现数据倾斜,应当做如下处理:

set hive.exec.reducers.max=200;

set mapred.reduce.tasks= 200;—增大Reduce个数

set hive.groupby.mapaggr.checkinterval=100000 ;–这个是group的键对应的记录条数超过这个值则会进行分拆,值根据具体数据量设置

set hive.groupby.skewindata=true; –如果是group by过程出现倾斜 应该设置为true

set hive.skewjoin.key=100000; –这个是join的键对应的记录条数超过这个值则会进行分拆,值根据具体数据量设置

set hive.optimize.skewjoin=true;–如果是join 过程出现倾斜应该设置为true

6:如果union all的部分个数大于2,或者每个union部分数据量大,应该拆成多个insert into 语句,实际测试过程中,执行时间能提升50%

insert overwite table tablename partition (dt= ….)

select ….. from (

select … from A

union all

select … from B

union all

select … from C

) R

where …;

可以改写为:

insert into table tablename partition (dt= ….)

select …. from A

WHERE …;

insert into table tablename partition (dt= ….)

select …. from B

WHERE …;

insert into table tablename partition (dt= ….)

select …. from C

WHERE …;

2014年5月20日 | 标签:
热度:

LEFT SEMI JOIN 是 IN/EXISTS 子查询的一种更高效的实现

Hive 当前没有实现 IN/EXISTS 子查询,所以你可以用 LEFT SEMI JOIN 重写你的子查询语句。LEFT SEMI JOIN 的限制是, JOIN 子句中右边的表只能在

ON 子句中设置过滤条件,在 WHERE 子句、SELECT 子句或其他地方过滤都不行。

SELECT a.key, a.value

FROM a

WHERE a.key in

(SELECT b.key

FROM B);

可以被重写为:

SELECT a.key, a.val

FROM a LEFT SEMI JOIN b on (a.key = b.key)

2014年4月1日 | 标签:
热度:

IEEE Fellow、IEEE TKDE主编裴建教授5月5-9日在中科院计算所讲授“大数据分析和数据挖掘”课程。
课程免费,食宿自理;报名请附上姓名、学校和研究方向等信息;为保证授课效果,限额50~60人。
报名截止日期为4月10日,报名结果将于4月15日公布。

Big Data Analytics and Data Mining

Course Name Big Data Analytics and Data Mining(大数据分析和数据挖掘)
Instructor Jian Pei, Simon Fraser University http://www.cs.sfu.ca/~jpei/
Address Institute of Computing Technology,Chinese Academy of Sciences No.6 Kexueyuan South Road Zhongguancun,Haidian District Beijing,China 北京海淀区中关村科学院南路6号中科院计算所(地图)
Time May 5th~9th, 2014
Contact

课程免费,食宿自理;报名请附上姓名、学校和研究方向等信息;为保证授课效果,限额50~60人。 报名截止日期为4月10日,报名结果将于4月15日在本页面公布。

Introduction

This course provides a quick introduction to the exciting frontiers of big data analytics and data mining. The focus is on the essential concepts and techniques, the fundamental principles, as well as some active research topics. The audience is assumed to be solid in the popular discrete mathematics (including basics in set theory, abstract algebra, logics, and graph theory), algorithm analysis and design, and basic probability and statistics. C++ or Java programming is expected. Basic understanding of data mining, such as a quick scan of the textbook, would be helpful, though the course itself is self-contained and the basic concepts will be reviewed before the advanced topics are discussed.

The format of the course is a combination of lectures and classroom discussion. It is a 5 day course, 3 hours every morning and 2 hours every afternoon. In general, lectures on basic concepts and principles will be presented in the mornings, while advanced topics and research directions will be discussed in the afternoons. The tentative schedule is as follows, which is subject to change without notice. The course components may also be customized according to audiences interest.

Schedule

May 5th Morning – Introduction (big data, data mining, data analytics, and applications) – Cloud computing Afternoon – MapReduce basics
May 6th Morning – Multidimensional data analysis, data warehousing, business intelligence Afternoon – Advanced topic: multidimensional analysis on complex data and big data
May 7th Morning – Frequent pattern mining Afternoon – Advanced topic: advanced frequent pattern mining and applications
May 8th Morning – Classification Afternoon – Advanced topic: advanced classification methods, predictive analytics
May 9th Morning – Clustering analysis Afternoon – Advanced topics: Case study: data mining in healthcare informatics, crowdsourcing

About the instructor

Jian Pei is a professor at the School of Computing Science at Simon Fraser University, Canada. He received a Ph.D. degree in Computing Science from the same school in 2002, under Dr. Jiawei Han’s supervision. His research interests can be summarized as developing effective and efficient data analysis techniques for novel data intensive applications. Particularly, he is currently interested in various techniques of data mining, information retrieval, data warehousing, online analytical processing, and database systems, as well as their applications in social networks, network security informatics, healthcare informatics, business intelligence, and web search. His research outcome has been adopted by industry production systems. He has published prolifically in premier academic venues. His publications have been cited more than 30,000 times. His research has been supported in part by many government agencies and many industry partners. Currently, his priority in research is on developing industry relations and collaboration, and transferring his technologies to industry applications. He is also actively serving the professional communities. He is current the editor-in-chief of IEEE Transactions of Knowledge and Data Engineering, and an associate editor or editorial board member of several premier journals in his areas. He has played key roles in many top academic conferences. He is a director of ACM SIGKDD and an ACM Distinguished Speaker. He received several prestigious awards. He is a fellow of IEEE and a senior member of ACM.

For more information about dragonstar program, please visit http://dragonstar.ict.ac.cn/dragonstar/index.asp