开源中国

我们不支持 IE 10 及以下版本浏览器

It appears you’re using an unsupported browser

为了获得更好的浏览体验,我们强烈建议您使用较新版本的 Chrome、 Firefox、 Safari 等,或者升级到最新版本的IE浏览器。 如果您使用的是 IE 11 或以上版本,请关闭“兼容性视图”。
博客专区 - 开源中国社区

精彩阅读

  • 最新推荐

  • 今日热门

  • 本周热门

  • 每日一博

  • 最新文章

以太坊·将自定义数据写入到区块链中

本文节选自电子书《Netkiller Blockchain 手札》 Netkiller Blockchain 手札 本文作者最近在找工作,有意向致电 13113668890 Mr. Neo Chan, 陈景峯(BG7NYT) 中国广东省深圳市龙华新区民治街道溪山美地 518131 +86 13113668890 <netkiller@msn.com> 文档始创于2018-02-10 版权 © 2018 Netkiller(Neo Chan). All rights reserved.   版权声明 转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。 http://www.netkiller.cn http://netkiller.github.io http://netkiller.sourceforge.net 微信订阅号 netkiller-ebook (微信扫描二维码) QQ:13721218 请注明“读者” QQ群:128659835 请注明“读者”   5.5. 实用例子 5.5.1. 数据写入到区块链中 做一笔交易,并写入数据到区块链中 let Web3 = require("web3"); let fs = require("fs"); let web3 = new Web3("http://localhost:8545"); let log = { time:(new Date).getTime(), type:"info", msg:"Web3 Test!!!" }; let str = JSON.stringify(log); console.log(str); let data = Buffer.from(str).toString('hex'); data = '0x'+data; console.log(data); //将数据写入到交易中 let ...
neo-chen 发布于 3天前 阅读 116

Spring Boot 使用 Redis 提升天气预报应用的并发访问能力

有时,为了提升整个网站的性能,我们会将经常需要访问数据缓存起来,这样,在下次查询的时候,能快速的找到这些数据。 缓存的使用与系统的时效性有着非常大的关系。当我们的系统时效性要求不高时,则选择使用缓存是极好的。当系统要求的时效性比较高时,则并不适合用缓存。 本文,我们将演示如何通过集成 Redis 服务器来进行数据的缓存,以提高微服务的并发访问能力。
waylau 发布于 1周前 阅读 543 评论 4 点赞 1

Java 9 新特性概述

Java 9 正式发布于 2017 年 9 月 21 日 。作为 Java8 之后 3 年半才发布的新版本,Java 9 带 来了很多重大的变化。其中最重要的改动是 Java 平台模块系统的引入。除此之外,还有一些新的特性。 本文对 Java9 中包含的新特性做了概括性的介绍,可以帮助你快速了解 Java 9
IBM Cloud

Spring Data Elasticsearch 与 Elasticsearch 的关系

Spring Data Elasticsearch 与 Elasticsearch 其实是两个不同的产品。本文带你简单的了解下,Spring Data Elasticsearch 与 Elasticsearch 的关系。
waylau 发布于 2周前 阅读 402 评论 8

大数据平台Hadoop的分布式集群环境搭建

1 概述 本文章介绍大数据平台Hadoop的分布式环境搭建、以下为Hadoop节点的部署图,将NameNode部署在master1,SecondaryNameNode部署在master2,slave1、slave2、slave3中分别部署一个DataNode节点 NN=NameNode(名称节点) SND=SecondaryNameNode(NameNode的辅助节点) DN=DataNode(数据节点) 2 前期准备 (1)准备五台服务器 如:master1、master2、slave1、slave2、slave3 (2)关闭所有服务器的防火墙 $ systemctl stop firewalld $ systemctl disable firewalld (3)分别修改各服务器的/etc/hosts文件,内容如下: 192.168.56.132 master1 192.168.56.133 master2 192.168.56.134 slave1 192.168.56.135 slave2 192.168.56.136 slave3 注:对应修改个服务器的/etc/hostname文件,分别为 master1、master2、slave1、slave2、slave3 (4)分别在各台服务器创建一个普通用户与组 $ groupadd hadoop #增加新用户组 $ useradd hadoop -m -g hadoop #增加新用户 $ passwd hadoop #修改hadoop用户的密码 切换至hadoop用户:su hadoop (5)各服务器间的免密码登录配置,分别在各自服务中执行一次 $ ssh-keygen -t rsa #一直按回车,会生成公私钥 $ ssh-copy-id hadoop@m...
FEINIK 发布于 2周前 阅读 1452 评论 5 点赞 6

Apache Cassandra和Apache Ignite:关系并置和分布式SQL

相对于Cassandra,使用Ignite后软件架构得到简化只是众多好处之一。
李玉珏 发布于 3周前 阅读 180 点赞 1

Pentaho CDE详细开发使用手册

主面板: 1、Layout Layout工具栏: 从左到右: 1、保存当前Layout为模板。 2、应用模板到当前Layout。 3、添加应用的资源(资源类型有CSS和Javascript,导入内容形式有代码或具体文件) 4、添加一个Bootstarp Panel 5、添加布局行 6、添加布局列 7、添加Space分隔 8、添加图片 9、添加html代码段 10、复制选中的layout控件 11、删除选中的layout控件 点击Layout图标,根据布局要求新建布局,如下图: CDE默认使用分块式布局,采用12列网格化布局,如图col1, col2各占50%宽度,则设置Extra Small Devices均为6。 Layout行列控件基础属性: Name(控件名)   Extra Small Devices(分块大小) 6 Height(高度值) - BackgroundColor(背景颜色) 默认 Corners(样式) Simple Text Align(文本排列方向) - Css Class(设置class)     2、设置数据源 点击Datasource图标,从左侧选择合适的数据源并填写参数和Query,下图以JDBC连接为例: CDE Datasource 的JDBC连接参数: Name(名称) home1 Driver(连接驱动) oracle.jdbc.driver.OracleDriver Password(数据库密码) 123456 User name(数据库用户名) GXFDA_SUBAREA Access Level(级别) Public URL(jdbc连接)...
ZhangLG 发布于 4周前 阅读 102

hue(03)、Hue切换MySql作为元数据库

Hue服务默认使用的是内嵌的sqlite数据库作为自己的源数据库,sqlite数据库毕竟是属于一款轻型的数据库服务,在实际项目中还是建议切换MySql或者oracle作为元数据库服务,本文将切换MySql作为Hue的元数据库
MaxBill 发布于 4周前 阅读 104

hue(02)、Hue集成Hadoop集群(HDFS和YARN)

在上文 hue(01)、Hue4.1的编译安装启动 中,我们完整的进行了Hue的源码下载编译安装,Hue的web控制台与Hdfs、Hive、Hbase等集成才能展现它的魅力。本文我们在Hue中集成hadoop的hdfs和yarn服务,然后使用Hue操作和监控hadoop集群。
MaxBill 发布于 4周前 阅读 172 打赏 1

详谈项目集成OLAP多维分析报表JPivot并实现多维分析平台自主化

一、将JPivot集成到mvn项目: 1.1、导入加载JPivot项目: 1.2、复制JPivot文件到meaven项目: 1.3、启动项目到tomcat: 1.4、去除重复版本包: 打开tomcat文件夹去除WEB-INF\lib下的重复JAR包,保留最新jar版本包 1.5、访问JPivot页面: 访问JPivot多维模型地址查看是否正常 二、UI优化及细节设置 2.1、找到显示处理的页面: 2.2、打开页面文件寻找样式文件路径: 2.3、修改JPivot定义的样式: 2.4、修改控件 页面代码: 页面显示: 2.5、平台整体效果 注:由于项目有迁移及文件更改,截图为两个项目的(未整合及整合过的) 关于JPivot模型设置与发布的基础我将在后续发布在我的博客中 如有问题请留言
ZhangLG 发布于 1个月前 阅读 115

hue(01)、hue4.1的编译安装启动

hue(01)、hue4.1的编译安装启动
MaxBill 发布于 1个月前 阅读 90

Pentaho BI Server 批量上传文件排坑笔记

本文讲的是实际操作中的小问题和小技巧, 这里要谈谈Pentaho BI Server对文件夹的操作,在项目使用pentaho cde图表开发完图表后,通常会迁移cde图表文件来完成开发与部署不同环境下的图表迁移,在迁移过程中发现BI Server可以对Pentaho中文件夹进行下载, 下载后是一个zip的文件,可以通过在要迁移环境下upload上传后还原该文件夹。 后面遇到有人问我Pentaho BI Server能否进行批量上传文件,因为upload每次只能上传一个文件,而当要上传文件夹时我就想到了可以通过将本地需要上传的文件夹打成zip然后上传到服务器做法, 新建测试文件夹: 上传成功: 但是后期在传入他给到的文件夹出现如下问题: 上传之后 发现导入失败: 发现pentaho上传文件时不能出现中文。 注:上传成功后若发现某些文件看不到,则需要勾选显示隐藏文件  
ZhangLG 发布于 1个月前 阅读 101

[喵咪大数据]Presto查询引擎

如果大家正在按照笔者的教程尝试使用大数据组件还是之前有使用过相关的组件,大家会发现一个问题HIVE在负责的查询下调用Mapreduce会很慢,在这个场景下就涌现出很多查询引擎来优化,比如大家熟悉的Spark-SQL,Impala,kilin已经今天的主角Presto, Presto以速度和极强的扩展性取得了胜利,不仅能够提高对HIVE数据查询速度还能和异构数据库进行关联查询,比如HIVE和Mysql进行关联查询,那么我们就来迫不及待的揭开Presto的庐山真面目
喵了_个咪 发布于 1个月前 阅读 163

Elasticell-聊聊Raft的优化

Raft,分布式系统,分布式存储
fagongzi 发布于 1个月前 阅读 117

【干货】快速搭建CDH的yum本地源的详细过程

