大数据环境搭建之 - ES5.4.0、HBase1.2.0 HA、Spark2.2.1 HA

本文记录Elasticsearch5.4.0,HBase 1.2.0 HA,Spark2.2.1 HA环境搭建过程。

一、 Elasticsearch集群

ES 5.4.0需要JDK1.8以上,安装前确认JDK已安装完毕。

1. 下载安装包并解压

地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.4.0.tar.gz

1
tar -zxvf elasticsearch-5.4.0.tar.gz

2. 配置文件

vim elasticsearch.yml , 需要修改的内容如下:

1
2
3
4
5
6
7
8
9
10
cluster.name: xya-esv5
node.name: node-1
path.data: /opt/modules/elasticsearch-5.4.0/data
path.logs: /opt/modules/elasticsearch-5.4.0/logs
network.host: 192.168.199.141
discovery.zen.ping.unicast.hosts: ["BR-TEST-01", "BR-TEST-02", "BR-TEST-03"]
discovery.zen.minimum_master_nodes: 2
# 避免出现跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"

3. 其它机器的配置修改

将安装包传输到其他机器:

1
2
scp -r elasticsearch-5.4.0 root@BR-TEST-02:/opt/modules
scp -r elasticsearch-5.4.0 root@BR-TEST-03:/opt/modules

其他机器需要修改的地方有两处,如下

1
2
node.name: node-1   # es每台机器节点名,互相之间不能重复
network.host: 192.168.199.141 # es每台机器IP

4. 创建用户用以启动ES集群

ES 不可用root用户启动,必须创建一个其他用户。

1
2
useradd es
passwd es

上述命令创建了一个es用户并为其设定了密码。

将es安装包目录用户和用户组改为es,所有节点都要做:

1
chown -R es:es elasticsearch-5.4.0

切换到es用户,启动ES集群:

1
2
su es
/opt/modules/elasticsearch-5.4.0/bin/elasticsearch -d

可通过查看日志确认是否启动成功,或者可安装cerebro等ES UI工具。

二、 HBase HA集群

1. 下载并解压

地址:<https://archive.apache.org/dist/hbase/1.2.0/hbase-1.2.0-bin.tar.gz >

2. 配置文件修改

首先将hadoop的配置文件core-site.xml和hdfs-site.xml移动到HBase的conf目录下。不然启动HBase时会报找不到命名空间的错误。

/etc/profile

1
2
export HBASE_HOME=/opt/modules/hbase-1.2.0
export PATH=$PATH:$HBASE_HOME/bin

注意:source /etc/profile

hbase-env.sh

1
2
3
export JAVA_HOME=/opt/env/jdk1.8.0_181
export HBASE_MANAGES_ZK=false
export HBASE_LOG_DIR=${HBASE_HOME}/logs

backup-masters

1
BR-TEST-02    # HA配置,standby HMaster

regionservers

1
2
3
4
BR-TEST-01
BR-TEST-02
BR-TEST-03
BR-TEST-04

hbase-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
<configuration>

