使用Spark-ML进行数据分析
Spark版本:2.4.0
语言:Scala
任务:分类
这里对数据的处理步骤如下:
载入数据
归一化
PCA降维
划分训练/测试集
线性SVM分类
验证精度
输出cvs格式的结果
前言
从Spark 2.0开始,Spark机器学习API是基于DataFrame的spark.ml。而之前的基于RDD的API spark.mllib已进入维护模式。
也就是说,Spark ML是Spark MLlib的一种新的API,它主要有以下几个优点:
面向DataFrame,在RDD基础上进一步封装,提供更强大更方便的API
Pipeline功能,便于实现复杂的机器学习模型
性能提升
基于Pipeline的Spark ML中的几个概念:
DataFrame:从Spark SQL 的引用的概念,表示一个数据集,它可以容纳多种数据类型。例如可以存储文本,特征向量,标签和预测值等
Transformer:是可以将一个DataFrame变换成另一个DataFrame的算法。例如,一个训练好的模型是一个Transformer,通过transform方法,将原始DataFrame转化为一个包含预测值的 ...
使用NiFi将数据从Mysql导入至HBase
1. 启动并登录NiFi
1.1 在本机启动nifi
./bin/nifi.sh start
1.2 登录nifi
打开浏览器,访问xxx.xxx.xxx.xxx:8080(默认端口是8080)
2. 构建Processor
2.1 ExecuteSQL
拖一个Processor到面板中,选择ExecuteSQL类型
在processor上点击右键–>选择configure–>选择properties
选择Database Connection Pooling Service属性值为:DBCPConnectionPool,然后再点击右侧的箭头,进入项目的Configuration界面,配置数据库连接的具体信息。
在项目的Configuration页面中,选择新生成的DBCPConnectionPool条目,点击右侧的齿轮按钮,进行相关配置。
依次填写:
Database Connection URL:
数据库连接字符串,如:
jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding ...
NiFi的分布式安装与启动
1 简介
NiFi是一个易用、可靠、功能强大的数据处理与分发系统,是Apache的开源项目。只需在web界面中用拖拽的方式定义数据处理节点,数据处理流程和配置相关参数,NiFi即可自动完成复杂的数据处理任务,非常方便。
这里介绍NiFi 1.8.0的安装和启动方法。
2 安装
NiFi的安装使用非常简单,只需配置好JAVA环境,将官网上下载的NiFi二进制包解压,然后进入bin目录,执行./nifi.sh start,即可启动NiFi。
当然,这种方式运行的是单机版的NiFi,如果要进行分布式安装,还需要进行其他一些配置。
分布式的NiFi需要使用Zookeeper作为集群的管理工具,NiFi本身内置了Zookeeeper,也可以使用独立安装的Zookeeper。
2.1 使用内置Zookeeper
对每一个节点完成以下配置(建议在一个节点配置好,复制到其他节点再稍作修改)
① 修改conf/zookeeper.properties
1234567891011121314151617clientPort=2181initLimit=10autopurge.purgeInterval=2 ...
GeoMesa-Java-API-写入与查询数据
1 写入数据
GeoMesa作为空间大数据处理框架,本身是不存储数据的。数据存储依赖于底层的分布式数据库,如HBase,Accumulo等。GeoMesa为了同时支持多种数据库,提供了一个抽象的接口,屏蔽不同数据库操作方法的差异,使用户用一种统一的方式存储和查询数据。来看下面这GeoMesa存储架构图:
从这张图中可以看出,无论采用何种方式写入数据,我们都不需要直接操作数据库,而只需按照GeoTools或GeoMesa的接口,规范好要存储的数据,提交给GeoMesa处理即可。GeoMesa会自动为我们完成创建元数据、创建索引、存储数据等一系列过程。
GeoTools 是英国利兹大学(University of Leeds)的James Macgll 从1996 年开始研发的一个操作和显示地图的开源Java 代码库,提供了一系列符合规范的操作地理空间数据的方法,可以用它来实现一个地理信息系统。GeoTools库在开发时执行OGC规范。
GeoTools提供了许多用于表示地理空间数据的接口,可以用他们来定义需要存储的数据:
DataStore
DataStore是数据的核心访问模型, ...
使用Java-API远程访问HDFS
概述
在虚拟机中配置好Hadoop环境,通过本地(宿主机)编写Java程序去访问虚拟机中的HDFS,完成基本的读取文件操作。
方法
1.在mavan中添依赖项
123456789101112131415<dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.7</version></dependency><dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-hdfs</artifactId> <version>2.7.7</version></dependency><dependency> <groupId&g ...
GeoMesa-从GDELT中写入数据
GDELT介绍
GDELT是国外一个大数据存储项目,它提供了自1979年至今的全球广播、印刷和网络新闻媒体报道的事件,并按时间和位置索引。其数据量十分庞大,类别也很丰富。教程里使用的是这个地址下的数据,更新的频率为15分钟。教程使用2018年1月的数据进行试验。
下载数据
使用一个shell脚本批量下载这些文件(注意:官网教程里的脚本有误):
1234567891011#!/bin/bashmkdir gdelt && cd gdeltfor day in {25..31}; do mkdir 201801$day && cd 201801$day; for hour in {00..23}; do for minute in 00 15 30 45; do wget "http://data.gdeltproject.org/gdeltv2/201801${day}${hour}${minute}00.export.CSV. ...
GeoMesa的安装与Quick-Start【HBase】
GeoMesa是一个运行在分布式计算系统上,支持大规模时空矢量数据查询和分析的开源工具。
本文介绍GeoMesa安装,以及来自官方的Quick Start教程(基于HBase)。
###第一部分 GeoMesa的安装
######1.下载
从Github下载已经编译好的二进制文件,解压至目标目录
123456# download and unpackage the most recent distribution:wget "https://github.com/locationtech/geomesa/releases/download/geomesa_2.11-$VERSION/geomesa-hbase-dist_2.11-$VERSION-bin.tar.gz"tar xvf geomesa-hbase-dist_2.11-$VERSION-bin.tar.gzcd geomesa-hbase-dist_2.11-$VERSIONlsbin/ conf/ dist/ docs/ examples/ lib/ LICENSE.txt logs/
...
完全分布式HBase环境搭建【主要流程记录】
本文记录了完全分布式Hbase数据库安装过程中的主要流程以及遇到的问题。
若要查看详细操作步骤可以参考文末的资料。
#1 安装HDFS
架构
3台虚拟机,名字分别为master,hadoop-2,hadoop-3。其中master为NameNode,其余机器为DataNode。
系统环境
Ubuntu 18.04操作系统
Hadoop版本
2.7.7
流程
(1/6) 先创建一台主机,完成基础配置,避免重复的工作
使用Vmware软件,虚拟出1台主机,命名为master,作为Master节点,并安装Ubuntu18.04操作系统。
在这台机器中,配置 hadoop 用户、安装 SSH server、安装 Java 环境、设置环境变量、安装必要的软件(vim,curl,wget等)。
(2/6) 克隆主机,修改网卡,修改hosts文件
克隆两个副本,分别命名为hadoop-2和hadoop-3。
开机前先修改副本的网卡地址(Mac地址),开机后确保ip互不相同。
修改主机名,修改hosts文件使主机名与ip地址对应。【127.0.0.1 localhost】一项需保留,文件IP ...
WebGIS中的坐标系和瓦片地图
本文主要介绍坐标系和瓦片地图的相关知识, 他们是进行WebGIS开发的基础。
1 坐标系
坐标系分为地理坐标系和投影坐标系,他们的定义如下:
地理坐标系(Geographic Coordinate System):
是使用三维球面来定义地球表面位置,以实现通过经纬度对地球表面点位引用的坐标系。包括角度测量单位、本初子午线和参考椭球体三部分。
投影坐标系(Projection Coordinate System):
是使用基于X,Y值的坐标系统来描述地球上某个点所处的位置。它由地理坐标系和投影方法两个要素所决定。
1.1 地理坐标系
旋转椭球体
地球表面是崎岖不平的,人们为了精确表示地球表面的位置,引入了旋转椭球体的概念。即用一个规则的旋转椭球体去逼近真实的地球表面。一个旋转椭球体的参数主要有以下三个:长半轴、短半轴、扁率。定义了这三个参数,也就唯一确定了一个旋转椭球体。
大地基准面
定义了椭球体的形状后,还需要确定椭球体的位置。椭球体表面与真实地球表面存在差异,并且在世界的不同地区,这种差异也不尽相同。因此椭球体的定位直接决定了地理坐标与真实位置的误差 ...