为了方便在局域网中安装CDH集群,搭建一个CDH的yum本地源,方便局域网内各节点安装。 在Cloudera的官网中给出了CDH本地源的搭建过程(官网说明文档链接),下面是本人亲自搭建的详细过程,首先要找一台能联网的主机来制作本地源,可自动下载必要的安装包(如果全部都无法联网,则手动下载相关的rpm安装包,只是麻烦了一些,过程是一样的),制作好本地源后该主机再断网给本地局域网作为yum源使用即可。 1、关闭防火墙、关闭selinux service iptables stop chkconfig iptables off [root@test001 selinux]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted 2、下载repo文件 根据操作系统下载repo文件(本人使用...
雪饼 发布于 1个月前 阅读 117

hive(05)、使用JAVA对数据仓库HIVE进行操作

hive(05)、使用JAVA对数据仓库HIVE进行操作
MaxBill 发布于 1个月前 阅读 147

Apache Cassandra 和 Apache Ignite: 架构简化思考

了解Cassandra数据建模概念的另一面,学习如何进化到更简单的架构。
李玉珏 发布于 1个月前 阅读 320 点赞 1

hive(04)、使用dbeaver客户端连接hive数据仓库

hive(04)、使用dbeaver客户端连接hive数据仓库
MaxBill 发布于 1个月前 阅读 98 评论 2 打赏 1

【干货】在docker中安装配置Greenplum集群的过程

—— 原文发布于本人的微信公众号“大数据与人工智能Lab”(BigdataAILab),欢迎关注。   Greenplum是一个MPP(海量并行处理)计算框架的分布式数据库,其数据库引擎层是基于著名的Postgresql数据库,企业级数据库产品,现已开源。Greenplum拥有丰富的特性,包括: 1、完全支持ANSI SQL 2008标准和SQL OLAP 2003 扩展,支持ODBC和JDBC 2、支持分布式事务,支持ACID 3、支持行存储、列存储,以及可通过外部表的方式访问其它关系型数据库或者Hadoop 4、拥有良好的线性扩展能力,支持上千个节点   Greenplum的体系架构如下: master节点可实现主备高可用,避免单点故障;segments节点分散存放数据,数据作多副本保存,可进行数据的并行查询和操作,非常高效。 下面描述在docker中安装配置greenplum集群的过程 一、安装docker 本人手上只有一台笔记本,安装了Ubuntu操作系统,为了方便安装测试greenplum集群,在Ubuntu操作系统上安装docker,然后创建多个容器构建出一个greenplum集群。 1、安装docker sudo apt-get install docker 2、拉取centos镜像 docker pull centos:latest 3、创建容器,作为greenplum的节点 sudo docker run --name gpcentos1 -it centos /bin/bash ...
雪饼 发布于 1个月前 阅读 92 评论 2

【干货】离线安装Cloudera Manager 5和CDH5(最新版5.13.0)详细过程

—— 原文发布于本人的微信公众号“大数据与人工智能Lab”(BigdataAILab),欢迎关注。   Cloudera是Hadoop生态系统中,规模最大、知名度最高的公司。Cloudera对Hadoop进行了封装,简化安装过程,使用Cloudera可以快速、简单地部署集群,安装所需要的组件,并可以实现对集群的管理和监控。 Cloudera Manager主要提供了四大功能:(1)对集群进行管理,如添加、删除节点等操作;(2)监控集群的健康情况,对各种指标和系统运行情况进行全面监控;(3)对集群出现的问题进行诊断,并给出建议解决方案;(4)对Hadoop的多组件进行整合、集成。 CDH (Cloudera's Distribution, including Apache Hadoop),是由Cloudera维护的Hadoop分支,基于稳定版本的Apache Hadoop构建的,集成了很多补丁,可直接用于生产环境。 更多详细的介绍,请见 Cloudera 官网   在公司内部机房,由于受网络访问控制的原因,服务器无法直接连接互联网在线安装Cloudera Manager 5和CDH5。下面介绍本地离线安装Cloudera Manager 5和CDH5的过程 一、集群概况 节点 IP 主机名 操作系统 管理节点 172.17.0.1 hd1.hdsite CentOS 6.9 x86_64 工作节点 172.17.0.2 hd2.hdsite CentOS 6.9 x86_64 工作节点 17...
雪饼 发布于 1个月前 阅读 170

hive(02)、数据仓库Hive的基本使用

hive(02)、数据仓库Hive的基本使用
MaxBill 发布于 1个月前 阅读 145

Hera-将小程序打包成移动APP的开发框架

继移动APP之后,小程序作为当前移动的有一个入口为大家所推崇,不管是微信的小程序还是支付宝的小程序,其实现的思路都是一致的,即通过一个宿主来运行相关的JS页面。 现在Hera根据市场需求,推出了一款真正的跨平台框架,除了可以让你的小程序除了在微信上运行,还可以打包成 Android 、 iOS应用,以及以 h5 的方式跑在浏览器端。 主要的优点有: 一套代码 处处运行 Hera提供了强大的跨平台能力:不仅可以让开发者的微信小程序业务从微信中平滑迁移到Android和iOS端的App中,同时也提供了RN等其它框架没有的能力 —— 运行在Web端。 组件丰富 简单易用 自带常用组件,完美继承了小程序内置组件,学习成本低,完全兼容微信小程序的开发方式。 极速加载 体验流畅 Hera框架同时也可以支持业务的快速迭代和更新,所有组件和 API 内置在客户端中,每个页面只包含核心业务逻辑使页面更轻量,在高速加载的同时兼具动态更新的能力。 快速上手 安装脚手架 需要在系统中安装 Node.js 环境, 使用以下方法确认系统中 Node 的版本: node -v 如果得到的版本低于v7.6.0,或是提示找不到 node 命令,请点此下载最新的 Node 环境安装包。 Tips: 如果下载时出现网络问题,可以尝试使用 nrm ...
mcy0425 发布于 2个月前 阅读 18

马库斯再谈AlphaGo Zero不是从零开始,AGI可能需要这十大先天机制

纽约大学心理学和神经科学教授马库斯(Gary Marcus)坚信AlphaZero仍依赖于一些人类知识,也曾在AlphaZero解读现场这样diss哈萨比斯。 可能觉得说得不够,近日,马库斯在arXiv发布了本月第二篇长文Innateness, AlphaZero, and Artificial Intelligence,继续论证AlphaZero“可以在没有人类指导的情况下训练到超过人类水平”的说法被夸大了。 “当代人工智能论文(通常)用了一个‘相当不错的’具体结果,对更广泛的主题做出了绝对普遍和离谱的断言。”几个小时前,他在推特引用了这句话,说明自己怒怼的原因。 在文章中,马库斯将AlphaGo、AlphaGo Zero、AlphaZero的归结成一种“神奇的AI工程”,代号“AlphaStar”。 它是一种深层结构的混合,它不单利用深度学习人,也依赖于像树搜索这样的传统符号技巧(symbolic technique)。 这到底是种怎样的神奇工程?马库斯从DeepMind如何构建Alpha家族的架构开始讲起,量子位将重点内容编译整理如下。 △ 马库斯 从零开始? DeepMind在论文中说“一种纯强化学习方法是可行的,即使在最具挑战性的领域,它也能训练到超过人类的水平,并且无需人类的案例和指导。除了基本规则外,没有任何领域的基础知识。” 我不赞同。 他们系统中的...
mcy0425 发布于 1个月前 阅读 6

Java 9 新特性概述

Java 9 正式发布于 2017 年 9 月 21 日 。作为 Java8 之后 3 年半才发布的新版本,Java 9 带 来了很多重大的变化。其中最重要的改动是 Java 平台模块系统的引入。除此之外,还有一些新的特性。 本文对 Java9 中包含的新特性做了概括性的介绍,可以帮助你快速了解 Java 9
IBM Cloud

Hadoop学习笔记:Hadoop安装(伪分布式)

这里仅演示Hadoop的伪分布式安装过程
zlikun 发布于 3周前 阅读 18

大数据入门需要具备的能力与素质

一、大数据分析的五个基本方面 1、可视化分析 大数据分析的使用者有大数据分析专家,同时还有普通用户,但是他们二者对于大数据分析最基本的要求就是可视化分析,因为可视化分析能够直观的呈现大数据特点,同时能够非常容易被读者所接受,就如同看图说话一样简单明了。 2、数据挖掘算法 大数据分析的理论核心就是数据挖掘算法,各种数据挖掘的算法基于不同的数据类型和格式才能更加科学的呈现出数据本身具备的特点,也正是因为这些被全世界统计学家所公认的各种统计方法(可以称之为真理)才能深入数据内部,挖掘出公认的价值。另外一个方面也是因为有这些数据挖掘的算法才能更快速的处理大数据,如果一个算法得花上好几年才能得出结论,那大数据的价值也就无从说起了。 3、预测性分析能力 大数据分析最终要的应用领域之一就是预测性分析,从大数据中挖掘出特点,通过科学的建立模型,之后便可以通过模型带入新的数据,从而预测未来的数据。 4、语义引擎 大数据分析广泛应用于网络数据挖掘,可从用户的搜索关键词、标签关键词、或其他输入语义,分析,判断用户需求,从而实现更好的用户体验和广告匹配。 5、数据质量和数据管理 大数据分析离不开数据质量和数据管理,高质量...
小欣妹妹 发布于 3周前 阅读 9

“大数据应用场景”之隔壁老王(连载四)

“大数据应用场景”之隔壁老王(连载四)
forespider 发布于 2周前 阅读 5

以太坊·将自定义数据写入到区块链中

本文节选自电子书《Netkiller Blockchain 手札》 Netkiller Blockchain 手札 本文作者最近在找工作,有意向致电 13113668890 Mr. Neo Chan, 陈景峯(BG7NYT) 中国广东省深圳市龙华新区民治街道溪山美地 518131 +86 13113668890 <netkiller@msn.com> 文档始创于2018-02-10 版权 © 2018 Netkiller(Neo Chan). All rights reserved.   版权声明 转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。 http://www.netkiller.cn http://netkiller.github.io http://netkiller.sourceforge.net 微信订阅号 netkiller-ebook (微信扫描二维码) QQ:13721218 请注明“读者” QQ群:128659835 请注明“读者”   5.5. 实用例子 5.5.1. 数据写入到区块链中 做一笔交易,并写入数据到区块链中 let Web3 = require("web3"); let fs = require("fs"); let web3 = new Web3("http://localhost:8545"); let log = { time:(new Date).getTime(), type:"info", msg:"Web3 Test!!!" }; let str = JSON.stringify(log); console.log(str); let data = Buffer.from(str).toString('hex'); data = '0x'+data; console.log(data); //将数据写入到交易中 let ...
neo-chen 发布于 3天前 阅读 116

python基础知识整理——迭代初探

    在了解Python的数据结构时,容器(container)、可迭代对象(iterable)、迭代器(iterator)、生成器(generator)、列表/集合/字典推导式(list,set,dict comprehension)众多概念参杂在一起,难免让初学者一头雾水,我将用一篇文章试图将这些概念以及它们之间的关系捋清楚。 1.容器(container) 容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中。通常这类数据结构把所有的元素存储在内存中(也有一些特例,并不是所有的元素都放在内存,比如迭代器和生成器对象)在Python中,常见的容器对象有: list, deque(队列), …. set, frozensets(), …. dict, defaultdict, OrderedDict, Counter, …. tuple, namedtuple, … str 容器比较容易理解,因为你就可以把它看作是一个盒子、一栋房子、一个柜子,里面可以塞任何东西。从技术角度来说,当它可以用来询问某个元素是否包含在其中时,那么这个对象就可以认为是一个容器,比如 list,set,tuples都是容器对象: 尽管绝大多数容器都提供了某种方式来获取其中的每一个元素,但这并不是容器本身提供的能力,而是可迭代对象赋予了容器这种能力,当然...
十年磨一剑3344 发布于 1天前 阅读 8

第一个hadoop程序-WordCount

大数据
jackmanwu 发布于 15小时前 阅读 5

Spring Data Elasticsearch 与 Elasticsearch 的关系

Spring Data Elasticsearch 与 Elasticsearch 其实是两个不同的产品。本文带你简单的了解下,Spring Data Elasticsearch 与 Elasticsearch 的关系。
waylau 发布于 2周前 阅读 402 评论 8

Spring Boot 使用 Redis 提升天气预报应用的并发访问能力

有时,为了提升整个网站的性能,我们会将经常需要访问数据缓存起来,这样,在下次查询的时候,能快速的找到这些数据。 缓存的使用与系统的时效性有着非常大的关系。当我们的系统时效性要求不高时,则选择使用缓存是极好的。当系统要求的时效性比较高时,则并不适合用缓存。 本文,我们将演示如何通过集成 Redis 服务器来进行数据的缓存,以提高微服务的并发访问能力。
waylau 发布于 1周前 阅读 543 评论 4 点赞 1

用Python实现一个大数据搜索引擎

搜索是大数据领域里常见的需求。Splunk和ELK分别是该领域在非开源和开源领域里的领导者。本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理。 布隆过滤器 (Bloom Filter) 第一步我们先要实现一个布隆过滤器。 布隆过滤器是大数据领域的一个常见算法,它的目的是过滤掉那些不是目标的元素。也就是说如果一个要搜索的词并不存在与我的数据中,那么它可以以很快的速度返回目标不存在。 让我们看看以下布隆过滤器的代码: class Bloomfilter(object): """ A Bloom filter is a probabilistic data-structure that trades space for accuracy when determining if a value is in a set. It can tell you if a value was possibly added, or if it was definitely not added, but it can't tell you for certain that it was added. """ def __init__(self, size): """Setup the BF with the appropriate size""" self.values = [False] * size self.size = size def hash_value(self, value): """Hash the value provided and scale it to fit the BF size""" ...
naughty 发布于 3个月前 阅读 2753 评论 3 点赞 5

python基础整理——range、xrange、array用法整理

   python中的list是python的内置数据类型,list中的数据类不必相同的,而array的中的类型必须全部相同。在list中的数据类型保存的是数据的存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1=[1,2,3,'a']需要4个指针和四个数据,增加了存储和消耗cpu。       numpy中封装的array有很强大的功能,里面存放的都是相同的数据类型。 1.array 创建array #创建一个array数据对象 a=np.array((1,2,3,4,5))# 参数是元组 b=np.array([6,7,8,9,0])# 参数是list c=np.array([[1,2,3],[4,5,6]])# 参数二维数组 print a,b, c.shape()   2.range range的返回对象是一个列表。 python range() 函数可创建一个整数列表,一般用在 for 循环中。 函数语法 range(start, stop[, step]) 参数说明: start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5); end: 计数到 end 结束,但不包括 end。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1) 3.xrange 描述 xrange() 函数用法与 range 完全相同,所不同的是生成的不是一个数组,而是一个生成器。 语...
十年磨一剑3344 发布于 3天前 阅读 22

Hive2.1.1执行initSchema报错

下午配置hive的时候,cp hive-default.xml.tmplate hive-dfault.xml。更改里面的各种配置,其中有一个meta配置项,改为了本地mysql。但是在执行./bin/schematool -dbType mysql -initSchema。一直配置不生效,还是去读取jdbc:derby,不回去读取mysql配置,google,baidu了半天。说版本不对的,有说HIVE_CONF_DIR配置的等好多。 错误消息如下,errorcode2; SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] Metastore connection URL: jdbc:derby:;databaseName=metastore_db;create=true Metastore Connection Driver : org.apache.derby.jdbc.EmbeddedDriver Metastore connection User: APP Starting metastore schema initialization to 2.1.0 Initialization script hive-schema-2.1.0.mysql.sql Error: Syntax error: Encountered "<EOF>" at line 1, column 64. (state=42X01,code=30000) org.apache.hadoop.hive.metastore.HiveMetaException: Schema initialization FAILED! Metastore state would be inconsistent !! Underlying cause: java.io.IOException : Schema script failed, errorcode 2 Use --verbose for detaile...
叫我哀木涕 发布于 2个月前 阅读 16

分布式实时日志分析解决方案ELK部署架构

一、概述 ELK 已经成为目前最流行的集中式日志解决方案,它主要是由Beats、Logstash、Elasticsearch、Kibana等组件组成,来共同完成实时日志的收集,存储,展示等一站式的解决方案。本文将会介绍ELK常见的架构以及相关问题解决。 Filebeat:Filebeat是一款轻量级,占用服务资源非常少的数据收集引擎,它是ELK家族的新成员,可以代替Logstash作为在应用服务器端的日志收集引擎,支持将收集到的数据输出到Kafka,Redis等队列。 Logstash:数据收集引擎,相较于Filebeat比较重量级,但它集成了大量的插件,支持丰富的数据源收集,对收集的数据可以过滤,分析,格式化日志格式。 Elasticsearch:分布式数据搜索引擎,基于Apache Lucene实现,可集群,提供数据的集中式存储,分析,以及强大的数据搜索和聚合功能。 Kibana:数据的可视化平台,通过该web平台可以实时的查看 Elasticsearch 中的相关数据,并提供了丰富的图表统计功能。 二、ELK常见部署架构 2.1、Logstash作为日志收集器 这种架构是比较原始的部署架构,在各应用服务器端分别部署一个Logstash组件,作为日志收集器,然后将Logstash收集到的数据过滤、分析、格式化处理后发送至Elasticsearch存储,最后使用Kibana进...
FEINIK 发布于 3个月前 阅读 5391 评论 6 点赞 4

大数据平台Hadoop的分布式集群环境搭建

1 概述 本文章介绍大数据平台Hadoop的分布式环境搭建、以下为Hadoop节点的部署图,将NameNode部署在master1,SecondaryNameNode部署在master2,slave1、slave2、slave3中分别部署一个DataNode节点 NN=NameNode(名称节点) SND=SecondaryNameNode(NameNode的辅助节点) DN=DataNode(数据节点) 2 前期准备 (1)准备五台服务器 如:master1、master2、slave1、slave2、slave3 (2)关闭所有服务器的防火墙 $ systemctl stop firewalld $ systemctl disable firewalld (3)分别修改各服务器的/etc/hosts文件,内容如下: 192.168.56.132 master1 192.168.56.133 master2 192.168.56.134 slave1 192.168.56.135 slave2 192.168.56.136 slave3 注:对应修改个服务器的/etc/hostname文件,分别为 master1、master2、slave1、slave2、slave3 (4)分别在各台服务器创建一个普通用户与组 $ groupadd hadoop #增加新用户组 $ useradd hadoop -m -g hadoop #增加新用户 $ passwd hadoop #修改hadoop用户的密码 切换至hadoop用户:su hadoop (5)各服务器间的免密码登录配置,分别在各自服务中执行一次 $ ssh-keygen -t rsa #一直按回车,会生成公私钥 $ ssh-copy-id hadoop@m...
FEINIK 发布于 2周前 阅读 1452 评论 5 点赞 6

python 使用 talib 和 numpy 的简单例子

talib在64位windows上的安装略麻烦,直接使用pip安装不了,可以去https://www.lfd.uci.edu/~gohlke/pythonlibs/下载whl文件回来使用 pip install进行安装. 下面使用 talib 和 numpy 计算一个MA5,注意talib.MA的第一个参数应该是 numpy的数组. import talib as ta import numpy as np p = np.array([1.0, 321.0, 231.0, 321.0, 45.0, 46.0, 57.0, 897.0, 987.0, 64.0, 78987.0, 31.0, 32.0, 654.0, 5.0]) s = ta.MA(p, 5) print(s) talib 的用法很多,但是官方文档很少,具体的用法要多搜索,比如下面的一些资源 K线形态: https://www.ricequant.com/community/topic/2393/
漫步海边小路 发布于 1个月前 阅读 26

kubernetes中搭建spark集群 (一)

* 适用场景:linux系统,已经搭建好kubernetes1.4及以上的集群,没有配置CA等认证,已经搭建DNS,其它情景仅作参考。 * 如果还没有搭建DNS,请参考[kubernetes中部署DNS](https://my.oschina.net/blueyuquan/blog/1587301)搭建。 * 相关的yaml文件已经上传到本人的[github](https://github.com/BlueYuQuan/study-on-k8s/tree/master/spark),需要用到的国外镜像也一并被我替换成了阿里云镜像,可直接下载使用 相关文章: * [kubernetes中搭建spark集群 (一)](https://my.oschina.net/blueyuquan/blog/1593060/) * [kubernetes中搭建spark集群 (二)](https://my.oschina.net/blueyuquan/blog/1593233) * [kubernetes中搭建spark集群 (三)]() ## 请根据以下步骤一步步开始搭建spark集群 ### 1.创建spark的namespaces #### a.介绍: Kubernetes通过命名空间,将底层的物理资源划分成若干个逻辑的“分区”,而后续所有的应用、容器都是被部署在一个具体的命名空间里。每个命名空间可以设置独立的资源配额,保证不同命名空间中的应用不会相互抢占资源。此外,命名空间对命名域实现了隔离,因此两个不同命名空间里的应用可以起同样的名字。 文件namespace-spark-cluster.yaml内容: ...
蓝色雨全 发布于 2个月前 阅读 227 评论 2 点赞 2

hue(02)、Hue集成Hadoop集群(HDFS和YARN)

在上文 hue(01)、Hue4.1的编译安装启动 中,我们完整的进行了Hue的源码下载编译安装,Hue的web控制台与Hdfs、Hive、Hbase等集成才能展现它的魅力。本文我们在Hue中集成hadoop的hdfs和yarn服务,然后使用Hue操作和监控hadoop集群。
MaxBill 发布于 4周前 阅读 172 打赏 1

ClassLoader和双亲委派机制

前言:网上关于类加载器讲解的文章特别多,在学习的时候让我受益匪浅,某段时间觉得自己懂了。但是在昨天遇到一个问题,并去看Spark关于用户类加载的时候,它实现的类加载器让我看的很疑惑,半天没有转过来。我才发现自己原来根本不懂类加载器的原理,对双亲委派机制只是停留在字面上,知道会先找父但是不知道怎么去找的,所以今天把JDK关于ClassLoader的代码撸了一遍,把以前一些模糊的地方捋明白了,内心稍安。同时这也是我昨天遇到的问题的前篇,扫清后面问题的障碍,后续会把关于Spark的问题捋出来,再来分享 ## 三种缺省类加载器 当一个JVM启动的时候,Java默认有三种类加载器 + 启动(Bootstrap)类加载器:Bootstrap类加载器是由C和C++实现的类加载器,它负责将 `/lib` 或者由 `-Xbootclasspath` 指定位置下的类库加载到内存中。由于是`native`的,所以我们无法直接接触它,也无法直接引用它。在JDK的ClassLoader类里可以看到关于它的方法调用都是`private native`的 + 扩展(Exttension)类加载器:ExtClassLoader是由Sun公司提供的实现,它负责将 `< Java_Runtime_Home >/lib/ext` 或者由系统变量 `java.ext.dir` 指定位置中的类库加载到内存中,在 `sun.misc.Launch...
问津已非少年 发布于 3个月前 阅读 248

Pentaho CDE详细开发使用手册

主面板: 1、Layout Layout工具栏: 从左到右: 1、保存当前Layout为模板。 2、应用模板到当前Layout。 3、添加应用的资源(资源类型有CSS和Javascript,导入内容形式有代码或具体文件) 4、添加一个Bootstarp Panel 5、添加布局行 6、添加布局列 7、添加Space分隔 8、添加图片 9、添加html代码段 10、复制选中的layout控件 11、删除选中的layout控件 点击Layout图标,根据布局要求新建布局,如下图: CDE默认使用分块式布局,采用12列网格化布局,如图col1, col2各占50%宽度,则设置Extra Small Devices均为6。 Layout行列控件基础属性: Name(控件名)   Extra Small Devices(分块大小) 6 Height(高度值) - BackgroundColor(背景颜色) 默认 Corners(样式) Simple Text Align(文本排列方向) - Css Class(设置class)     2、设置数据源 点击Datasource图标,从左侧选择合适的数据源并填写参数和Query,下图以JDBC连接为例: CDE Datasource 的JDBC连接参数: Name(名称) home1 Driver(连接驱动) oracle.jdbc.driver.OracleDriver Password(数据库密码) 123456 User name(数据库用户名) GXFDA_SUBAREA Access Level(级别) Public URL(jdbc连接)...
ZhangLG 发布于 4周前 阅读 102

以太坊·将自定义数据写入到区块链中

本文节选自电子书《Netkiller Blockchain 手札》 Netkiller Blockchain 手札 本文作者最近在找工作,有意向致电 13113668890 Mr. Neo Chan, 陈景峯(BG7NYT) 中国广东省深圳市龙华新区民治街道溪山美地 518131 +86 13113668890 <netkiller@msn.com> 文档始创于2018-02-10 版权 © 2018 Netkiller(Neo Chan). All rights reserved.   版权声明 转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。 http://www.netkiller.cn http://netkiller.github.io http://netkiller.sourceforge.net 微信订阅号 netkiller-ebook (微信扫描二维码) QQ:13721218 请注明“读者” QQ群:128659835 请注明“读者”   5.5. 实用例子 5.5.1. 数据写入到区块链中 做一笔交易,并写入数据到区块链中 let Web3 = require("web3"); let fs = require("fs"); let web3 = new Web3("http://localhost:8545"); let log = { time:(new Date).getTime(), type:"info", msg:"Web3 Test!!!" }; let str = JSON.stringify(log); console.log(str); let data = Buffer.from(str).toString('hex'); data = '0x'+data; console.log(data); //将数据写入到交易中 let ...
neo-chen 发布于 3天前 阅读 116

Spring Boot 使用 Redis 提升天气预报应用的并发访问能力

有时,为了提升整个网站的性能,我们会将经常需要访问数据缓存起来,这样,在下次查询的时候,能快速的找到这些数据。 缓存的使用与系统的时效性有着非常大的关系。当我们的系统时效性要求不高时,则选择使用缓存是极好的。当系统要求的时效性比较高时,则并不适合用缓存。 本文,我们将演示如何通过集成 Redis 服务器来进行数据的缓存,以提高微服务的并发访问能力。
waylau 发布于 1周前 阅读 543 评论 4 点赞 1

用Python实现一个大数据搜索引擎

搜索是大数据领域里常见的需求。Splunk和ELK分别是该领域在非开源和开源领域里的领导者。本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理。 布隆过滤器 (Bloom Filter) 第一步我们先要实现一个布隆过滤器。 布隆过滤器是大数据领域的一个常见算法,它的目的是过滤掉那些不是目标的元素。也就是说如果一个要搜索的词并不存在与我的数据中,那么它可以以很快的速度返回目标不存在。 让我们看看以下布隆过滤器的代码: class Bloomfilter(object): """ A Bloom filter is a probabilistic data-structure that trades space for accuracy when determining if a value is in a set. It can tell you if a value was possibly added, or if it was definitely not added, but it can't tell you for certain that it was added. """ def __init__(self, size): """Setup the BF with the appropriate size""" self.values = [False] * size self.size = size def hash_value(self, value): """Hash the value provided and scale it to fit the BF size""" ...
naughty 发布于 3个月前 阅读 2753 评论 3 点赞 5

python基础知识整理——错误以及异常处理

1.什么是异常?        异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。 2.Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 异常处理 断言(Assertions) 3.python标准异常 异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 StopIteration 迭代器没有更多的值 GeneratorExit 生成器(generator)发生异常来通知退出 StandardError 所有的内建标准异常的基类 ArithmeticError 所有数值计算错误的基类 FloatingPointError 浮点计算错误 OverflowError 数值运算超出最大限制 ZeroDivisionError 除(或取模)零 (所有数据类型) AssertionError 断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败 OSError 操作...
十年磨一剑3344 发布于 2天前 阅读 11

python基础整理——ASCII码、Unicode、utf-8、gbk

       编码的问题其实是各国语言多样性造成的,最初的计算机是美国发明的,而计算机只能处理数据,不能够处理文本文档。因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。所以需要编码进行转换。 ASCII码:       最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。        由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。你可以想得到的是,全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。 Unicode码: 因此...
十年磨一剑3344 发布于 2天前 阅读 9

大数据平台Hadoop的分布式集群环境搭建

1 概述 本文章介绍大数据平台Hadoop的分布式环境搭建、以下为Hadoop节点的部署图,将NameNode部署在master1,SecondaryNameNode部署在master2,slave1、slave2、slave3中分别部署一个DataNode节点 NN=NameNode(名称节点) SND=SecondaryNameNode(NameNode的辅助节点) DN=DataNode(数据节点) 2 前期准备 (1)准备五台服务器 如:master1、master2、slave1、slave2、slave3 (2)关闭所有服务器的防火墙 $ systemctl stop firewalld $ systemctl disable firewalld (3)分别修改各服务器的/etc/hosts文件,内容如下: 192.168.56.132 master1 192.168.56.133 master2 192.168.56.134 slave1 192.168.56.135 slave2 192.168.56.136 slave3 注:对应修改个服务器的/etc/hostname文件,分别为 master1、master2、slave1、slave2、slave3 (4)分别在各台服务器创建一个普通用户与组 $ groupadd hadoop #增加新用户组 $ useradd hadoop -m -g hadoop #增加新用户 $ passwd hadoop #修改hadoop用户的密码 切换至hadoop用户:su hadoop (5)各服务器间的免密码登录配置,分别在各自服务中执行一次 $ ssh-keygen -t rsa #一直按回车,会生成公私钥 $ ssh-copy-id hadoop@m...
FEINIK 发布于 2周前 阅读 1452 评论 5 点赞 6

SQL优化-第二章-从解释计划层面让SQL飞

# 前言 在第一章,我们谈到加强数据库的设计层面认知可以让SQL的跑得更快,这章我们就谈论下如何从语言层面来提供优化SQL。如果说有一把钥匙能打开SQL优化的大门,那么解释计划就是这样的一把钥匙。什么是解释计划--数据根据统计信息生成的代码执行计划,了解释计划,理解解释计划就能帮助我们理解代码的瓶颈,问题的所在,有的放矢进行优化。Oracle提供了多种解释计划,hive,mongodb,mysql等数据库都提供相似的工具。在第一章的时候,举例子的时候也用到解释计划,刚好借这个机会也来说说解释计划。 # 如何获取解释计划 ## 方式一:explain plan for 用法) 步骤1:explain plan for "你的SQL" 步骤2:select * from table(dbms_xplan.display()); 例子) ``` explain plan for SELECT * FROM t1, t2 WHERE t1.id = t2.t1_id AND t1.n in(18,19); select * from table(dbms_xplan.display()); PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------- Plan hash value: 3532430033 ------------------------------------------------------------------------------------------- | Id | Operation | Name | ...
osenlin 发布于 2个月前 阅读 2023 点赞 8

IT技术进展与GIS发展展望-2018

IT技术进展与GIS发展展望-2018     近年来,IT技术取得了大量的突破性进展,主要包括六个方面,即大数据、GPU与XR、持续交付、区块链、人工智能、物联网等,而云计算作为已经大量使用的计算基础设施,将会加速上述新技术的发展。GIS技术建立在IT技术基础之上,IT技术的进展也必将推动GIS进入一个新的发展时期。下面具体说明: 1、Big-Data:大数据技术进入广泛应用阶段。     大数据技术主要解决数据层、模型层、应用层的大规模计算问题。以Apache Hadoop/Spark为主的大数据软件生态已经成熟而且占据了大数据技术的主流,已经大量用于生产级应用。2017年Spark推出了2.X版本,增强实现了DataFrame、Streaming、ML(机器学习)等重要模块,超图软件在此基础上扩展了空间数据的支持和空间分析、流数据处理、时空可视化模块,将GIS从单机时代推进到了大型集群时代,并进一步开发了桌面GIS、移动GIS、WebGIS等软件。大数据GIS平台已经成型,未来将进一步体系化、框架化,提高易用性,包括桌面、移动端和Web端App可以面向终端用户,实现开箱即用。同时,随着大数据应用的发展,需要持续培养大数据人才队伍,包括Linux和Hadoop、Spark等Apache技术栈开发、测试、实施、设计...
openthings 发布于 3周前 阅读 2277

python基础整理——range、xrange、array用法整理

   python中的list是python的内置数据类型,list中的数据类不必相同的,而array的中的类型必须全部相同。在list中的数据类型保存的是数据的存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1=[1,2,3,'a']需要4个指针和四个数据,增加了存储和消耗cpu。       numpy中封装的array有很强大的功能,里面存放的都是相同的数据类型。 1.array 创建array #创建一个array数据对象 a=np.array((1,2,3,4,5))# 参数是元组 b=np.array([6,7,8,9,0])# 参数是list c=np.array([[1,2,3],[4,5,6]])# 参数二维数组 print a,b, c.shape()   2.range range的返回对象是一个列表。 python range() 函数可创建一个整数列表,一般用在 for 循环中。 函数语法 range(start, stop[, step]) 参数说明: start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5); end: 计数到 end 结束,但不包括 end。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1) 3.xrange 描述 xrange() 函数用法与 range 完全相同,所不同的是生成的不是一个数组,而是一个生成器。 语...
十年磨一剑3344 发布于 3天前 阅读 22

python基础知识整理——迭代初探

    在了解Python的数据结构时,容器(container)、可迭代对象(iterable)、迭代器(iterator)、生成器(generator)、列表/集合/字典推导式(list,set,dict comprehension)众多概念参杂在一起,难免让初学者一头雾水,我将用一篇文章试图将这些概念以及它们之间的关系捋清楚。 1.容器(container) 容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中。通常这类数据结构把所有的元素存储在内存中(也有一些特例,并不是所有的元素都放在内存,比如迭代器和生成器对象)在Python中,常见的容器对象有: list, deque(队列), …. set, frozensets(), …. dict, defaultdict, OrderedDict, Counter, …. tuple, namedtuple, … str 容器比较容易理解,因为你就可以把它看作是一个盒子、一栋房子、一个柜子,里面可以塞任何东西。从技术角度来说,当它可以用来询问某个元素是否包含在其中时,那么这个对象就可以认为是一个容器,比如 list,set,tuples都是容器对象: 尽管绝大多数容器都提供了某种方式来获取其中的每一个元素,但这并不是容器本身提供的能力,而是可迭代对象赋予了容器这种能力,当然...
十年磨一剑3344 发布于 1天前 阅读 8

Apache Cassandra和Apache Ignite:关系并置和分布式SQL

相对于Cassandra,使用Ignite后软件架构得到简化只是众多好处之一。
李玉珏 发布于 3周前 阅读 180 点赞 1

Kafka Streams开发人员指南之流领域特定语言(Streams DSL)

[原文地址](https://kafka.apache.org/10/documentation/streams/developer-guide/dsl-api.html) # 流领域特定语言 Kafka Streams DSL(域特定语言)构建在Streams Processor API之上。 这是大多数用户推荐的,特别是初学者。 大多数数据处理操作都可以用几行DSL代码来表示。 ## 概述 与处理器API相比,只有DSL支持: - 内置KStream,KTable和GlobalKTable形式的流和表的抽象。 拥有流和表的一流支持是至关重要的,因为在实践中,大多数用例不仅需要流或数据库/表,而且还需要两者的组合。 例如,如果您的用例是创建实时更新的客户360度视图,那么您的应用程序将会将许多与客户相关的事件输入流转换为包含不断更新的360度视图的输出表 客户的观点。 - 具有[无状态变换](https://kafka.apache.org/10/documentation/streams/developer-guide/dsl-api.html#streams-developer-guide-dsl-transformations-stateless)(例如map和filter)以及诸如聚集(例如count:计数和reduce:减少),连接(例如,leftJoin:左连接)和窗口化(例如session window:会话窗口)的[有状态变换](https://kafka.apache.org/10/documentation/streams/developer-guide/dsl-api.html#streams-develope...
666B 发布于 2周前 阅读 16

Spring Data Elasticsearch 与 Elasticsearch 的关系

Spring Data Elasticsearch 与 Elasticsearch 其实是两个不同的产品。本文带你简单的了解下,Spring Data Elasticsearch 与 Elasticsearch 的关系。
waylau 发布于 2周前 阅读 402 评论 8

Apache Cassandra 和 Apache Ignite: 架构简化思考

了解Cassandra数据建模概念的另一面,学习如何进化到更简单的架构。
李玉珏 发布于 1个月前 阅读 320 点赞 1

Apache Ignite(V2.3.0)中文开发手册

Apache Ignite(V2.3.0)中文开发手册,已经翻译完成,托管在作业部落上,同时也挂在了社区的官网。
李玉珏 发布于 3周前 阅读 67 点赞 2

Hive 大表join小表 出错

工作中遇到hive大表和小表join时,遇到莫名奇妙的错误。 1、运用了本地模式,设置hive参数 禁止用本地模式 ``` set hive.exec.mode.local.auto=false; ``` 2、设置 hive.auto.convert.join = false;
benny周 发布于 2个月前 阅读 13

【干货】快速搭建CDH的yum本地源的详细过程

为了方便在局域网中安装CDH集群,搭建一个CDH的yum本地源,方便局域网内各节点安装。 在Cloudera的官网中给出了CDH本地源的搭建过程(官网说明文档链接),下面是本人亲自搭建的详细过程,首先要找一台能联网的主机来制作本地源,可自动下载必要的安装包(如果全部都无法联网,则手动下载相关的rpm安装包,只是麻烦了一些,过程是一样的),制作好本地源后该主机再断网给本地局域网作为yum源使用即可。 1、关闭防火墙、关闭selinux service iptables stop chkconfig iptables off [root@test001 selinux]# cat /etc/selinux/config # This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of these two values: # targeted - Targeted processes are protected, # mls - Multi Level Security protection. SELINUXTYPE=targeted 2、下载repo文件 根据操作系统下载repo文件(本人使用...
雪饼 发布于 1个月前 阅读 117

numpy的ndarray与pandas的series和dataframe之间互转

在大数据分析中,比较常用的两个数据分析包就是numpy和pandas,而pandas正是基于numpy构建的含有更高级数据结构和工具的数据分析包,在金融领域应用更是广泛。在实际的工程中,经常遇到的问题就是numpy的ndarray数据结构与pandas的series和dataframe数据结构之间的互相转换问题。现在我分3种情况,在python程序中列一下互转的情况,应该比较全面了。 情况1:输入的数据data为list 直接使用 pandas 的 Series 和 DataFrame,转换即可,需要添加索引等参数 情况2:输入的数据data为dict 直接使用 pandas 的 Series 和 DataFrame,转换即可,不需要添加索引等参数,注意字典中的值的长度要一致 情况3:输入的数据data为ndarray 和 list 的一致   补充了原文的内容.
漫步海边小路 发布于 1个月前 阅读 21

hue(01)、hue4.1的编译安装启动

hue(01)、hue4.1的编译安装启动
MaxBill 发布于 1个月前 阅读 90

ambari 安装过程 注意事项

1.如果使用脚本部署请拔掉一根网线 2.修改进程限制 /etc/security/limits.d/90-nproc.conf   修改1024 为unlimited 3.ntpd ,httpd 服务开启,设置开机启动,防火墙关闭,设置开机关闭 4.修改文件描述符大小(65536) 打开文件数过多  vi  /etc/security/limits.conf *                   soft    nofile  65536 *                   hard    nofile  65536 5.修改/etc/sysconfig/selinux  6.重启之后设置hostname 做ssh免密码登陆,同步hosts文件 7.上传3.5介质到 /var/www/html,安装createrepo工具,制作介质的源 8.将repo文件同步到各个节点,注意要删除自带的repo文件 9.安装mysql5.6 修改密码,注意密码不能带有特殊符号,否则ambari不识别。 创建数据库 ambari,hive,hue,oozie,ranger,ranger_audit,dataspace 10.执行yum install ambari-server 11.执行之后,修改配置文件/etc/ambari-server/conf/ambari.properties jdk1.8.dest-file=jdk-8u112-linux-x64.tar.gz jdk1.8.home=/usr/jdk64/ jdk1.8.jcpol-file=jce_policy-8.zip jdk1.8.jcpol-url=http://10.110.24.207/jdk/jce_policy-8.zip jdk1.8.re=(jdk.*)/jre jdk1.8.url=http://1...
蜗牛骑象 发布于 3个月前 阅读 3

第一个hadoop程序-WordCount

大数据
jackmanwu 发布于 15小时前 阅读 5

python基础知识整理——迭代初探

    在了解Python的数据结构时,容器(container)、可迭代对象(iterable)、迭代器(iterator)、生成器(generator)、列表/集合/字典推导式(list,set,dict comprehension)众多概念参杂在一起,难免让初学者一头雾水,我将用一篇文章试图将这些概念以及它们之间的关系捋清楚。 1.容器(container) 容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个地迭代获取,可以用in, not in关键字判断元素是否包含在容器中。通常这类数据结构把所有的元素存储在内存中(也有一些特例,并不是所有的元素都放在内存,比如迭代器和生成器对象)在Python中,常见的容器对象有: list, deque(队列), …. set, frozensets(), …. dict, defaultdict, OrderedDict, Counter, …. tuple, namedtuple, … str 容器比较容易理解,因为你就可以把它看作是一个盒子、一栋房子、一个柜子,里面可以塞任何东西。从技术角度来说,当它可以用来询问某个元素是否包含在其中时,那么这个对象就可以认为是一个容器,比如 list,set,tuples都是容器对象: 尽管绝大多数容器都提供了某种方式来获取其中的每一个元素,但这并不是容器本身提供的能力,而是可迭代对象赋予了容器这种能力,当然...
十年磨一剑3344 发布于 1天前 阅读 8

python基础知识整理——错误以及异常处理

1.什么是异常?        异常即是一个事件,该事件会在程序执行过程中发生,影响了程序的正常执行。一般情况下,在Python无法正常处理程序时就会发生一个异常。异常是Python对象,表示一个错误。当Python脚本发生异常时我们需要捕获处理它,否则程序会终止执行。 2.Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 异常处理 断言(Assertions) 3.python标准异常 异常名称 描述 BaseException 所有异常的基类 SystemExit 解释器请求退出 KeyboardInterrupt 用户中断执行(通常是输入^C) Exception 常规错误的基类 StopIteration 迭代器没有更多的值 GeneratorExit 生成器(generator)发生异常来通知退出 StandardError 所有的内建标准异常的基类 ArithmeticError 所有数值计算错误的基类 FloatingPointError 浮点计算错误 OverflowError 数值运算超出最大限制 ZeroDivisionError 除(或取模)零 (所有数据类型) AssertionError 断言语句失败 AttributeError 对象没有这个属性 EOFError 没有内建输入,到达EOF 标记 EnvironmentError 操作系统错误的基类 IOError 输入/输出操作失败 OSError 操作...
十年磨一剑3344 发布于 2天前 阅读 11

python基础整理——ASCII码、Unicode、utf-8、gbk

       编码的问题其实是各国语言多样性造成的,最初的计算机是美国发明的,而计算机只能处理数据,不能够处理文本文档。因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理。所以需要编码进行转换。 ASCII码:       最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节。比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295。        由于计算机是美国人发明的,因此,最早只有127个字母被编码到计算机里,也就是大小写英文字母、数字和一些符号,这个编码表被称为ASCII编码,比如大写字母A的编码是65,小写字母z的编码是122。但是要处理中文显然一个字节是不够的,至少需要两个字节,而且还不能和ASCII编码冲突,所以,中国制定了GB2312编码,用来把中文编进去。你可以想得到的是,全世界有上百种语言,日本把日文编到Shift_JIS里,韩国把韩文编到Euc-kr里,各国有各国的标准,就会不可避免地出现冲突,结果就是,在多语言混合的文本中,显示出来会有乱码。 Unicode码: 因此...
十年磨一剑3344 发布于 2天前 阅读 9

以太坊·将自定义数据写入到区块链中

本文节选自电子书《Netkiller Blockchain 手札》 Netkiller Blockchain 手札 本文作者最近在找工作,有意向致电 13113668890 Mr. Neo Chan, 陈景峯(BG7NYT) 中国广东省深圳市龙华新区民治街道溪山美地 518131 +86 13113668890 <netkiller@msn.com> 文档始创于2018-02-10 版权 © 2018 Netkiller(Neo Chan). All rights reserved.   版权声明 转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。 http://www.netkiller.cn http://netkiller.github.io http://netkiller.sourceforge.net 微信订阅号 netkiller-ebook (微信扫描二维码) QQ:13721218 请注明“读者” QQ群:128659835 请注明“读者”   5.5. 实用例子 5.5.1. 数据写入到区块链中 做一笔交易,并写入数据到区块链中 let Web3 = require("web3"); let fs = require("fs"); let web3 = new Web3("http://localhost:8545"); let log = { time:(new Date).getTime(), type:"info", msg:"Web3 Test!!!" }; let str = JSON.stringify(log); console.log(str); let data = Buffer.from(str).toString('hex'); data = '0x'+data; console.log(data); //将数据写入到交易中 let ...
neo-chen 发布于 3天前 阅读 116

python基础整理——关于进制输出初探

1.十进制转化为二进制 #bin可以把十进制的数转换成二进制的数。 >>> bin(10) '0b1010' 2.十进制转化为八进制 #而oct则会把十进制的数字转换成八进制格式的数字,0o开头就是八进制的数字。 >>> oct(10) '0o12'   3.十进制转化为十六进制 hex则可以把传入的十进制转换成十六进制的类型 4.其他进制转化为十进制 int可以把二进制类型的数字转换成十进制的格式。 >>> hex(10) '0xa' >>> int(010101,2) SyntaxError: invalid token >>> int("010101",2) 21 >>> int("37",8) 31 >>> int("6a",16) 106 >>>  
十年磨一剑3344 发布于 3天前 阅读 5

python基础整理——运算符总结

1.Python算术运算符 以下假设变量: a=10,b=20: 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200 / 除 - x除以y b / a 输出结果 2 % 取模 - 返回除法的余数 b % a 输出结果 0 ** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000 // 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0 2.Python比较运算符 以下假设变量a为10,变量b为20: 运算符 描述 实例 == 等于 - 比较对象是否相等 (a == b) 返回 False。 != 不等于 - 比较两个对象是否不相等 (a != b) 返回 true. <> 不等于 - 比较两个对象是否不相等 (a <> b) 返回 true。这个运算符类似 != 。 > 大于 - 返回x是否大于y (a > b) 返回 False。 < 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 (a < b) 返回 true。 >= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。 <= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 true   >>> a=3 >>> 1<a<4 True >>> 1...
十年磨一剑3344 发布于 3天前 阅读 21 评论 2

python基础整理——range、xrange、array用法整理

   python中的list是python的内置数据类型,list中的数据类不必相同的,而array的中的类型必须全部相同。在list中的数据类型保存的是数据的存放的地址,简单的说就是指针,并非数据,这样保存一个list就太麻烦了,例如list1=[1,2,3,'a']需要4个指针和四个数据,增加了存储和消耗cpu。       numpy中封装的array有很强大的功能,里面存放的都是相同的数据类型。 1.array 创建array #创建一个array数据对象 a=np.array((1,2,3,4,5))# 参数是元组 b=np.array([6,7,8,9,0])# 参数是list c=np.array([[1,2,3],[4,5,6]])# 参数二维数组 print a,b, c.shape()   2.range range的返回对象是一个列表。 python range() 函数可创建一个整数列表,一般用在 for 循环中。 函数语法 range(start, stop[, step]) 参数说明: start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5); end: 计数到 end 结束,但不包括 end。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5 step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1) 3.xrange 描述 xrange() 函数用法与 range 完全相同,所不同的是生成的不是一个数组,而是一个生成器。 语...
十年磨一剑3344 发布于 3天前 阅读 22

python基础整理——中文编码初探

   在编写英文以及拼音时,python的程序能够正常的运行,但是在 编写汉字时,如果使用的编辑器没有经过编码处理,可能会报错。为了更好的解决这个问题,我参考菜鸟教程进行了总结: 在window环境下: Python 文件中如果未指定编码,在执行过程会出现报错: #!/usr/bin/python (本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它) #!/usr/bin/python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器。 #!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。这种写法会去环境设置寻找python目录,推荐这种写法) print "你好,世界"; 以上程序执行输出结果为: File "test.py", line 2 SyntaxError: Non-ASCII character '\xe4' in file test.py on line 2, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details Python中默认的编码格式是 ASCII 格式,在没修改编码格式时无法正确打印汉字,所以在读取中文时会报错。 解决方法为只要在...
十年磨一剑3344 发布于 3天前 阅读 2

python基础学习整理——字典

1.创建和使用字典 代码示例: #通过关键字创建 >>> a={'name':'cai'} #通过函数dict创建 >>> a={'name':'cai'} >>> a=['name','cai','age',12] >>> b=dict(a) Traceback (most recent call last): File "<pyshell#2>", line 1, in <module> b=dict(a) ValueError: dictionary update sequence element #0 has length 4; 2 is required >>> a=[('name','cai'),('age',12)] >>> b=dict(a) >>> b {'age': 12, 'name': 'cai'} >>>   #创建一个字典 >>> x={} >>> x[40]='abc' >>> x {40: 'abc'} >>> x['key']=12 >>> x {40: 'abc', 'key': 12} >>> 2.基本的字典操作 字典的特点:键是唯一的、不可更改的,所以键可以是字符串、元组、数字,但不能是列表;值并不是唯一的,它的元素不受限制。 len(d)返回d中项的数量。 d[k]返回关联到键k上的值。 d[k]=v将值v关联到键k上。 del d[k]删除键为k的项。 成员资格  k in d 查找的是键,而不是值。 自动添加 字典copy和deepcopy #不可更改的 >>> import copy >>> a={'name':'cai','age':25} >>> a1=a.copy() >>> a2=copy.deepcopy(a) >>> a['name']='ren' >>> a['age']='24' >>> a {'age': '24', 'name': 'ren'} >>> a1 {'...
十年磨一剑3344 发布于 4天前 阅读 14

git常用命令

概念: 工作区(Working directory):将一个文件夹通过git init设置成一个git可以管理的文件夹(即:创建本地仓库)时,这个文件夹里的内容就是工作区。 版本库(repository):在工作区中,有一个.git文件夹,这个.git文件夹就是版本库。 暂存区(stage/index):.git文件夹下的index文件就是暂存区,用来暂时存放工作区中修改的内容。 .git目录中的文件: index 暂存区 HEAD 指向当前分支的一个提交 refs/ 记录着每个分支指向的提交 info/ 指定本项目要忽略的文件 logs/ 记录着git的操作日志 objects/ git对象库,用来存储各种创建的对象以及内容。 命令: 设置git的用户名和邮箱: 命令:git config 1)设置 /etc/gitconfig文件,即操作系统上所有的用户都使用的配置文件: git config --system user.name "jxn" git config --system user.email "jxn@email.com" 2)设置 ~/.gitconfig文件,即当前登录用户使用的配置文件: git config --global user.name "jxn" git config --global user.email "jxn@email.com" 3)设置 repository/.git/config文件,即当前项目中使用的配置。注:必须先cd到一个git repository目录下,才能执行以下命令: git config user.name "jxn" git confi...
A__17 发布于 4天前 阅读 9

