SuperMap 大数据基础环境搭建

作者:Gerhard_杨光辉
Linux版本:CentOS 7.2

一、准备

1.1软件版本

  1. hadoop-2.6.5.tar.gz
  2. zookeeper.3.4.10.tar.gz
  3. hbase1.3.1.bin.tar.gz
  4. geomesa-hbase_2.11-2.0.1-bin.tar.gz
  5. jdk-8u181-linux-x64.tar.gz
  6. spark-2.1.0-bin-hadoop2.7.tgz
  7. supermap-iserver-10.0.1-linux64.tar.gz
    百度网盘软件包
    提取码:zxgr

1.2网络规划

规划搭建3台机器组成集群模式,IP与计算机名分别为

192.168.30.128 master
192.168.30.129 slave1
192.168.30.130 slave2

1.3 软件包拷贝

可将上述1.1软件包拷贝到 主节点的 opt 目录下

1.4 SSH 设置

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

PermitRootLogin yes
PermitEmptyPasswords yes
PasswordAuthentication yes

重启 ssh 服务

systemctl restart sshd.service

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

scp -r /etc/ssh/sshd_config root@192.168.30.129:/etc/ssh/sshd_config
scp -r /etc/ssh/sshd_config root@192.168.30.130:/etc/ssh/sshd_config

将配置文件覆盖到另外两台机器

1.5 绑定 IP 和修改计算机名

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

192.168.30.128 master
192.168.30.129 slave1
192.168.30.130 slave2

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

1.6 SSH 无密码登陆

  • 用 rsa 生成密钥 (需提前安装 ssh)
ssh keygen  t rsa  #一路回车。
chmod 600 ~/.ssh/authorized_keys
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys #无密码登录本地
  • 本机装有 ssh­copy­id 命令,可以通过
ssh-copy-id root@192.168.30.129
ssh-copy-id root@192.168.30.130

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

1.7 JDK 安装

  • 将jdk­安装包解压,将 JDK 环境变量配置到/etc/profile 中
export JAVA_HOME=/opt/jdk
export JRE_HOME=/opt/jdk/jre
export CLASSPATH=$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$JAVA_HOME/bin:$PATH
  • 检查 JDK 是否配置好
source /etc/profile
java -version
  • 同步jdk与配置文件
scp -r /opt/jdk root@另一台机器名:/opt/jdk
scp -r /etc/profile root@另一台机器名:/etc/profile

二、Hadoop 部署

2.1 Hadoop 安装

解压 tar ­zxvf hadoop­2.6.5.tar.gz ,并在主目录下创建 tmp、dfs、dfs/name、
dfs/node、dfs/data

root@master:/opt/hadoop-2.6.5# mkdir tmp
root@master:/opt/hadoop-2.6.5# mkdir dfs
root@master:/opt/hadoop-2.6.5# mkdir dfs/name
root@master:/opt/hadoop-2.6.5# mkdir dfs/node
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 安装目录

export JAVA_HOME=/opt/jdk
2.2.2 编辑 core­site.xml 文件

添加以下内容,其中 master 为计算机名,/opt/hadoop­2.6.5/tmp 为手动创建的目录

<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>131072</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/opt/hadoop-2.6.5/tmp</value>
<description>Abasefor other temporary directories.</description>
</property>
<property>
<name>hadoop.proxyuser.spark.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.spark.groups</name>
<value>*</value>
</property>
</configuration>
2.2.3 编辑hdfs­site.xml文件

添加以下内容其中master为计算机名,file:/opt/hadoop­2.6.5/dfs/name和file:/opt/hadoop­2.6.5/dfs/data为手动创建目录

<configuration>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>master:9001</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop-2.6.5/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop-2.6.5/dfs/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.webhdfs.enabled</name>
<value>true</value>
</property>
<property>
<name>dfs.namenode.http.address</name>
<value>master:50070</value>
</property>
</configuration>
2.2.4 编辑mapred­site.xml文件

复制mapred­site.xml.template并重命名为mapred­site.xml 添加以下内容其中master为计算机名

<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>
2.2.5 编辑yarn­site.xml文件

添加以下内容其中master为计算机名

<configuration>
<!-- Site specific YARN configuration properties -->
<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:8035</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>
2.2.6 修改slaves文件,添加本机作为集群节点
master
slave1
slave2

2.3Hadoop集群搭建

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

scp -r /opt/hadoop-2.6.5 root@另一台机器名:/opt/hadoop-2.6.5/

2.4 Hadoop启动

  1. 格式化一个新的文件系统,进入到hadoop­2.6.5/bin下执行:
./hadoop namenode -format
  1. 启动hadoop,进入到hadoop­2.6.5/sbin下执行:
./start-all.sh

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


  1. 浏览器访问http://192.168.30.128:50070/ (其中192.168.30.128为master节点IP)
    能看到三个节点,则表示HBase集群搭建成功


2.4 Hadoop集群检查

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

./hdfs dfsadmin -report

三、ZooKeeper集群部署

3.1 ZooKeeper安装

解压zookeeper­3.4.10.tar.gz,并将解压后的目录名进行修改

tar -zxvf zookeeper-3.4.10.tar.gz
mv zookeeper-3.4.10 zookeeper

3.2 ZooKeeper配置

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

cd /opt/zookeeper
mkdir zkdata

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

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

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

dataDir=/opt/zookeeper/zkdata
server.1=192.168.20.122:2888:3888
server.2=192.168.20.123:2888:3888
server.3=192.168.20.124:2888:3888
  1. 进入zkdata目录,新建一个文件myid文件,写入标识ID即可,ID与上面server.X相匹配
