大数据
文章平均质量分 58
liu857279611
奋斗成长中的程序员
展开
-
centos时间不同步的解决方法(centos时间同步)
一,用ntpdate从时间服务器更新时间如果你的linux系统根本没有ntpdate这个命令yum install ntp安装完了之后,你不要做什么配置,也不需要,直接测试一下复制代码代码如下:[root@localhost ~]# ntpdate time.nist.gov 22 Oct 21:11:43 ntpdate[501原创 2017-04-26 11:02:40 · 1575 阅读 · 0 评论 -
利用ZooKeeper简单实现分布式锁
原文地址1.分布式锁的由来:在程序开发过程中不得不考虑的就是并发问题。在Java中对于同一个jvm而言,jdk已经提供了lock和同步等。但是在分布式情况下,往往存在多个进程对一些资源产生竞争关系,而这些进程往往在不同的机器上,这个时候jdk中提供的已经不能满足。分布式锁顾明思议就是可以满足分布式情况下的并发锁。 下面我们讲解怎么利用zk实现分布式锁。2.实现思路:2.1转载 2017-05-09 13:47:26 · 404 阅读 · 0 评论 -
Hadoop Cluster启动后数据节点(DataNode)进程状态丢失
首先通过命令hadoop dfs namenode -format格式化名称节点,格式化成功以后使用start-dfs.sh和start-yarn.sh脚本启动集群。此时,整个Hadoop集群使用 JPS进程查看命令发现均正常。在没有关闭Hadoop集群的状态下,我们使用了hadoop dfs namenode -format 命令重新格式化了名称节点。此时再次启动hadoop集群,发现数据节点D原创 2017-05-10 13:16:59 · 1517 阅读 · 0 评论 -
Spark RDD API详解(一) Map和Reduce
原文地址RDD是什么?RDD是Spark中的抽象数据结构类型,任何数据在Spark中都被表示为RDD。从编程的角度来看,RDD可以简单看成是一个数组。和普通数组的区别是,RDD中的数据是分区存储的,这样不同分区的数据就可以分布在不同的机器上,同时可以被并行处理。因此,Spark应用程序所做的无非是把需要处理的数据转换为RDD,然后对RDD进行一系列的变换和操作从而得到结果。本文为第一部转载 2017-05-30 23:40:04 · 406 阅读 · 0 评论 -
每天进步一点点——五分钟理解一致性哈希算法(consistent hashing)
原文地址 一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:转载 2017-05-20 16:38:29 · 250 阅读 · 0 评论 -
解决spark-shell输出日志信息过多
当我们执行Spark-shell的时候,会出现如下界面,如果觉得显示信息过多可通过修改conf文件夹下的log4j.properties文件让其只显示警告信息,而不显示所有的信息1。 解决方案进入到spark目录/conf文件夹下,此时有一个log4j.properties.template文件,我们执行如下命令将其拷贝一份为log4j.properties,并对log4j.pro转载 2017-06-05 20:49:55 · 1974 阅读 · 0 评论 -
Storm集群组件和编程模型
原文地址Storm工作原理: Storm是一个开源的分布式实时计算系统,常被称为流式计算框架。什么是流式计算呢?通俗来讲,流式计算顾名思义:数据流源源不断的来,一边来,一边计算结果,再进入下一个流。例如一般金融系统一直不断的运行,金融交易、用户所有行为都记录进日志里,日志分析出网站运维、猎户信息;海量数据使得单节点处理不过来,所以就用到分布式计算机型,storm 是其中的典型代转载 2017-05-21 15:27:37 · 342 阅读 · 0 评论 -
Storm的编程模型与核心组件
Storm的编程模型:1.模型图如下:2.名词含义:DataSource:外部数据源Spout:接受外部数据源的组件,将外部数据源转化成Storm内部的数据,以Tuple为基本的传输单元下发给BoltBolt:接受Spout发送的数据,或上游的bolt的发送的数据。根据业务逻辑进行处理。发送给下一个Bolt或者是存储到某种介质上。介质可以是MongoDB或MySQL,或者其原创 2017-05-21 15:27:58 · 359 阅读 · 0 评论 -
IKAnalyzer 在Maven Repository 安装方法
一,下载https://github.com/wks/ik-analyzer二,安装到Repository里现将下载好的项目导入idea或eclipse中然后使用 install -Dmaven.test.skip=true 命令将项目导入到本地库三,使用Maven用法:将以下依赖加入工程的pom.xml中的...部分。 org原创 2017-05-22 10:06:39 · 3127 阅读 · 0 评论 -
使用Mahout实现协同过滤
原文地址Mahout使用了Taste来提高协同过滤算法的实现,它是一个基于Java实现的可扩展的,高效的推荐引擎。Taste既实现了最基本的基于用户的和基于内容的推荐算法,同时也提供了扩展接口,使用户可以方便的定义和实现自己的推荐算法。同时,Taste不仅仅只适用于Java应用程序,它可以作为内部服务器的一个组件以HTTP和Web Service的形式向外界提供推荐的逻辑。Taste的设计转载 2017-05-22 17:49:35 · 1972 阅读 · 0 评论 -
Mahout学习之Mahout简介、安装、配置、入门程序测试
一、Mahout简介查了Mahout的中文意思——驭象的人,再看看Mahout的logo,好吧,想和小黄象happy地玩耍,得顺便陪陪这位驭象人耍耍了...附logo:(就是他,骑在象头上的那个Mahout) 步入正文啦: Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现、分类、聚转载 2017-05-22 17:53:09 · 536 阅读 · 0 评论 -
spark 常用函数总结
1, textFile() 读取外部数据源2, map() 对每一条数据进行相应的处理 如切分3, reduceByKey(_+_) 传入一个函数,将key相同的一类进行聚合计算 如相加4, mapvalues(_+10) 传入一个函数,类似于map方法,不过这里只是对元组中的value进行计算5,filter() 传入一个函数, 用户过滤处理数据原创 2017-06-02 17:17:47 · 5079 阅读 · 0 评论 -
RDD的检查点
首先,要清楚。为什么spark要引入检查点机制?引入RDD的检查点? 答:如果缓存丢失了,则需要重新计算。如果计算特别复杂或者计算耗时特别多,那么缓存丢失对于整个Job的影响是不容忽视的。为了避免缓存丢失重新计算带来的开销,Spark又引入检查点机制。 RDD的缓存能够在第一次计算完成后,将计算结果保存到内存、本地文件系统或者Tachyon(分布式内存文件系统)转载 2017-06-19 17:23:07 · 621 阅读 · 0 评论 -
搜索引擎选择: Elasticsearch与Solr
原文地址搜索引擎选型调研文档Elasticsearch简介*Elasticsearch是一个实时的分布式搜索和分析引擎。它可以帮助你用前所未有的速度去处理大规模数据。它可以用于全文搜索,结构化搜索以及分析,当然你也可以将这三者进行组合。Elasticsearch是一个建立在全文搜索引擎 Apache Lucene™ 基础上的搜索引擎,可以说Lucene是当今最先进,最高效的转载 2017-06-19 17:45:10 · 351 阅读 · 0 评论 -
Linux curl命令详解
命令:curl在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。它支持文件的上传和下载,是综合传输工具,但按传统,习惯称url为下载工具。语法:# curl [option] [url]常见参数:-A/--user-agent 设置用户代理发送给服务器-b/--cookie转载 2017-06-10 14:13:50 · 264 阅读 · 0 评论 -
Spark MLlib系列(一):入门介绍
原文地址前言最新的情况是国内BAT已经都上了spark,而且spark在hadoop上的应用,大有为大象插上翅膀的效果。个人估计在未来两到三年,spark大有代替hadoop的mapreduce的趋势。应该说spark的在使用上面的经济成本,性能优势,一站式解决能力,一定会使其大放异彩。因为个人对spark很感兴趣,加上项目中需要使用它解决一些机器学习的问题,在网上搜集资料转载 2017-06-15 09:28:42 · 622 阅读 · 0 评论 -
Putty连接虚拟机Centos出现:Network error:Connection refused的解决方法
我和很多人一样都是linux菜鸟,但是呢又对此很是感兴趣,不折腾就是不爽;我下载了centos 6.4安装好在VMware 虚拟机后一切正常;于是我在本机安装下载Putty来连接虚拟机中的centos系统结果提示:Network error:Connection refused 错误意思是:连接被拒绝这里顺便给大家提供一个putty中文版下载地址转载 2017-08-16 09:44:56 · 3553 阅读 · 0 评论 -
基于Flume的美团日志收集系统(一)架构和设计
原文地址美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流。美团的日志收集系统基于Flume设计和搭建而成。《基于Flume的美团日志收集系统》将分两部分给读者呈现美团日志收集系统的架构设计和实战经验。第一部分架构和设计,将主要着眼于日志收集系统整体的架构设计,以及为什么要做这样的设计。第二部分改进和优化,将主要着转载 2017-05-18 09:43:55 · 323 阅读 · 0 评论 -
玩转flume+Kafka配置
一、FLUME介绍Flume是一个分布式、可靠、和 高可用 的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。设计目标:(1) 可靠性当节点出现故障时,日志能够被传送到其他节点上而不会丢失。Flume提供了三种级别的可靠性保障,从强到弱依次分别为:end-to-end(收到数据a原创 2017-05-18 09:42:06 · 4926 阅读 · 0 评论 -
flume-ng+Kafka+Storm+HDFS 实时系统搭建
原文地址一直以来都想接触Storm实时计算这块的东西,最近在群里看到上海一哥们罗宝写的Flume+Kafka+Storm的实时日志流系统的搭建文档,自己也跟着整了一遍,之前罗宝的文章中有一些要注意点没提到的,以后一些写错的点,在这边我会做修正;内容应该说绝大部分引用罗宝的文章的,这里要谢谢罗宝兄弟,还有写这篇文章@晨色星空J2EE也给了我很大帮助,这里也谢谢@晨色星空J2EE之前在弄这转载 2017-05-18 09:34:44 · 440 阅读 · 0 评论 -
如何在Windows中运行MapReduce程序
原文地址Windows上配置环境变量解压Hadoop,然后把Hadoop的根目录配置到HADOOP_HOME环境变量里面然后把HADOOP_HOME/lib和HADOOP_HOME/bin配置到path里面。替换bin目录要在Windows运行MapReduce,你首先需要编译Windows版的Hadoop的应用程序。然后把官网下载的Hadoop目录下面转载 2017-04-29 17:45:09 · 1428 阅读 · 0 评论 -
网站统计中的数据收集原理及实现
原文地址网站数据统计分析工具是网站站长和运营人员经常使用的一种工具,比较常用的有谷歌分析、百度统计和腾讯分析等等。所有这些统计分析工具的第一步都是网站访问数据的收集。目前主流的数据收集方式基本都是基于javascript的。本文将简要分析这种数据收集的原理,并一步一步实际搭建一个实际的数据收集系统。数据收集原理分析简单来说,网站统计分析工具需要收集到用户浏览目标网站的行为(如打开某转载 2017-05-12 11:41:15 · 773 阅读 · 0 评论 -
Scala 中 10 个超赞的集合操作函数
原文地址#1 最大值和最小值我们先从动作函数开始。在序列中查找最大或最小值是一个极常见的需求,较常用于面试问题和算法。还记得 Java 中的代码行吗?如下:int[] arr = {11, 2, 5, 1, 6, 3, 9}; int to = arr.length - 1; int max = arr[0]; for (int i = 0; i < to; i++)转载 2017-05-23 22:24:24 · 519 阅读 · 0 评论 -
hive中Partition详解
在 Hive 中,表中的一个 Partition 对应于表下的一个目录,所有的 Partition 的数据都存储在对应的目录中。例如:pvs 表中包含 ds 和 city 两个 Partition,则对应于 ds = 20090801, ctry = US 的 HDFS 子目录为:/wh/pvs/ds=20090801/ctry=US;对应于 ds = 20090801, ctry =转载 2017-05-05 08:26:14 · 1137 阅读 · 0 评论 -
scala class和object,trait的区别
原文地址Scala类class Counter { private var value = 0 // 必须初始化字段 def increment() { value += 1 } // 方法默认公有 def current = value // 调用必须是myCounter.current这种风格}class Student{ var age=20 //转载 2017-05-24 13:01:22 · 656 阅读 · 0 评论 -
linux让进程后台运行
我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Linux 服务器,运行了一些耗时较长的任务, 结果却由于网络的不稳定导致任务中途失败。如何让命令提交后不受本地关闭终端窗口/网络断开连接的干扰呢?下面举了一些例子, 您可以针对不同的场景选择不同的方式来处理这个问题。nohup/setsid/&场景:如果只是临时有一个命令需要长时间运行,什么方法能最简便的保证它在后台稳转载 2017-05-13 15:24:39 · 270 阅读 · 0 评论 -
IntelliJ中的main函数和System.out.println()快捷键
1、在IntelJ中和Eclipse中稍有不同,在Eclipse中,输入main再按Alt+/即可自动补全main函数,但是在IntellJ中则是输入psvm,选中即可2、在方法体内部有for循环,在IntellJ中是输入fori,然后会有一个提示,选中需要的for循环即可3、System.out.println();在IntellJ中是输入sout原创 2017-05-13 16:25:45 · 386 阅读 · 0 评论 -
IntelliJ IDEA 将 Maven 构建的 Java 项目打包
原文地址前言IntelliJ IDEA 编译生成 Jar 包的方式与 Eclipse 不同,如何将此 Maven 构建 Java 推荐引擎项目生成 Jar 包确实搜索了不少资料,有成功的有失败的,特将此验证成功的方法记录下来分享给遇到此类问题的朋友。 开发环境OS: Windows 8.1JRE: 1.7.0开发工具: IntelliJ IDEA 13.1.1转载 2017-05-13 21:08:35 · 8099 阅读 · 0 评论 -
zookeeper之监听事件总结
1. zookeeper的Watch机制 一个zk的节点可以被监控,包括这个目录中存储的数据的修改,子节点目录的变化,一旦变化可以通知设置监控的客户端,这个功能是zookeeper对于应用最重要的特性,通过这个特性可以实现的功能包括配置的集中管理,集群管理,分布式锁等等。 watch机制官方说明:一个Watch事件是一个一次性的触发器,当被设置了Watch的转载 2017-04-23 12:17:23 · 23980 阅读 · 3 评论 -
Hive分析函数row_number()
业务背景最近有一个需求是给用户浏览的商品进行评分, 然后将商品评分按降序排序, 最后取 Top 50 推荐给终端用户。评分的计算公式为: 该商品一个月内的购买次数 / 该商品两个月内的浏览次数。在实现该需求的时候就用到了 Hive 中内置的分析函数 row_number()。row_number()函数简介row_number() 函数的简单用法如下:ROW_NUMBER() OV转载 2017-05-05 12:54:46 · 1909 阅读 · 0 评论 -
多核编程 与 单核多线程编程的区别
一,首先声明并行:两件(多件)事情在同一时刻一起发生, 并发:两件(多件)事情在同一时刻只能有一个发生,由CPU快速切换,从而给人的感觉是同时进行 使用多线程来实现并行计算来缩短计算时间时,只要在多核CPU下才行,单核CPU下启用多线程最终总的计算计算一样,因为CPU在同一时间,只能服务于一个线程,在单核CPU下运用多线程仅仅能实现快速响应用户的请求,避免因io或网络阻塞原创 2017-05-14 14:06:51 · 15790 阅读 · 3 评论 -
Scala 闭包
http://www.runoob.com/Scala/scala-closures.html闭包是一个函数,返回值依赖于声明在函数外部的一个或多个变量。闭包通常来讲可以简单的认为是可以访问一个函数里面局部变量的另外一个函数。如下面这段匿名的函数:val multiplier = (i:Int) => i * 10 函数体内有一个变量 i,它作为函数的一个参数。如下面的另转载 2017-05-26 20:47:23 · 340 阅读 · 0 评论 -
Jps命令—使用详解
jps是jdk提供的一个查看当前Java进程的小工具, 可以看做是JavaVirtual Machine Process Status Tool的缩写。非常简单实用。 命令格式:jps [options ] [ hostid ] [options]选项 :-q:仅输出VM标识符,不包括classname,jar name,arguments in main m原创 2017-05-16 22:40:26 · 606 阅读 · 0 评论 -
kafka学习笔记:知识点整理
原文链接一、为什么需要消息系统1.解耦: 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。2.冗余: 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险。许多消息队列所采用的"插入-获取-删除"范式中,在把一个消息从队列中删除之前,需要你的处理系统明确的指出该消息已经被处理完毕,从而确保你的数据被安全的保存直到你使用完毕转载 2017-05-17 13:24:09 · 711 阅读 · 0 评论 -
Storm架构和编程模型的总结
1、编程模型DataSource:外部数据源Spout:接受外部数据源的组件,将外部数据源转化成Storm内部的数据,以Tuple为基本的传输单元下发给BoltBolt:接受Spout发送的数据,或上游的bolt的发送的数据。根据业务逻辑进行处理。发送给下一个Bolt或者是存储到某种介质上。介质可以是Redis可以是mysql,或者其他。Tuple:Storm内部中数据传输的基本单原创 2017-05-27 17:35:07 · 386 阅读 · 0 评论 -
Apache kafka 工作原理介绍
原文链接消息队列消息队列技术是分布式应用间交换信息的一种技术。消息队列可驻留在内存或磁盘上, 队列存储消息直到它们被应用程序读走。通过消息队列,应用程序可独立地执行--它们不需要知道彼此的位置、或在继续执行前不需要等待接收程序接收此消息。在分布式计算环境中,为了集成分布式应用,开发者需要对异构网络环境下的分布式应用提供有效的通信手段。为了管理需要共享的信息,对应用提供公共的信息交换转载 2017-05-28 09:42:22 · 326 阅读 · 0 评论 -
python中的爬虫神器 XPath 介绍
XPath即为XML路径语言,它是一种用来确定XML(标准通用标记语言的子集)文档中某部分位置的语言。XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。 xPath 同样也支持HTML.XPath 是一门小型的查询语言,这里我们将它与 python 爬虫相结合来介绍。1. python 中如何安装使用XPathstep1: 安装 lxml 库。step2: from转载 2017-05-05 16:32:08 · 1170 阅读 · 0 评论