vmware中centos系统的静态IP的网关值设置的坑。

   一直在使用在vmware,网络一直配置成dhcp,也没出现什么问题,但某一天,发现SSH连接不上了,通过vmware登录进去一看,发现IP已经变了,不久,另一台机器的IP也发生了自动变化,IP这一变化不要紧,涉及host、项目文件等配置文件都一一改变,相当不方便,便想着将系统的dhcp改成静态指定,我做如下设置:     vim  /etc/sysconfig/network-scripts/ifcfg-ens33   在ifcfg-ens33文件改动如下:   将BOOTPROTO=dhcp改成BOOTPROTO=static 增加DNS、IPADDR、GATEWAY DNS1=114.114.114.114 DNS2=8.8.8.8 GATEWAY=192.168.139.1 其中GATEWAY的值,我一开始拷贝windows 网络连接--》“VMware Network Adapter VMnet8”里的IP地址,因为VMWARE虚拟了这个网卡,原以为设置此虚拟网卡的IP地址即可。 但设置完成后,一直wget不到外网的软件包,或者ping www.baidu.com都不通。出现这种问题,一直以为DNS没配置成功,用“centos7 配置DNS”关键词搜索了百度资料,并照着做了几遍,还是连接不到外网。耽误了不少时间。 最后,检查vmware时,想起vmware有自己的IP:192.168.1.2,就将centos试着设成该IP,结果连接上外网,ping www.baidu.com也通了。XXX,好吧,不经意的事情,有...