cd /opt/zookeeper/zkdata
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配置集群,可以将ZooKeeper内容同步到其他机器上,既无需一个个安装配置。

scp -r /opt/zookeeper root@另一台机器名:/opt/zookeeper

3.4 ZooKeeper启动

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

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

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

./zkServer.sh status

主节点机器输出

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

从节点机器输出

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

启动过程命令:

./zkServer.sh start foreground

四、HBase部署

4.1 HBase安装

解压hbase­1.3.1­bin.tar.gz

tar -zxvf hbase-1.3.1-bin.tar.gz

4.2 HBase配置

  1. 进入habase的conf目录
cd /opt/hbase-1.3.1/conf
  1. 编辑hbase­env.sh文件,添加Java环境变量并关闭HBase自带的Zookeeper
export JAVA_HOME=/opt/jdk/
export HBASE_MANAGES_ZK=false
  1. 编辑hbase­site.xml 文件,添加配置
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://master:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.master</name>
<value>master:60000</value>
</property>
<property>
<name>hbase.regionserver.handler.count</name>
<value>100</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>master:2181,slave1:2181,slave2:2181</value>
</property>
<property>
<name>hbase.zoopkeeper.property.dataDir</name>
<value>/opt/zookeeper/zkdata</value>
</property>
</configuration>
  1. 编辑regionservers文件,将三台机器名添加其中
root@master:/opt/hbase-1.3.1/conf# cat regionservers
master
slave1
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

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

4.4 Hbase集群搭建

cd /opt
scp -r hbase-1.3.1 root@slave1:/opt
scp -r hbase-1.3.1 root@slave2:/opt

4.5 HBase启动

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

./start-hbase.sh

4.6 检查HBase集群

浏览器访问http://192.168.30.128:16010/ (其中192.168.30.128为master节点IP)
能看到三个节点,则表示HBase集群搭建成功


五、Spark&iObjectsForSpark&objectsjava集群安装和配置

5.1安装配置

5.1.1 准备超图大数据依赖库

将【iServer目录】/support/objectsjava拷贝到/opt/objectsjava
将【iServer目录】/support/iObjectsForSpark拷贝到/opt/iObjectsForSpark

5.1.2 解压安装包
tar –xzvf spark-2.1.0-bin-hadoop2.7.tgz
mv spark-2.1.0-bin-hadoop2.7 spark
cd spark
5.1.3创建设置环境变量脚本spark-env.sh
cp conf/spark-env.sh.template conf/spark-env.sh
vim conf/spark-env.sh

增加一下配置信息:

export JAVA_HOME=/opt/jdk1.8.0_181
export UGO_HOME=/opt/objectjava
export PATH=$JAVA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$UGO_HOME/bin:$LD_LIBRARY_PATH
export SPARK_CLASS_PATH=/opt/iObjectsForSpark
5.1.4 配置Slaves
cp conf/slaves.template conf/slaves
vim conf/slaves

内容如下

master
slave1
slave2

5.2集群部署

cd /opt
scp -r spark root@机器名:/opt/
scp -r objectsjava root@机器名:/opt/
scp -r iObjectsForSpark root@机器名:/opt/

5.3启动Spark集群

cd /opt/spark/sbin/
./start-all.sh

5.4 集群检查

浏览器访问http://192.168.30.128:8080/ (其中192.168.30.128为master节点IP)
能看到三个节点,则表示HBase集群搭建成功


六、附录

6.1 Hadoop配置正确,节点显示不全

解决办法:
1.先停止Hadoop,bin/stop-all.sh
2.三台机器都把hadoop1.2.1/tmp下所有文件删除,rm -rf tmp/*
3.重新格式化DFS bin/hadoop namenode -format
4.再重启bin/start-all.sh
5.查看各节点jps,就有DataNode和TaskTracker了

6.2 修改dns

方法一 通过/etc/network/interfaces,在它的最后增加一句:
dns-nameservers 222.246.129.80
222.246.129.80是电信提供的DNS服务,这里只是举一个例子。重启后DNS就生效了,这时候再看/etc/resolv.conf,最下面就多了一行:

Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 222.246.129.80

方法二 通过修改:
/etc/resolvconf/resolv.conf.d/base(这个文件默认是空的)
在里面插入:
nameserver 222.246.129.80

6.3 修改时区时间

查看时区

timedatectl

修改时区

 ln -sf /usr/share/zoneinfo/Asia/Shanghai    /etc/localtime

6.4 时间同步

Hbase默认的是30s这个时间差,在部署过程中时间不同步,导致集群无法启动
1.安装ntpdate工具

sudo yum -y install ntp ntpdate

2.设置系统时间与网络时间同步

sudo ntpdate cn.pool.ntp.org

3.将系统时间写入硬件时间

 sudo hwclock --systohc

4.查看系统时间

timedatectl

输出信息如下:

Universal time: 四 2017-09-21 05:54:09 UTC
RTC time: 四 2017-09-21 13:54:09
Time zone: Asia/Shanghai (CST, +0800)
NTP enabled: no
NTP synchronized: no
RTC in local TZ: yes
如果没有执行步骤3,则Local time与RTC time显示的值可能不一样

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,088评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,715评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,361评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,099评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 60,987评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,063评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,486评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,175评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,440评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,518评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,305评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,190评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,550评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,880评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,152评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,451评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,637评论 2 335