<!-- 指定缓存文件存储的路径 -->
    <property>
        <name>hbase.tmp.dir</name>
       <value>/opt/modules/hbase-1.2.0/data</value>
    </property>
   
    <!-- 设置HRegionServers共享目录 -->
    <property>
        <name>hbase.rootdir</name>
       <value>hdfs://mxsenn/hbase</value>
    </property>
   
    <!-- 设置HMaster的rpc端口 -->
    <property>
       <name>hbase.master.port</name>
        <value>16000</value>
    </property>
    <!-- 设置HMaster的http端口 -->

    <property>
       <name>hbase.master.info.port</name>
        <value>16010</value>
    </property>

    <!-- 开启分布式模式 -->
    <property>
       <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>

    <property>
       <name>hbase.zookeeper.quorum</name>
       <value>BR-TEST-01,BR-TEST-02,BR-TEST-03</value>
    </property>

    <!-- 指定ZooKeeper集群端口 -->
    <property>
        <name>hbase.zookeeper.property.clientPort</name>
        <value>2181</value>
    </property>

    <!--指定Zookeeper数据目录,需要与ZooKeeper集群上配置相一致 -->
    <property>
       <name>hbase.zookeeper.property.dataDir</name>
       <value>/opt/modules/zookeeper-3.4.6/data</value>
    </property>

    <!-- hbase客户端rpc扫描一次获取的行数,默认是2147483647, -->
    <property>
       <name>hbase.client.scanner.caching</name>
        <value>2000</value>
    </property>

    <!-- HRegion分裂前最大的文件大小(默认1.25G)-->
    <property>
       <name>hbase.hregion.max.filesize</name>
        <value>10737418240</value>
    </property>

    <!-- HRegionServer中最大的region数量 -->
    <property>
       <name>hbase.regionserver.reginoSplitLimit</name>
        <value>2000</value>
    </property>

    <!-- StoreFile开始合并的阀值 -->
    <property>
        <name>hbase.hstore.compactionThreshold</name>
        <value>6</value>
    </property>

    <!-- 当某一个region的storefile个数达到该值则block写入,等待compact-->
    <property>
       <name>hbase.hstore.blockingStoreFiles</name>
        <value>14</value>
    </property>

    <!--当MemStore占用内存大小超过hbase.hregion.memstore.flush.size
    MemStore刷新缓存的大小的4倍,开始中block该HRegion的请求,进行flush
    释放内存,后台会有服务线程在周期内hbase.server.thread.wakefrequency
    定时检查-->
    <property>
       <name>hbase.hregion.memstore.block.multiplier</name>
        <value>4</value>
    </property>

    <!-- service工作的sleep间隔 -->
    <property>
       <name>hbase.server.thread.wakefrequency</name>
        <value>500</value>
    </property>

    <!--ZK并发连接的限制-->
    <property>
        <name>hbase.zookeeper.property.maxClientCnxns</name>
        <value>300</value>
    </property>

    <!--RegionServer进程block进行flush触发条件:该节点上所有region的memstore之和达到upperLimit*heapsize-->
    <property>
       <name>hbase.regionserver.global.memstore.size</name>
        <value>0.4</value>
    </property>

    <!--RegionServer进程触发flush的一个条件:该节点上所有region的memstore之和达到lowerLimit*heapsize-->
    <property>
       <name>hbase.regionserver.global.memstore.size.lower.limit</name>
        <value>0.3</value>
    </property>

    <property>
        <name>hfile.block.cache.size</name>
        <value>0.4</value>
    </property>

    <!--HRegionserver处理IO请求的线程数-->
    <property>
       <name>hbase.regionserver.handler.count</name>
        <value>100</value>
    </property>

    <!-- 客户端最大重试次数 -->
    <property>
       <name>hbase.client.retries.number</name>
        <value>5</value>
    </property>

    <!-- 客户端重试的休眠时间 -->
    <property>
       <name>hbase.client.pause</name>
        <value>100</value>
    </property>
</configuration>

3. 发送安装包到其他机器

1
2
3
scp -r hbase-1.2.0 root@BR-TEST-02:/opt/modules
scp -r hbase-1.2.0 root@BR-TEST-03:/opt/modules
scp -r hbase-1.2.0 root@BR-TEST-04:/opt/modules

4. 启停

1
2
/opt/modules/hbase-1.2.0/bin/start-hbase.sh 
/opt/modules/hbase-1.2.0/bin/stop-hbase.sh

三、Spark HA集群

1. 下载并解压

地址:<https://archive.apache.org/dist/spark/spark-2.2.1/spark-2.2.1-bin-hadoop2.7.tgz >

2. 配置文件修改

spark-env.sh

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
export JAVA_HOME=/opt/env/jdk1.8.0_181
export SPARK_MASTER_HOST=BR-TEST-01
export SPARK_MASTER_PORT=7077
export HADOOP_CONF_DIR=/opt/modules/hadoop-2.7.3/etc/hadoop
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=BR-TEST-01:2181,BR-TEST-02:2181,BR-TEST-03:2181 -Dspark.deploy.zookeeper.dir=/sparkOnline -Djava.io.tmpdir=/opt/modules/spark-2.2.1/Tachyon"
export SCALA_HOME=/opt/env/scala-2.11.8
export SPARK_LIBRARY_PATH=/opt/modules/spark-2.2.1/jars
export SPARK_WORK_DIR=/opt/modules/spark-2.2.1/worker
export SPARK_LOCAL_DIRS=/opt/modules/spark-2.2.1/local
export SPARK_PID_DIR=/opt/modules/spark-2.2.1/pid
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=2
export SPARK_MASTER_WEBUI_PORT=8080
export SPARK_WORKER_WEBUI_PORT=9191
export SPARK_DAEMON_CLASSPATH=/opt/modules/spark-2.2.1/jars

slaves

1
2
3
4
BR-TEST-01
BR-TEST-02
BR-TEST-03
BR-TEST-04

3. 启停

1
2
/opt/modules/spark-2.2.1/sbin/start-all.sh
/opt/modules/spark-2.2.1/sbin/stop-all.sh
坚持原创技术分享,您的支持将鼓励我继续创作!

------本文结束 感谢您的阅读------