华仔ppdoop 发布于 6天前 阅读 6

爬虫与反爬之-爬虫

爬虫与反爬之-爬虫
开飞色 发布于 7天前 阅读 3

python基础知识——列表、元组

  1.数据结构 在python中,字符串、列表、元组、字典都属于序列结构;而序列是数据结构的最基本的一种表现形式。 概念:数据结构是通过某种方式组织在一起的数据元素集合,这些数据元素可以是数字或者字符,甚至可以是其它的数据结构。 容器也是python中的一种数据结构,容器基本上包含任意的对象。序列和映射是两种主要的容器,还有一种容器既不是序列也不是映射,这种容器叫做集合。 2.通用序列操作 这些操作包括:索引、分片、加、乘、检验是否为序列成员、长度检验、最大值和最小值。 索引、切片 1.正向索引 a=[1,2,3,4,5,6,7,8,9] b='my baby' c=('a','b','c','d') a[0]#找到下标为0的元素输出的结果为1 b[0]#输出的结果为 ‘m’ c[0]#输出的结果为 ‘a’ 2.负向索引 (切片) a=[1,2,3,4,5] a[:-1]#单个的时候负向索引都能够起到作用,只是方向不一样 a[1:-2]#当出现两个的时候负向索引不能够随意的放置,只能放到正向索引的后面 a[-5:-1]#两个负向索引起作用 a[2:-1]#这是错误的 3.切片  a=[1,2,3,4] a[:]#索引全部的元素 a[1:3]#切片的起点起作用,终点不起作用。 4.带有步长的切片 a=[1,343,55,7,88,65,34,'dee'] a[: :2]#隔两个取一个数 a[0:5:-1]#最后一个...
