一、问题描述
海量空间数据存储要求服务器水平扩展性强,基于Hadoop的NoSQL数据库具有水平扩展性强的特点,其高效的并行存储机制也为空间检索提供快速响应的能力。
二、方案选择
由于将数据存入Hbase中需要考虑如何存储,空间数据处理的基本单位是二维或三维坐标,HBase只支持一维行键检索。行键的设置是HBase存储和处理空间数据首要解决的问题。不同于Hilbert、Geohash等降维方法,此次使用了行键设计方法,将坐标数据转化为一维字符串。并且提出了对于表的设计。
并且本文提供了空间数据区域查询算法-窗口区域查询。
三、开发平台
虚拟机:Oracle VM VirtualBox
Linux系统: Ubuntu
Hadoop版本: Hadoop-2.6.0
HBase版本:hbase-0.98.11-hadoop2-bin.tar.gz
四、参考网站及文献
https://www.shiyanlou.com/courses/35
五、Hadoop的构建
1、Hadoop启动模式
单机模式:默认情况下运行为一个单独机器上的独立java进程,主要用于调试环境
伪分布模式:在单个机器上模拟成分布式多节点环境,每一个Hadoop守护进程都作为一个独立的java进程运行。
完全分布模式:真是的生产环境,搭建在完全分布式的集群环境
由于此次实验主要是为了实现如何在HBase中,设计空间检索方法,对空间数据进行空间查询。所以采用了伪分布模式,不但可以在一台机器上运行。还可以模拟多节点的环境。
2、环境配置
2.1添加用户
sudo adduser hadoop
2.2将hadoop用户加入sudo用户组
sudo usermod -G sudo hadoop
2.3安装openssh-server、java、rsync等
sudo apt-get update
sudo apt-get install openssh-server rsync
sudo service ssh restart
sudo apt-get install openjdk-7-jdk
2.4配置ssh免密码登录
切换到hadoop用户,需要输入添加hadoop用户时配置的密码。后续步骤都将在hadoop用户的环境中执行。
su -l hadoop
ssh-keygen -t rsa -P ""
2.5在/home/Hadoop/.ssh目录下生成了id_rsa(私钥)和id_rsa.pub(公钥)两个文件,将公钥追加到authorized_keys中,该文件保存所有允许以当前用户身份登录到ssh客户端用户的公钥内容。
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys