HBase 存储船舶轨迹方案
背景:项目需求要存储三个月的船舶轨迹数据,并且能够根据时间段快速查询单艘船的轨迹数据。船舶数据4~5万,5分钟记录一次轨迹。
hbase集群的安装
hbase 集群架构
前期准备 --去对应的官网下载即可
|软件|版本 |
软件 | 版本 |
---|---|
虚拟机 | centos7 |
jdk | 1.8 |
HBase | 1.6.0 |
zookeeper | 3.5.8 |
hadoop | 3.1.4 |
1、配置hostname和hosts
1、分别修改三虚拟机 vim /etc/hosts,添加以下内容
192.168.138.129 master
192.168.138.128 slave1
192.168.138.127 slave2
2、执行 systemctl restart network 使配置生效
2、master、slave1、slave2之间配置相互免密码登录
1、在master、slave1、slave2中执行
vim /etc/ssh/sshd_config
将 PubkeyAuthentication yes 打开
2、分别在master、slave1、slave2上执行命令ssh-keygen -t rsa,一路回车下去,最终会在/root/.ssh目录下生成rsa文件,如下图:
3、在master上执行如下三行命令,执行完毕后,三个容器的rsa公钥都存在/root/.ssh/authorized_keys文件中了:
cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
ssh root@slave1 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
ssh root@slave2 cat ~/.ssh/id_rsa.pub>> ~/.ssh/authorized_keys
输入密码。输入master root的密码(当前用户密码)
4、 分别在slave1、slave2上执行以下命令,将master上的authorized_keys文件复制过来:
ssh root@master cat ~/.ssh/authorized_keys>> ~/.ssh/authorized_keys
3、安装、启动zookeeper集群
1、在master创建目录
执行
mkdir -p /usr/local/zk/data
2、在master 上执行
1、cd /usr/local/zk
2、wget https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.8/apache-zookeeper-3.5.8-bin.tar.gz
3、tar -zvf apache-zookeeper-3.5.8-bin.tar.gz
4、mv apache-zookeeper-3.5.8-bin zk35
3、用WinScp修改配置文件(也可以用
vim /usr/local/zk/zk35/conf/zoo.cfg),如图所示
4、将zk文件夹复制到slave1 和slave2中
scp -P 22 -r /usr/local/zk root@slave1:/usr/local
scp -P 22 -r /usr/local/zk root@slave2:/usr/local
5、创建myid文件
master 执行 echo '1'>> /usr/loacal/zk/zkdata/
slave1执行 echo '2'>> /usr/loacal/zk/zkdata/
slave2 执行 echo '3'>> /usr/loacal/zk/zkdata/
6、启动zookeeper集群,在master、slave1、slave2上执行
cd /usr/local/zk/zk35/bin
./zkServer.sh start
6、查看是否正常启动,看到控制台打印
Starting zookeeper .... STAERED
#查看进程
jps
即启动成功!‘
4、安装、启动 hadoop集群
1、在master上创建目录,执行以下命令
#创建dfs目录
mkdir -p /usr/local/hadoop/dfs/data
mkdir -p /usr/local/hadoop/dfs/name
#创建hadoop临时目录和进程目录
mkdir -p /usr/local/hadoop/hdtemp/pids
#下载hadoop
cd /usr/local/hadoop
wget https://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.4/hadoop-3.1.4-src.tar.gz
#解压和重命名
tar -zvf hadoop-3.1.4-src.tar.gz
mv hadoop-3.1.4-src.tar.gz hd31
2、修改配置文件
#修改hadoop-env.sh、yarn-env.sh配置文件
vim /usr/local/hadoop/hdp31/etc/hadoop/hadoop-env.sh
vim /usr/local/hadoop/hdp31/etc/hadoop/yarn-env.sh
#最前面添加自己的JAVA_HOME路径
export JAVA_HOME=/usr/java/jdk1.8.0_144
#修改core-site.xml配置文件
vim /usr/local/hadoop/hdp31/etc/hadoop/core-site.xml
#添加配置
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/hdtemp</value>
</property>
</configuration>
#修改hdfs-site.xml文件
vim /usr/local/hadoop/hdp31/etc/hadoop/hdfs-site.xml
#添加以下配置
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
</configuration>
#修改mapred-site.xml文件
vim /usr/local/hadoop/hdp31/etc/hadoop/mapred-site.xml
#添加以下配置
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
#修改yarn-site.xml文件
vim /usr/local/hadoop/hdp31/etc/hadoop/yarn-site.xml
#添加以下配置
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>
#打开workers文件(也就是以前版本的slaves文件)添加集群备节点
slave1
slave2
3、master上的hadoop包复制到slave1和slave2中
scp -P 22 -r /usr/local/hadoop root@slave1:/usr/local
scp -P 22 -r /usr/local/hadoop root@slave2:/usr/local
注意:hadoop-env.sh和yarn-env.sh 中的JAVA_HOME 要修改为相对应的java路径
4、配置环境变量
# 修改配置文件
vim /etc/profile
#添加以下配置
export HADOOP_HOME=/usr/local/hadoop/hdp31
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HIVE_HOME/bin:
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
# 使配置文件生效
source /etc/profile
5、启动hadoop 集群,在master、slave1、slave2
# 格式化hadoop
执行
cd /usr/local/hadoop/hdp31/bin
./hdfs namenode -format
#启动hadoop
cd /usr/local/hadoop/hdp31/sbin
./start-all.sh
#查看进程是否正常启动
jps
5、安装、启动hbase集群
1、在master上创建目录,执行以下命令
# 创建目录
mkdir -p /usr/local/hadoop/hbase
cd /usr/local/hadoop/hbase
# 下载hbase
wget https://mirror.bit.edu.cn/apache/hbase/1.6.0/hbase-1.6.0-bin.tar.gz
#解压和重命名
tar -zvf hbase-1.6.0-bin.tar.gz
mv hbase-1.6.0-bin.tar.gz hb16
2、修改配置文件
# 修改hbase-site.xml 文件
cd /usr/local/hbase/hb16/conf
vim hbase-site.xml
# 添加以下配置
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
<description>The directory shared by region servers.</description>
</property>
<property>
<name>hbase.hregion.max.filesize</name>
<value>1073741824</value>
<description>
Maximum HStoreFile size. If any one of a column families' HStoreFiles has
grown to exceed this value, the hosting HRegion is split in two.
Default: 256M.
</description>
</property>
<property>
<name>hbase.hregion.memstore.flush.size</name>
<value>1073741824</value>
<description>
Memstore will be flushed to disk if size of the memstore
exceeds this number of bytes. Value is checked by a thread that runs
every hbase.server.thread.wakefrequency.
</description>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
<description>The mode the cluster will be in. Possible values are
false: standalone and pseudo-distributed setups with managed Zookeeper
true: fully-distributed with unmanaged Zookeeper Quorum (see hbase-env.sh)
</description>
</property>
<property>
<name>hbase.zookeeper.property.clientPort</name>
<value>2181</value>
<description>Property from ZooKeeper's config zoo.cfg.
The port at which the clients will connect.
</description>
</property>
<property>
<name>zookeeper.session.timeout</name>
<value>120000</value>
</property>
<property>
<name>hbase.zookeeper.property.tickTime</name>
<value>6000</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master,slave1,slave2</value>
</property>
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
# 修改 regionservers 文件
cd /usr/local/hbase/hb16/conf
vim regionservers
# 添加以下配置
master
slave1
slave2
# 修改hbase-env.sh 文件
cd /usr/local/hbase/hb16/conf
vim hbase-env.sh
# 找到 export JAVA_HOME 添加自己的环境变量
export JAVA_HOME=/usr/lib/jvm/java-1.8.0
3、master上的hbase包复制到slave1和slave2中
scp -P 22 -r /usr/local/hbase root@slave1:/usr/local
scp -P 22 -r /usr/local/hbase root@slave2:/usr/local
注意:hbase-env.sh 中的JAVA_HOME 要修改为相对应的java路径
4、配置环境变量
# 修改配置文件
vim /etc/profile
#添加以下配置
export HBASE_HOME=/usr/local/hbase/hb16
export PATH=$HBASE_HOME/bin:$PATH
# 使配置文件生效
source /etc/profile
5、启动hbase集群 在master、slave1、slave2
# 执行
cd /usr/local/hbase/hb16/bin
start-hbase.sh
# 查看进程
jps
6、查看hbase 程序的监控页面
访问 http://129.168.138.129:16010/master-status
参考链接:
链接: https://blog.csdn.net/boling_cavalry/article/details/78041811.