十年磨一剑3344 发布于 1周前 阅读 6

python基础知识整理——字符串

  1.字符串的基本操作        所有标准的序列操作(索引、分片、乘法、判断成员的资格、求长度、取最大值和最小值)都适用于字符串。 Python 字符串 字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。 创建字符串很简单,只要为变量分配一个值即可。例如: var1 = 'Hello World!' var2 = "Python Runoob" Python访问字符串中的值 Python不支持单字符类型,单字符也在Python也是作为一个字符串使用。 Python访问子字符串,可以使用方括号来截取字符串,如下实例: #!/usr/bin/python var1 = 'Hello World!' var2 = "Python Runoob" print "var1[0]: ", var1[0] print "var2[1:5]: ", var2[1:5] 以上实例执行结果: var1[0]: H var2[1:5]: ytho 2.转义字符 转义字符 描述 \(在行尾时) 续行符 \\ 反斜杠符号 \' 单引号 \" 双引号 \a 响铃 \b 退格(Backspace) \e 转义 \000 空 \n 换行 \v 纵向制表符 \t 横向制表符 \r 回车 \f 换页 \oyy 八进制数,yy代表的字符,例如:\o12代表换行 \xyy 十六进制数,yy代表的字符,例如:\x0a代表换行 \other 其它的字符以普通格式输出   3.字符串运算 下表实例变量 a 值为字符串 "Hello",b 变量值为 "Pyt...
