本文档环境基于ubuntu14.04版本,如果最终不使用SuperMap iServer 9D ,可以不配置geomesa-hbase_2.11-2.0.1-bin.tar.gz

(转发请注明出处:http://www.cnblogs.com/zhangyongli2011/ 如发现有错,请留言,谢谢)

一、准备

1.1 软件版本

  1. hadoop-2.6.5
  2. zookeeper-3.4.10.tar.gz
  3. hbase-1.3.1-bin.tar.gz
  4. geomesa-hbase_2.11-2.0.1-bin.tar.gz

1.2 网络规划

本文规划搭建 3 台机器组成集群模式,IP 与计算机名分别为, 如果是单台搭建,只需填写一个即可

  1. 192.168.20.122 master
  2. 192.168.20.123 slave1
  3. 192.168.20.124 slave2

1.3 软件包拷贝

可将上述软件包拷贝到 3 台机器的 opt 目录下

  1. JDK 1.8.0
  2. Hadoop 2.6.5
  3. zookeeper-3.4.10.tar.gz
  4. hbase-1.3.1-bin.tar.gz
  5. geomesa-hbase_2.11-2.0.1-bin.tar.gz

1.4 SSH 设置

修改/etc/ssh/sshd_config 文件,将以下三项开启 yes 状态

  1. PermitRootLogin yes
  2. PermitEmptyPasswords yes
  3. PasswordAuthentication yes

重启 ssh 服务

  1. service ssh restart

这样 root 用户可直接登陆,以及为后续 ssh 无密码登录做准备。

1.5 绑定 IP 和修改计算机名

1.5.1 修改/etc/hosts,添加 IP 绑定注释 127.0.1.1 绑定(不注释会影响 hadoop 集群)

1.5.2 修改/etc/hostname,为绑定计算机名。(计算机名和上面 hosts 绑定名必须一致)

1.6 SSH 无密码登陆(需提前安装 ssh)

1、ssh-keygen -t rsa #用 rsa 生成密钥,一路回车。

2、cd ~/.ssh #进到当前用户的隐藏目录(.ssh)。

3、本机装有 ssh-copy-id 命令,可以通过

  1. ssh-copy-id root@第二台机器名

然后输入密码,在此之后在登陆第二台机器,可以直接 ssh[空格]第二台机器名 进行访问,首次设置需要输入密码,第二次之后不再需要输入密码。

1.7 JDK 安装(三台机器可同步进行)

下载:jdk-8u131-linux-x64.tar.gz 包,放到/opt 下解压

1.7.1 将解压后的文件夹重命名
  1. mv jdk1.8.0_131 jdk
1.7.1 将 JDK 环境变量配置到/etc/profile 中
  1. export JAVA_HOME=/opt/jdk
  2. export JRE_HOME=/opt/jdk/jre
  3. export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
  4. export PATH=$JAVA_HOME/bin:$PATH
1.7.2 检查 JDK 是否配置好
  1. source /etc/profile
  2. java -version

1.8 其他配置(三台机器每台单独配置)

1.8.1 网络配置

修改为固定 IP ,/etc/network/interfaces

  1. # The loopback network interface
  2. auto lo
  3. iface lo inet loopback
  4. # The primary network interface
  5. auto eth0
  6. # iface eth0 inet dhcp
  7. iface eth0 inet static
  8. address 192.168.20.122
  9. netmask 255.255.255.0
  10. gateway 192.168.20.1

重启网络

  1. service networking restart
1.8.2 DNS 配置
第一种方法,永久改

修改/etc/resolvconf/resolv.conf.d/base(这个文件默认是空的)

  1. nameserver 119.6.6.6

保存后执行

  1. resolvconf -u

查看 resolv.conf 文件就可以看到我们的设置已经加上

  1. cat /etc/resolv.conf

重启 resolv

  1. /etc/init.d/resolvconf restart
第二种方法,临时 改

修改 /etc/resolv.conf 文件,增加

  1. nameserver 119.6.6.6

重启 resolv

  1. /etc/init.d/resolvconf restart

二、Hadoop 部署

2.1 Hadoop 安装(三台机器可同步进行)

  1. 下载 hadoop2.6.5(hadoop-2.6.5.tar.gz)
  2. 解压 tar -zxvf hadoop-2.6.5.tar.gz ,并在主目录下创建 tmp、dfs、dfs/name、dfs/node、dfs/data
  1. root@master:/opt/hadoop-2.6.5# mkdir tmp
  2. root@master:/opt/hadoop-2.6.5# mkdir dfs
  3. root@master:/opt/hadoop-2.6.5# mkdir dfs/name
  4. root@master:/opt/hadoop-2.6.5# mkdir dfs/node
  5. root@master:/opt/hadoop-2.6.5# mkdir dfs/data

2.2 Hadoop 配置

以下操作都在 hadoop-2.6.5/etc/hadoop 下进行

2.2.1 编辑 hadoop-env.sh 文件,修改 JAVA_HOME 配置项为 JDK 安装目录
  1. export JAVA_HOME=/opt/jdk
2.2.2 编辑 core-site.xml 文件,添加以下内容,其中 master 为计算机名,/opt/hadoop-2.6.5/tmp 为手动创建的目录
  1. <configuration>
  2. <property>
  3. <name>fs.defaultFS</name>
  4. <value>hdfs://master:9000</value>
  5. </property>
  6. <property>
  7. <name>io.file.buffer.size</name>
  8. <value>131072</value>
  9. </property>
  10. <property>
  11. <name>hadoop.tmp.dir</name>
  12. <value>file:/opt/hadoop-2.6.5/tmp</value>
  13. <description>Abasefor other temporary directories.</description>
  14. </property>
  15. <property>
  16. <name>hadoop.proxyuser.spark.hosts</name>
  17. <value>*</value>
  18. </property>
  19. <property>
  20. <name>hadoop.proxyuser.spark.groups</name>
  21. <value>*</value>
  22. </property>
  23. </configuration>
2.2.3 编辑hdfs-site.xml文件,添加以下内容

其中master为计算机名,file:/opt/hadoop-2.6.5/dfs/name和file:/opt/hadoop-2.6.5/dfs/data为手动创建目录

  1. <configuration>
  2. <property>
  3. <name>dfs.namenode.secondary.http-address</name>
  4. <value>master:9001</value>
  5. </property>
  6. <property>
  7. <name>dfs.namenode.name.dir</name>
  8. <value>file:/opt/hadoop-2.6.5/dfs/name</value>
  9. </property>
  10. <property>
  11. <name>dfs.datanode.data.dir</name>
  12. <value>file:/opt/hadoop-2.6.5/dfs/data</value>
  13. </property>
  14. <property>
  15. <name>dfs.replication</name>
  16. <value>3</value>
  17. </property>
  18. <property>
  19. <name>dfs.webhdfs.enabled</name>
  20. <value>true</value>
  21. </property>
  22. </configuration>

复制mapred-site.xml.template并重命名为mapred-site.xml

  1. cp mapred-site.xml.template mapred-site.xml
2.2.4 编辑mapred-site.xml文件,添加以下内容

其中master为计算机名

  1. <configuration>
  2. <property>
  3. <name>mapreduce.framework.name</name>
  4. <value>yarn</value>
  5. </property>
  6. <property>
  7. <name>mapreduce.jobhistory.address</name>
  8. <value>master:10020</value>
  9. </property>
  10. <property>
  11. <name>mapreduce.jobhistory.webapp.address</name>
  12. <value>master:19888</value>
  13. </property>
  14. </configuration>
2.2.5 编辑yarn-site.xml文件,添加以下内容

其中master为计算机名

  1. <configuration>
  2. <!-- Site specific YARN configuration properties -->
  3. <property>
  4. <name>yarn.nodemanager.aux-services</name>
  5. <value>mapreduce_shuffle</value>
  6. </property>
  7. <property>
  8. <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
  9. <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  10. </property>
  11. <property>
  12. <name>yarn.resourcemanager.address</name>
  13. <value>master:8032</value>
  14. </property>
  15. <property>
  16. <name>yarn.resourcemanager.scheduler.address</name>
  17. <value>master:8030</value>
  18. </property>
  19. <property>
  20. <name>yarn.resourcemanager.resource-tracker.address</name>
  21. <value>master:8035</value>
  22. </property>
  23. <property>
  24. <name>yarn.resourcemanager.admin.address</name>
  25. <value>master:8033</value>
  26. </property>
  27. <property>
  28. <name>yarn.resourcemanager.webapp.address</name>
  29. <value>master:8088</value>
  30. </property>
  31. </configuration>
2.2.6 修改slaves文件,添加本机作为集群节点

2.2.7 Hadoop集群搭建

hadoop配置集群,可以将配置文件etc/hadoop下内容同步到其他机器上,既2.2.1-2.2.6无需在一个个配置。

  1. cd /opt/hadoop-2.6.5/etc
  2. scp -r hadoop root@另一台机器名:/opt/hadoop-2.6.5/etc

2.3 Hadoop启动

1.格式化一个新的文件系统,进入到hadoop-2.6.5/bin下执行:

  1. ./hadoop namenode -format

2.启动hadoop,进入到hadoop-2.6.5/sbin下执行:

  1. ./start-all.sh

看到如下内容说明启动成功

2.4 Hadoop集群检查

检查hadoop集群,进入hadoop-2.6.5/bin下执行

  1. ./hdfs dfsadmin -report

三、ZooKeeper集群部署

3.1 ZooKeeper安装(三台机器可同步进行)

  1. 下载ZooKeeper(zookeeper-3.4.10.tar.gz),放到opt目录下
  2. 解压zookeeper-3.4.10.tar.gz,并将解压后的目录名进行修改
  1. tar -zxvf zookeeper-3.4.10.tar.gz
  2. mv zookeeper-3.4.10 zookeeper

3.2 ZooKeeper配置(三台机器可同步进行)

1.进入解压后的的zookeeper目录,创建存储数据目录zkdata

  1. cd /opt/zookeeper
  2. mkdir zkdata

2.进入zookeeper/conf目录,复制zoo_sample.cfg并重命名为zoo.cfg

  1. cd /opt/zookeeper/conf
  2. cp zoo_sample.cfg zoo.cfg

3.修改zoo.cfg文件,修改dataDir为我们新创建地址,并增加其他zookeeper节点

  1. dataDir=/opt/zookeeper/zkdata
  2. server.1=192.168.20.122:2888:3888
  3. server.2=192.168.20.123:2888:3888
  4. server.3=192.168.20.124:2888:3888

4.进入zkdata目录,新建一个文件myid文件,写入标识ID即可,ID与上面server.X相匹配

  1. cd /opt/zookeeper/zkdata
  2. vi myid

注意:

比如我配置的三个server,myid里面写的X就是server.X=ip:2888:3888 中ip所对应的X

server.1=192.168.20.122:2888:3888【192.168.20.122服务器上面的myid填写1】

server.2=192.168.20.123:2888:3888【192.168.20.123服务器上面的myid填写2】

server.3=192.168.20.124:2888:3888【192.168.20.124服务器上面的myid填写3】

3.3 ZooKeeper启动

在三台机器上分别手动一个个启动ZooKeeper,进入/opt/zookeeper-3.4.10/bin目录

  1. cd /opt/zookeeper/bin
  2. ./zkServer.sh start

是否启动成功,执行以下命令

  1. ./zkServer.sh status

122机器输出

  1. root@master:/opt/zookeeper/bin# ./zkServer.sh status
  2. ZooKeeper JMX enabled by default
  3. Using config: /opt/zookeeper/bin/../conf/zoo.cfg
  4. Mode: follower

123机器输出

  1. root@slave1:/opt/zookeeper/bin# ./zkServer.sh status
  2. ZooKeeper JMX enabled by default
  3. Using config: /opt/zookeeper/bin/../conf/zoo.cfg
  4. Mode: leader

124机器输出

  1. root@slave2:/opt/zookeeper/bin# ./zkServer.sh status
  2. ZooKeeper JMX enabled by default
  3. Using config: /opt/zookeeper/bin/../conf/zoo.cfg
  4. Mode: follower

启动过程命令:./zkServer.sh start-foreground

四、HBase部署

4.1 HBase安装

  1. 下载HBase(hbase-1.3.1-bin.tar.gz),放到opt目录下
  2. 解压hbase-1.3.1-bin.tar.gz
  1. tar -zxvf hbase-1.3.1-bin.tar.gz

4.2 HBase配置

1.进入habase的conf目录

  1. /opt/hbase-1.3.1/conf

2.编辑hbase-env.sh文件,添加Java环境变量并关闭HBase自带的Zookeeper

  1. export JAVA_HOME=/opt/jdk/
  2. export HBASE_MANAGES_ZK=false

3.编辑hbase-site.xml 文件,添加配置

  1. <configuration>
  2. <property>
  3. <name>hbase.rootdir</name>
  4. <value>hdfs://master:9000/hbase</value>
  5. </property>
  6. <property>
  7. <name>hbase.cluster.distributed</name>
  8. <value>true</value>
  9. </property>
  10. <property>
  11. <name>hbase.master</name>
  12. <value>master:60000</value>
  13. </property>
  14. <property>
  15. <name>hbase.regionserver.handler.count</name>
  16. <value>100</value>
  17. </property>
  18. <property>
  19. <name>hbase.zookeeper.quorum</name>
  20. <value>master:2181,slave1:2181,slave2:2181</value>
  21. </property>
  22. <property>
  23. <name>hbase.zoopkeeper.property.dataDir</name>
  24. <value>/opt/zookeeper/zkdata</value>
  25. </property>
  26. </configuration>

4.编辑regionservers文件,将三台机器名添加其中

  1. root@master:/opt/hbase-1.3.1/conf# cat regionservers
  2. master
  3. slave1
  4. slave2

4.3 第三方包导入

第三方包,我们只需要geomesa-hbase中的一个jar文件,将该jar包复制到hbase中的lib目录。

geomesa-hbase下载地址:https://github.com/locationtech/geomesa/releases

此次我们使用2.11-2.0.1版本,下载后完整包名为:geomesa-hbase_2.11-2.0.1-bin.tar.gz

所使用的jar包位于geomesa-hbase_2.11-2.0.1/dist/hbase/geomesa-hbase-distributed-runtime_2.11-2.0.1.jar

  1. cd /opt/hbase-1.3.1/lib
  2. cp /opt/geomesa-hbase-distributed-runtime_2.11-2.0.1.jar .

4.4 其它2个节点也进行同步进行上述操作

可以使用scp方式进行同步,也可以将第三方复制到其它节点,将修改的几个配置文件进行替换

  1. #scp命令
  2. cd /opt
  3. scp -r hbase-1.3.1 root@slave1:/opt
  4. scp -r hbase-1.3.1 root@slave2:/opt

4.5 HBase启动

进入HBase中bin目录下,执行以下命令,完成HBase集群启动

  1. ./start-hbase.sh

4.6 检查HBase集群

浏览器访问http://192.168.20.122:16010/ (其中192.168.20.122为master节点IP)

能看到三个节点,则表示HBase集群搭建成功



(转发请注明出处:http://www.cnblogs.com/zhangyongli2011/ 如发现有错,请留言,谢谢)

HBase集群环境搭建v1.0的更多相关文章

  1. HBase集群环境搭建v2.0

    本文档环境基于ubuntu16.04版本,如果最终不使用SuperMap iServer 10i ,可以不配置geomesa-hbase_2.11-2.2.0-bin.tar.gz 相比1.0版本,升 ...

  2. HBase —— 集群环境搭建

    一.集群规划 这里搭建一个3节点的HBase集群,其中三台主机上均为Regin Server.同时为了保证高可用,除了在hadoop001上部署主Master服务外,还在hadoop002上部署备用的 ...

  3. 数据仓库组件:HBase集群环境搭建和应用案例

    本文源码:GitHub || GitEE 一.Hbase简介 1.基础描述 Hadoop原生的特点是解决大规模数据的离线批量处理场景,HDFS具备强大存储能力,但是并没有提供很强的数据查询机制.HBa ...

  4. hadoop(八) - hbase集群环境搭建

    1. 上传hbase安装包hbase-0.96.2-hadoop2-bin.tar.gz 2. 解压 tar -zxvf hbase-0.96.2-hadoop2-bin.tar.gz -C /clo ...

  5. Hadoop,HBase集群环境搭建的问题集锦(四)

    21.Schema.xml和solrconfig.xml配置文件里參数说明: 參考资料:http://www.hipony.com/post-610.html 22.执行时报错: 23., /comm ...

  6. Hbase集群环境搭建

    Hbase数据库依赖 Hadoop和zookeeper,所以,安装Hbase之前,需要先把zookeeper集群搭建好.(当然,Hbase有内建的zookeeper,不过不建议使用).Hbase配置上 ...

  7. Hadoop,HBase集群环境搭建的问题集锦(二)

    10.艾玛, Datanode也启动不了了? 找到log: Caused by: java.net.UnknownHostException: Invalid host name: local hos ...

  8. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(十)安装hadoop2.9.0搭建HA

    如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...

  9. Kafka:ZK+Kafka+Spark Streaming集群环境搭建(九)安装kafka_2.11-1.1.0

    如何搭建配置centos虚拟机请参考<Kafka:ZK+Kafka+Spark Streaming集群环境搭建(一)VMW安装四台CentOS,并实现本机与它们能交互,虚拟机内部实现可以上网.& ...

随机推荐

  1. 025批量删除mac文件名中的空格

    一. 在准备王陆语料库资料时发现给的录音文件好多带有空格,不喜欢这样的,而且不方面mac下搜索和查找,所以想把它全部删掉,命令如下: find . -name "* *"| whi ...

  2. C#中 ??、 ?、 ?: 、?.、?[ ] 问号

    1. 可空类型修饰符(?) 引用类型可以使用空引用表示一个不存在的值,而值类型通常不能表示为空.例如:string str=null; 是正确的,int i=null; 编译器就会报错.为了使值类型也 ...

  3. RAID技术全解图解-RAID0、RAID1、RAID5、RAID100【转】

    图文并茂 RAID 技术全解 – RAID0.RAID1.RAID5.RAID100…… RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆.这篇文章为网络转 ...

  4. 一篇文章学会shell脚本

    一.Shell传递参数 #!/bin/bash # 假设在脚本运行时写了三个参数 ..,,则 "(传递了三个参数). echo "-- \$* 演示 --" for i ...

  5. TensorFlow-线程回归模型

    实验目的: 方程:y = Wx + b 通过大量的(x, y)坐标值,模型可以计算出接近W和b的值 实验步骤: 第一步:生成线程回归方程模型所需要的数据 import numpy as np impo ...

  6. Python的dict字典结构操作方法学习笔记

    Python的dict字典结构操作方法学习笔记 这篇文章主要介绍了Python的dict字典结构操作方法学习笔记本,字典的操作是Python入门学习中的基础知识,需要的朋友可以参考下 一.字典的基本方 ...

  7. Kubernetes 基于 RBAC 的授权(十六)

    目录 一.RBAC介绍 1.1.角色和集群角色 1.2.RoleBinding 和 ClusterRoleBinding 1.3.资源 1.4.主体 二.命令行工具 2.1.kubectl creat ...

  8. consul ACL 配置范例

    service "dashboard" { policy = "write" } service "dashboard-sidecar-proxy&q ...

  9. Django实现博客项目

    一.项目概述 项目运行环境 Python3.6+ Django 1.11 MySQL 5.7 其他插件(图片处理.分页.验证码....) 项目详细功能介绍 前台功能 项目首页展示 轮播图 博客推荐 最 ...

  10. Linux学习-防火墙-Selinux-配置本地YUM源

    关闭防火墙并设置开机不启动 systemctl status firewalld.service #查看firewalld状态systemctl stop firewalld #关闭systemctl ...