十年磨一剑3344 发布于 1周前 阅读 6

Spring Boot 使用 Redis 提升天气预报应用的并发访问能力

有时,为了提升整个网站的性能,我们会将经常需要访问数据缓存起来,这样,在下次查询的时候,能快速的找到这些数据。 缓存的使用与系统的时效性有着非常大的关系。当我们的系统时效性要求不高时,则选择使用缓存是极好的。当系统要求的时效性比较高时,则并不适合用缓存。 本文,我们将演示如何通过集成 Redis 服务器来进行数据的缓存,以提高微服务的并发访问能力。
waylau 发布于 1周前 阅读 543 评论 4 点赞 1

Elasticsearch

npm node.js rpm -ivh http://download.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm   yum -y install nodejs npm --enablerepo=epel     git clone git://github.com/mobz/elasticsearch-head.git cd elasticsearch-head npm install npm run start open http://localhost:9100/    
mac_zhao 发布于 1周前 阅读 8

python基础知识整理——数字

数字 数字的基本概念: 1.数字特点 数字一经定义不可改变 2.数字类型 int和long int float complix(复数) 3.一些数值类型的实例: int long float complex 10 51924361L 0.0 3.14j 100 -0x19323L 15.20 45.j -786 0122L -21.9 9.322e-36j 080 0xDEFABCECBDAECBFBAEl 32.3e+18 .876j -0490 535633629843L -90. -.6545+0J -0x260 -052318172735L -32.54e100 3e+26J 0x69 -4721885298529L 70.2E-12 4.53e-7j 长整型也可以使用小写 l,但是还是建议您使用大写 L,避免与数字 1 混淆。Python使用 L 来显示长整型。 Python 还支持复数,复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。 4.注意两种不同类型的数据类型运算产生的差异,在需要正常的除法运算时可以使用两种方式解决python带来的问题 使用浮点数进行运算,只要表达式中有一个实数即可 Python Number 类型转换 int(x [,base ]) 将x转换为一个整数 long(x [,base ]) 将x转换为一个长整数 float(x ) 将x转换到一个浮点数 complex(real [,imag ]) 创建一个复数 str(x ) 将对象 x 转换为字符串 repr(x ) 将对象 x 转换为表达式字符串 eval(str ) 用来计算在字...
十年磨一剑3344 发布于 1周前 阅读 5

python基础学习整理——基础知识

1.基础融合 Python算术运算符 运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 - 两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200 / 除 - x除以y b / a 输出结果 2 % 取模 - 返回除法的余数 b % a 输出结果 0,取除法后剩下的数 ** 幂 - 返回x的y次幂 a**b 为10的20次方, 输出结果 100000000000000000000 // 取整除 - 返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0,取出发后的整数商   Python比较运算符 运算符 描述 实例 == 等于 - 比较对象是否相等 (a == b) 返回 False。 != 不等于 - 比较两个对象是否不相等 (a != b) 返回 true. <> 不等于 - 比较两个对象是否不相等 (a <> b) 返回 true。这个运算符类似 != 。 > 大于 - 返回x是否大于y (a > b) 返回 False。 < 小于 - 返回x是否小于y。所有比较运算符返回1表示真,返回0表示假。这分别与特殊的变量True和False等价。 (a < b) 返回 true。 >= 大于等于 - 返回x是否大于等于y。 (a >= b) 返回 False。 <= 小于等于 - 返回x是否小于等于y。 (a <= b) 返回 true。 Python赋值运算符 运算符 描述 实例 = 简单的赋...
十年磨一剑3344 发布于 1周前 阅读 5

python基础整理——计算机语言分类

引致博客:http://blog.csdn.net/liuchuo/article/details/52014764 计算机编程语言的分类: 机器语言(二进制代码) 汇编语言(面向机器的程序设计语言) 高级语言(按转换方式可分为两类:1.编译型语言;  2.解释型语言     ||按照客观系统的描述可分为两类:1.面向过程语言;  2.面向对象语言    ||按照编程范型可分为:1.命令式语言;  2.函数式语言;  3.逻辑式语言;  4.面向对象语言) 三种语言的优缺点: 机器语言: 可读性、可移植性差,编程繁杂。 直接执行,速度快,资源占用少; 汇编语言: 不同的处理器有不同的汇编语言语法和编译器,编译的程序无法在不同的处理器上执行,缺乏可移植性,难于从汇编语言代码上理解程序设计意图,可维护性差,即使是完成简单的工作也需要大量的汇编语言代码,很容易产生bug,难于调试,使用汇编语言必须对某种处理器非常了解,而且只能针对特定的体系结构和处理器进行优化,开发效率很低,周期长且单调。 能够保持机器语言的一致性,直接、简捷,并能像机器指令一样访问、控制计算机的各种硬件设备,如磁盘、存储器、CPU、I/O端口等。使用汇编语言,可以访问所有能够被访问的软、硬件资源,目标代码简短,占用内存少,执...
十年磨一剑3344 发布于 1周前 阅读 8

Java 9 新特性概述

Java 9 正式发布于 2017 年 9 月 21 日 。作为 Java8 之后 3 年半才发布的新版本,Java 9 带 来了很多重大的变化。其中最重要的改动是 Java 平台模块系统的引入。除此之外,还有一些新的特性。 本文对 Java9 中包含的新特性做了概括性的介绍,可以帮助你快速了解 Java 9
IBM Cloud

大数据平台Hadoop的分布式集群环境搭建

1 概述 本文章介绍大数据平台Hadoop的分布式环境搭建、以下为Hadoop节点的部署图,将NameNode部署在master1,SecondaryNameNode部署在master2,slave1、slave2、slave3中分别部署一个DataNode节点 NN=NameNode(名称节点) SND=SecondaryNameNode(NameNode的辅助节点) DN=DataNode(数据节点) 2 前期准备 (1)准备五台服务器 如:master1、master2、slave1、slave2、slave3 (2)关闭所有服务器的防火墙 $ systemctl stop firewalld $ systemctl disable firewalld (3)分别修改各服务器的/etc/hosts文件,内容如下: 192.168.56.132 master1 192.168.56.133 master2 192.168.56.134 slave1 192.168.56.135 slave2 192.168.56.136 slave3 注:对应修改个服务器的/etc/hostname文件,分别为 master1、master2、slave1、slave2、slave3 (4)分别在各台服务器创建一个普通用户与组 $ groupadd hadoop #增加新用户组 $ useradd hadoop -m -g hadoop #增加新用户 $ passwd hadoop #修改hadoop用户的密码 切换至hadoop用户:su hadoop (5)各服务器间的免密码登录配置,分别在各自服务中执行一次 $ ssh-keygen -t rsa #一直按回车,会生成公私钥 $ ssh-copy-id hadoop@m...
FEINIK 发布于 2周前 阅读 1452 评论 5 点赞 6

SQL优化-第二章-从解释计划层面让SQL飞

# 前言 在第一章,我们谈到加强数据库的设计层面认知可以让SQL的跑得更快,这章我们就谈论下如何从语言层面来提供优化SQL。如果说有一把钥匙能打开SQL优化的大门,那么解释计划就是这样的一把钥匙。什么是解释计划--数据根据统计信息生成的代码执行计划,了解释计划,理解解释计划就能帮助我们理解代码的瓶颈,问题的所在,有的放矢进行优化。Oracle提供了多种解释计划,hive,mongodb,mysql等数据库都提供相似的工具。在第一章的时候,举例子的时候也用到解释计划,刚好借这个机会也来说说解释计划。 # 如何获取解释计划 ## 方式一:explain plan for 用法) 步骤1:explain plan for "你的SQL" 步骤2:select * from table(dbms_xplan.display()); 例子) ``` explain plan for SELECT * FROM t1, t2 WHERE t1.id = t2.t1_id AND t1.n in(18,19); select * from table(dbms_xplan.display()); PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------------- Plan hash value: 3532430033 ------------------------------------------------------------------------------------------- | Id | Operation | Name | ...
osenlin 发布于 2个月前 阅读 2023 点赞 8

深度学习之视频摘要发展综述

现如今城市生活节奏越来越快,用户在浏览一些视频时,并不想花费大量的时间来看一个完整的视频。更多时候,用户只想知道这个视频最精华的信息,也是基于这种需求,谷阿莫等影视评论者才得到如此多的关注。此时,视频摘要就体现出其价值所在了。   什么是视频摘要?   视频摘要,就是以自动或半自动的方式,通过分析视频的结构和内容存在的时空冗余,从原始视频中提取有意义的片段/帧。从摘要的技术处理过程来讲,视频摘要一般可以分成两种,静态视频摘要和动态视频摘要。现阶段,我们公司主要致力于静态视频摘要的研究。接下来就和大家说一下静态视频摘要。   什么是静态视频摘要?   静态视频摘要,又称为视频概要,即用一系列从原始视频流中抽取出来的静态语义单元来表示视频内容的技术。简单来说,就是在一段视频中提取出一些关键帧,通过将多个关键帧组合成视频摘要,使用户可以通过少量的关键帧快速浏览原始视频内容。进一步发展的话可以为用户提供快速的内容检索服务。   例如,公开课的视频中,提取出含有完整PPT的帧。我们将含有关键信息的所有帧提供给浏览者,可以使其在较短的时间内了解到较长视频的主要内容。又例如,将一个2小时的电影提取出其关键部分,...
图鸭科技研究员 发布于 2个月前 阅读 1128 点赞 2

分布式实时日志分析解决方案ELK部署架构

一、概述 ELK 已经成为目前最流行的集中式日志解决方案,它主要是由Beats、Logstash、Elasticsearch、Kibana等组件组成,来共同完成实时日志的收集,存储,展示等一站式的解决方案。本文将会介绍ELK常见的架构以及相关问题解决。 Filebeat:Filebeat是一款轻量级,占用服务资源非常少的数据收集引擎,它是ELK家族的新成员,可以代替Logstash作为在应用服务器端的日志收集引擎,支持将收集到的数据输出到Kafka,Redis等队列。 Logstash:数据收集引擎,相较于Filebeat比较重量级,但它集成了大量的插件,支持丰富的数据源收集,对收集的数据可以过滤,分析,格式化日志格式。 Elasticsearch:分布式数据搜索引擎,基于Apache Lucene实现,可集群,提供数据的集中式存储,分析,以及强大的数据搜索和聚合功能。 Kibana:数据的可视化平台,通过该web平台可以实时的查看 Elasticsearch 中的相关数据,并提供了丰富的图表统计功能。 二、ELK常见部署架构 2.1、Logstash作为日志收集器 这种架构是比较原始的部署架构,在各应用服务器端分别部署一个Logstash组件,作为日志收集器,然后将Logstash收集到的数据过滤、分析、格式化处理后发送至Elasticsearch存储,最后使用Kibana进...
FEINIK 发布于 3个月前 阅读 5391 评论 6 点赞 4

用Python实现一个大数据搜索引擎

搜索是大数据领域里常见的需求。Splunk和ELK分别是该领域在非开源和开源领域里的领导者。本文利用很少的Python代码实现了一个基本的数据搜索功能,试图让大家理解大数据搜索的基本原理。 布隆过滤器 (Bloom Filter) 第一步我们先要实现一个布隆过滤器。 布隆过滤器是大数据领域的一个常见算法,它的目的是过滤掉那些不是目标的元素。也就是说如果一个要搜索的词并不存在与我的数据中,那么它可以以很快的速度返回目标不存在。 让我们看看以下布隆过滤器的代码: class Bloomfilter(object): """ A Bloom filter is a probabilistic data-structure that trades space for accuracy when determining if a value is in a set. It can tell you if a value was possibly added, or if it was definitely not added, but it can't tell you for certain that it was added. """ def __init__(self, size): """Setup the BF with the appropriate size""" self.values = [False] * size self.size = size def hash_value(self, value): """Hash the value provided and scale it to fit the BF size""" ...
naughty 发布于 3个月前 阅读 2753 评论 3 点赞 5

深度思考Spark Runtime机制

序言 在以往的博客一天一个函数系列中,我们集中精力攻克了一座又一座的spark中那些晦涩的语法,收获了不少知识。如果以战喻,那就是我们的游击战取得了局部的显著效果。但是要想撼动整个spark-streaming大厦,还需要对整个运行时的机制有一个深入性的了解,知道所谓的接口应用,调用都是一些工程性封装好的东西,这些只要经过熟练的训练即可,但是想要更好的运用,就必须从底层了解它的机制。 在深入理解运行时机制之前,我建议大家思考一下这个问题,为什么spark采用的计算模型是以宽依赖为分界线的DAG模式?在我看来有以下几个优势在里面,第一点是按照不同的stage划分,使得计算更加高效,窄依赖诸如x平方,可以直接以pipe的形式进行操作,而宽依赖诸如(x+y)的平方,它需要等父依赖就绪后才能计算,所以这样的划分能够使计算速率最大化。第二点是,由于分布式集群的不可控性,我们的数据可能要随时落盘,这样一来由于我们采用的是stage模式的处理,我们就可以将中间结果保存在磁盘上,而不会发生由于宕机使得数据全部丢失的情况。 基于以上概念,我们来谈谈一些专业术语以及spark运行时的架构。 Terminologies SparkContext SparkContext是整个Spark Application的核...
牧师-Panda 发布于 5个月前 阅读 860 评论 2 点赞 2

你想了解的Hive Query生命周期--钩子函数篇!

一个Hive SQL语句的执行需要经历哪些阶段? 在这些阶段中,我们可以做哪些事来影响它? Hive为我们提供了很多的钩子函数,我们可以怎样利用它为Hive实现扩展?
问津已非少年 发布于 6个月前 阅读 812 评论 3 点赞 2

【干货】Apache Hive 2.1.1 安装配置超详细过程,配置hive、beeline、hwi、HCatalog、WebHCat等组件

    在Docker环境成功搭建了Apache Hadoop 2.8 分布式集群,并实现了NameNode HA、ResourceManager HA之后(详见我的另一篇博文:Apache Hadoop 2.8分布式集群详细搭建过程),接下来将搭建最新稳定版的Apache Hive 2.1.1,方便日常在自己电脑上测试hive配置和作业,同样的配置也可以应用于服务器上。以下是Apache Hive 2.1.1的安装配置详细过程 1、阅读Apache Hive官网说明文档,下载最新版本Hive        Hive是一个基于Hadoop的数据仓库工具,将HDFS中的结构化数据映射为数据表,并实现将类SQL脚本转换为MapReduce作业,从而实现用户只需像传统关系型数据库提供SQL语句,并能实现对Hadoop数据的分析和处理,门槛低,非常适合传统的基于关系型数据库的数据分析向基于Hadoop的分析进行转变。因此,Hive是Hadoop生态圈非常重要的一个工具。        安装配置Apache Hive,最直接的方式,便是阅读 Apache Hive官网的说明文档,能了解到很多有用的信息。Apache Hive 要求JDK 1.7及以上,Hadoop 2.x(从Hive 2.0.0开始便不再支持Hadoop 1.x),Hive 可部署于Linux、Mac、Windows环境。        从官网下载最新稳定版本的 Apache Hive 2.1.1 2、安装配置Apache Hi...
雪饼 发布于 8个月前 阅读 2202 评论 2 点赞 2

【干货】Apache Hadoop 2.8 完全分布式集群搭建超详细过程,实现NameNode HA、ResourceManager HA高可靠性

最近在自己的笔记本电脑上搭建了Apache Hadoop分布式集群,采用了最新的稳定版本2.8,并配置了NameNode、ResourceManager的HA高可用,方便日常对Hadoop的研究与测试工作。详细的搭建过程如下: 1、安装docker,创建docker容器,用于搭建hadoop节点 docker真是个好东西啊,当要在自己的笔记本上搭建分布式集群时,由于CPU、内存、磁盘有限,无法在VMware上虚拟出太多节点,这时使用docker创建几个容器,就能轻松搭建一个分布式集群了。 (1)先在VMware上安装centos6.9,作为宿主机,然后安装docker,具体过程见我另一篇博文:Centos6.9安装docker (2)然后再docker hub中拉取centos镜像,用于创建分布式集群的节点,推荐在docker中安装centos6(docker中的centos7有坑,被坑过,呜呜),具体过程见我另一篇博文:docker中安装centos6 (3)centos镜像准备好后,就开始创建docker容器,用于搭建hadoop的节点 # 创建4个节点,用于搭建hadoop docker run -it --name hadoopcentos1 centos:6 /bin/bash docker run -it --name hadoopcentos2 centos:6 /bin/bash docker run -it --name hadoopcentos3 centos:6 /bin/bash docker run -it --name hadoopcentos4 centos:6 /bin/b...
雪饼 发布于 8个月前 阅读 4547 评论 21 点赞 6

Nginx+Keepalived(双机热备)搭建高可用负载均衡环境(HA)

Nginx+Keepalived搭建高可用负载均衡环境(HA) http://blog.csdn.net/xyang81/article/details/52554398可以看更多介绍 Keepalived的介绍可以百度一堆一堆的资料。一定要看看哦。 1.基于上一篇博客总结,再次安装一个虚拟机当backup服务器,这个服务器只安装Keepalived+Nginx即可 2.Master还是上一篇博文的虚拟机,环境是Tomcat+JDK+Nginx+Keepalived 3.每个Nginx服务器都安装Keepalived
小帅帅丶 发布于 8个月前 阅读 6572 评论 5 点赞 6

Elasticsearch 与 Thinkphp 增删改查操作

    Elasticsearch 建模  mappings有点类似我们定义MySQL的数据库表结构的时候,需要指定每个字段的名字,其数据类型一样。当然,这个定义过程,也指明了这个表结构一共含有多少个字段了。对于ES而言,就相当于指定了一个document有多少field,每个field的数据类型,注意,这个比MySQL定义表过程,还多了一个有用的操作,就是指定每个字段可用的分析器(analyzer). 当然,不指定的话,就是采用默认的standard analyzer,当然你也可以指定某个字段不需要分析器(not_analyzed).   ES支持的数据类型: 简单数据类型: string, date, long, double,integer,boolean 以及ip等等 层级结构类型:JSON型的object,嵌套类型 (都是JSON) 特殊结构类型:geo_point, geo_shape以及completion。 这些数据类型,可以在创建索引的时候,指定   下面,再来说说分析器analyzer。 ES系统默认提供了很多的分析器,最著名的是standard analyzer。另外,还有下面的一些分析器,这些分析器,可以进入官网进行深入研究。 Simple Analyzer Whitespace Analyzer Stop Analyzer Keyword Analyzer Pattern Analyzer Language Analyzers Fingerprint Analyzer 这些分析器中,重点在于如何...
VHUOI 发布于 9个月前 阅读 1271 评论 2 点赞 1 打赏 2

Spark Streaming场景应用-Kafka数据读取方式

## 概述 Spark Streaming 支持多种实时输入源数据的读取,其中包括Kafka、flume、socket流等等。除了Kafka以外的实时输入源,由于我们的业务场景没有涉及,在此将不会讨论。本篇文章主要着眼于我们目前的业务场景,只关注Spark Streaming读取Kafka数据的方式。 Spark Streaming 官方提供了两种方式读取Kafka数据: - 一是Receiver-based Approach。该种读取模式官方最先支持,并在Spark 1.2提供了数据零丢失(zero-data loss)的支持; - 一是Direct Approach (No Receivers)。该种读取方式在Spark 1.3引入。 此两种读取方式存在很大的不同,当然也各有优劣。接下来就让我们具体剖解这两种数据读取方式。 ## 一、Receiver-based Approach 如前文所述,Spark官方最先提供了基于Receiver的Kafka数据消费模式。但会存在程序失败丢失数据的可能,后在Spark 1.2时引入一个配置参数`spark.streaming.receiver.writeAheadLog.enable`以规避此风险。以下是官方的原话: > under default configuration, this approach can lose data under failures (see receiver reliability. To ensure zero-data loss, you have to additionally enable Write Ahead Logs in Spark Streaming (in...
狂奔小蜗牛 发布于 9个月前 阅读 3286 评论 3 点赞 3 打赏 2

CentOS7搭建 Hadoop + HBase + Zookeeper集群

本文主要介绍搭建Hadoop、HBase、Zookeeper集群环境的搭建
kolbe 发布于 9个月前 阅读 5854 评论 15 点赞 20 打赏 1

在Ignite上运行微服务:第三部分

本文是系列文章的最后一篇,这个系列会详细描述如何使用像Ignite这样的内存数据网格(IMDG)技术来构建容错和可扩展的微服务解决方案。
李玉珏 发布于 10个月前 阅读 1688 评论 2 点赞 4 打赏 1

开源中国用户分析

加入开源中国也有超过三年的时间了,觉得开源中国已经越办越好了,突然很想知道它究竟有多好,我是不是开源中国最老的用户,我有176个开源中国的积分能够排名第几,带着这些问题,我抓取了部分开源中国的用户信息,做了一个简单的分析。 数据获取 要获得用户数据,可以通过开源中国的网页来进行。这个是我的主页面 这个页面包含了用户的基本信息,包括用户名,积分,粉丝,关注等等。 点击粉丝链接可以获得所有的粉丝的情况 然后我们就可以通过这些链接,迭代的找到所有相关连的数据了。 工具选取 这次的数据抓取我选用了requests和pyquery requests是一个非常好用的python的http/rest的客户端,比之python自带的urllib要好用很多,推荐使用。 pyquery是用来解析和操纵html和DOM文档,提供类似jquery的语法,比诸如beatifulSoap要好用不少,尤其如果你是一个前段开发者,熟悉jquery,那就更方便了。大家可以参考我的另一篇博客了解更多的背景信息。 爬取网页数据 为了抓取网页的内容,我们可用chrome自带的工具来查看网页的DOM结构: 核心的代码如下: def get_user_info(url): try: r = requests.get(url + "/fans", headers=headers) doc = pq(r.t...
naughty 发布于 10个月前 阅读 3861 评论 53 点赞 18

Spark 1.6.1分布式集群环境搭建

本文展示了在之前搭建的Hadoop分布式集群的基础上如何搭建Spark分布式集群环境。
JackieYeah 发布于 2年前 阅读 7755 评论 6 点赞 9
顶部