心之所向,身之所往,己不由心,身又岂能由己,心之所向,一鹿向羊
话不投机半句多,上干货
hbase 集群环境搭建
1)操作系统,ubuntu ,版本信息如下:
ceson@ceson01:~/wechat_env$ cat /proc/version
Linux version 4.15.0-54-generic (buildd@lgw01-amd64-014) (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1)) #58-Ubuntu SMP Mon Jun 24 10:55:24 UTC 2019
2)JDK:1.8
3)zookeeper版本: zookeeper-3.4.12
4)hadoop版本: hadoop-3.1.2
5)hbase版本: hbase-2.0.5
6)hive版本:hive-3.1.2
7)三个主机(IP及机器名,IP可以随意更改,主机名尽可能保持一致,后面所有配置都以主机名写入zookeeper,hadoop,hbase配置文件;
如果你机器名不是这个,后面的机器名配置更改为你环境中的机器名):
192.168.1.134 ceson01
192.168.1.107 ceson02
192.168.1.169 ceson03
8)kafka版本: kafka_2.11-2.0.0
9)三个机器创建用户ceson/ceson(username/password)
hbase三个ip地址(可随意更换)及hostname(最好不变, 代码层面会根据hostname找到hbase)
目前hbase使用三个机器部署集群,需要修改hostname,以及hosts文件修改,请使用有权限的用户执行以下操作
note:建议ip使用静态设置,避免使用动态获取ip的方式,否则Ip和机器名映射就出现错乱
登录192.168.1.134
vim /etc/hostname
ceson01
假如重启机器后,hostname不生效,修改以下配置文件
vim /etc/cloud/cloud.cfg
This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true #这里是将false改成true
vim /etc/hosts
192.168.1.134 ceson01
192.168.1.107 ceson02
192.168.1.169 ceson03
reboot
登录192.168.1.107
vim /etc/hostname
ceson02
vim /etc/cloud/cloud.cfg
This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true #这里是将false改成true
vim /etc/hosts
192.168.1.134 ceson01
192.168.1.107 ceson02
192.168.1.169 ceson03
reboot
登录192.168.1.169
vim /etc/hostname
ceson03
vim /etc/cloud/cloud.cfg
This will cause the set+update hostname module to not operate (if true)
preserve_hostname: true #这里是将false改成true
vim /etc/hosts
192.168.1.134 ceson01
192.168.1.107 ceson02
192.168.1.169 ceson03
reboot
jdk版本:
下载jdk1.8,及配置环境变量,以下版本为测试环境版本:
note:当前hbase版本必须使用jdk1.8或以上
ceson@ceson01:~$ java -version
java version "1.8.0_141"
Java(TM) SE Runtime Environment (build 1.8.0_141-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.141-b15, mixed mode)
zookeeper,hadoop,hbase,hive,kafka 版本:
分别下载zookeeper-3.4.12,hadoop-3.1.2,hbase-2.0.5,hive-3.1.2,kafka_2.11-2.0.0 组件,以下版本为参考:
https://archive.apache.org/dist/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz
http://archive.apache.org/dist/hbase/2.0.5/hbase-2.0.5-bin.tar.gz
http://archive.apache.org/dist/kafka/2.0.0/kafka_2.11-2.0.0.tgz
https://www-eu.apache.org/dist/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
使用ceson账户登录(其它两个机器的操作执行以下的操作)
mkdir wechat_env
cd wechat_env
自己到上面链接下载后上传到该目录
或者如下操作下载组件
wget https://archive.apache.org/dist/zookeeper/zookeeper-3.4.12/zookeeper-3.4.12.tar.gz
wget http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-3.1.2/hadoop-3.1.2.tar.gz
wget http://archive.apache.org/dist/hbase/2.0.5/hbase-2.0.5-bin.tar.gz
wget http://archive.apache.org/dist/kafka/2.0.0/kafka_2.11-2.0.0.tgz
wget https://www-eu.apache.org/dist/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
假设zookeeper,habase组件都在以下目录路径下:/home/ceson/wechat_env:
note:如果不是该目录(/home/ceson/wechat_env):
以root用户登录授权登录用户(testuser)文件夹wechat_env所有权限(以下两个命令以ceson用户登录的不用执行)
chown -R testuser /yourpath/wechat_env
su testuser
检查你当前操作的路径
ceson@ceson01:~/wechat_env$ pwd
/home/ceson/wechat_env
解压zookeeper,hadoop,hbase三个文件
tar zxvf hbase-2.0.5-bin.tar.gz
tar zxvf hadoop-3.1.2.tar.gz
tar zxvf zookeeper-3.4.12.tar.gz
配置无密码SSH访问 该步骤不是必须,但有该步操作,后面需要登录其它机器,则不需要输入密码
a.登录三台主机上分别执行 ssh-keygen -t rsa 生成公钥和私钥,
b.将三台主机的公钥分别追加到主机的~/.ssh/authorized_keys,在登录三台主机后都执行以下三条命令
ssh-copy-id -i ~/.ssh/id_rsa.pub ceson@ceson01
ssh-copy-id -i ~/.ssh/id_rsa.pub ceson@ceson02
ssh-copy-id -i ~/.ssh/id_rsa.pub ceson@ceson03
经过上面操作ceson01ceson02,ceson03就可以无密码相互登录
检查是否配置正确,以在ceson01机器操作示例
ssh ceson02
ssh ceson03
均可以实现无密码登录
1.部署zookeeper-3.4.12
1.1 修改配置文件zoo.cfg(注意:修改哪个机器的配置文件,就把对应的ceson0123改为0.0.0.0)
cd /home/ceson/wechat_env/zookeeper-3.4.12/conf
cp zoo_sample.cfg zoo.cfg
vim zoo.cfg
note:在文件末尾加入以下配置,其它默认,注释掉原来的配置# dataDir=/tmp/zookeeper
dataDir=/home/ceson/wechat_env/zookeeper/data
dataLogDir=/home/ceson/wechat_env/zookeeper/logs
server.1=ceson01:2888:3888
server.2=ceson02:2888:3888
server.3=ceson03:2888:3888
server.4=192.168.1.185:2888:3888
server.5=192.168.1.119:2888:3888
1.2 在ceson01机器执行下面的操作
cd /home/ceson/wechat_env
scp -r ./zookeeper-3.4.12/ ceson@ceson02:/home/ceson/wechat_env
scp -r ./zookeeper-3.4.12/ ceson@ceson03:/home/ceson/wechat_env
1.3 设置zookeeper数据目录
cd /home/ceson/wechat_env
ceson@ceson01:~/wechat_env$ mkdir zookeeper
ceson@ceson01:~/wechat_env$ cd zookeeper
ceson@ceson01:~/wechat_env/zookeeper$ mkdir data
ceson@ceson01:~/wechat_env/zookeeper$ echo 1 > /home/ceson/wechat_env/zookeeper/data/myid
ceson@ceson01:~/wechat_env/zookeeper$ ls
data
ceson@ceson01:~/wechat_env/zookeeper$ cd data/
ceson@ceson01:~/wechat_env/zookeeper/data$ ls
myid
ceson@ceson01:~/wechat_env/zookeeper/data$ more myid
1
1.4 复制zookeeper data目录到其它两个机器,需要另外登录其它两个机器修改myid文件
cd /home/ceson/wechat_env
ceson@ceson01:~/wechat_env$ scp -r ./zookeeper/ ceson@ceson02:/home/ceson/wechat_env
ceson@ceson01:~/wechat_env$ scp -r ./zookeeper/ ceson@ceson03:/home/ceson/wechat_env
1.5 登录ceson02机器,执行以下操作
ceson@ceson02:~$ echo 2 > /home/ceson/wechat_env/zookeeper/data/myid
ceson@ceson02:~$ more /home/ceson/wechat_env/zookeeper/data/myid
2
1.6 登录ceson03机器,执行以下操作
ceson@ceson03:~$ echo 3 > /home/ceson/wechat_env/zookeeper/data/myid
ceson@ceson03:~$ more /home/ceson/wechat_env/zookeeper/data/myid
3
1.7 修改zookeeper环境变量(以ceson01机器为例,其它两个机器执行同样操作)如果该文件无法修改,可切换有权限的用户修改该文件
su root
root@ceson01:/home/ceson# vim /etc/profile
在文件末尾加入以下配置
export ZOOKEEPER_HOME=/home/ceson/wechat_env/zookeeper-3.4.12
export PATH=$PATH:$ZOOKEEPER_HOME/bin
root@ceson01:/home/ceson# source /etc/profile
1.8 在三台主机上分别执行如下命令,确认zookeeper是否正确启动
ceson@ceson01:~$ zkServer.sh start
ZooKeeper JMX enabled by default
Using config: /home/ceson/wechat_env/zookeeper-3.4.12/bin/../conf/zoo.cfg
Starting zookeeper ... STARTED
1.9 在三台机器上面查询zookeeper运行状态(见如下信息)
ceson@ceson01:~$ zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/ceson/wechat_env/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: follower
ceson@ceson02:~$ zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/ceson/wechat_env/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: follower
ceson@ceson03:~$ zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/ceson/wechat_env/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: leader
1.10 ubuntu 18设置静态ip,下面以设置固定Ip:192.168.1.134为例;在/etc/netplan目录下有个.yaml文件,
当前环境的文件名为50-cloud-init.yaml,以修改后的内容替换原来的部分(如果当前用户无权限修改该文件,请更换操作账户)
note:如果不设置静态Ip,重启后Ip有变动的话,就需要登录每个zookeeper的机器更改hosts文件,修改ip,机器名的映射
原来文件内容
network:
ethernets:
ens18:
dhcp4: true
version: 2
修改后的文件内容
network:
ethernets:
ens18: #配置的网卡名称 ,该节点使用你环境的配置即可,不一定是这个名称
dhcp4: no #dhcp4关闭
addresses: [192.168.1.134/24] #设置当前机器IP及掩码
gateway4: 192.168.1.253 #设置网关,改为测试环境所在的网关
version: 2
执行以下命令
cd /etc/netplan
vim 50-cloud-init.yaml
sudo netplan apply
1.11 在三台机器执行以下操作,配置zookeerper开机启动
a.创建/etc/rc.local文件,使用有权限的用户编辑该文件,当前是以root用户执行
root@ceson01:/home/ceson# vim /etc/rc.local
添加需要开机启动的任务(加入以下5行脚本,如果rc.local已经存在的,第一行代码不用加入)
#!/bin/bash
# JDK ENV
export JAVA_HOME=/usr/lib/jdk1.8.0_141
# startup zookeerper 使用ceson账户启动zookeeper,“-l”表示以登录方式执行
su ceson -l -c '/home/ceson/wechat_env/zookeeper-3.4.12/bin/zkServer.sh start'
b. 赋可执行权限
root@ceson01:/home/ceson# chmod 755 /etc/rc.local
c.验证以上修改是否有效,重启机器后执行以下命令即可
ceson@ceson01:~$ zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/ceson/wechat_env/zookeeper-3.4.12/bin/../conf/zoo.cfg
Mode: follower
2.部署hadoop
2.1 设置ulimit:
先查看当前用户 ulimit:
ulimit -n
修改操作: echo ulimit -n 32768 >>/etc/profile
不重启生效命令:source /etc/profile
在文件 /etc/security/limits.conf末尾增加两行
ceson - nofile 32768
ceson soft/hard nproc 32000
ceson 替换成你运行Hbase和Hadoop的用户
2.2 在/etc/pam.d/common-session 加上这一行
note:pam_limits.so模块可以使用在对一般应用程序使用的资源限制方面。如果需要在SSH服务器上对来自不同用户的ssh访问进行限制,就可以调用该模块来实现相关功能。
当需要限制用户admin登录到SSH服务器时的最大连接数(防止同一个用户开启过多的登录进程),就可以在/etc/pam.d/sshd文件中增加一行对pam_limits.so模块的调用:
vim /etc/pam.d/common-session
session required pam_limits.so
2.3 进入目录/home/ceson/wechat_env/hadoop-3.1.2/etc/hadoop,修改以下6个文件:
hadoop-env.sh、core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、workers
cd /home/ceson/wechat_env/hadoop-3.1.2/etc/hadoop
2.3.1 修改文件 hadoop-env.sh,指定JAVA_HOME设置
vim hadoop-env.sh
export JAVA_HOME=/usr/lib/jdk1.8.0_141
2.3.2 修改文件 core-site.xml
fs.defaultFS指定NameNode的地址
hadoop.tmp.dir指定临时文件的目录
vim core-site.xml
fs.defaultFS
hdfs://cluster
hadoop.tmp.dir
/home/ceson/wechat_env/hadoop/tmp
ha.zookeeper.quorum
ceson01:2181,ceson02:2181,ceson03:2181
2.3.3 修改文件 hdfs-site.xml
dfs.replication指定数据文件冗余的份数
vim hdfs-site.xml
dfs.namenode.name.dir
file:/home/ceson/wechat_env/hadoop/hdfs/name
dfs.datanode.data.dir
file:/home/ceson/wechat_env/hadoop/hdfs/data
dfs.replication
3
dfs.nameservices
cluster
dfs.ha.namenodes.cluster
nn1,nn2
dfs.namenode.rpc-address.cluster.nn1
ceson01:9000
dfs.namenode.rpc-address.cluster.nn2
ceson02:9000
dfs.namenode.http-address.cluster.nn1
ceson01:50070
dfs.namenode.http-address.cluster.nn2
ceson02:50070
dfs.namenode.shared.edits.dir
qjournal://ceson01:8485;ceson02:8485;ceson03:8485/cluster
dfs.ha.automatic-failover.enabled
true
dfs.journalnode.edits.dir
/home/ceson/wechat_env/hadoop/tmp/data/dfs/journalnode
dfs.client.failover.proxy.provider.cluster
org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider
dfs.ha.fencing.methods
sshfence
shell(/bin/true)
dfs.ha.fencing.ssh.private-key-files
/home/ceson/.ssh/id_rsa
dfs.webhdfs.enabled
true
dfs.journalnode.http-address
0.0.0.0:8480
dfs.journalnode.rpc-address
0.0.0.0:8485
dfs.ha.fencing.ssh.connect-timeout
30000
2.3.4 修改文件 mapred-site.xml
指定运行mapreduce的框架为YARN
vim mapred-site.xml
mapreduce.framework.name
yarn
yarn.app.mapreduce.am.env
HADOOP_MAPRED_HOME=/home/ceson/wechat_env/hadoop-3.1.2
mapreduce.map.env
HADOOP_MAPRED_HOME=/home/ceson/wechat_env/hadoop-3.1.2
mapreduce.reduce.env
HADOOP_MAPRED_HOME=/home/ceson/wechat_env/hadoop-3.1.2
2.3.5 修改文件 yarn-site.xml
指定运行YARN的主机、地址和reducer获取数据的方式
vim yarn-site.xml
yarn.resourcemanager.ha.enabled
true
yarn.resourcemanager.cluster-id
yrc
yarn.resourcemanager.ha.rm-ids
rm1,rm2
yarn.resourcemanager.hostname.rm1
ceson01
yarn.resourcemanager.hostname.rm2
ceson02
yarn.resourcemanager.ha.id
rm1
yarn.resourcemanager.zk-address
ceson01:2181,ceson02:2181,ceson03:2181
yarn.nodemanager.aux-services
mapreduce_shuffle
2.3.6 修改文件 workers
vim workers
ceson01
ceson02
ceson03
2.4 ceson01主机把配置文件同步给另两台主机
scp -r /home/ceson/wechat_env/hadoop-3.1.2/etc/hadoop/ ceson@ceson02:/home/ceson/wechat_env/hadoop-3.1.2/etc/
scp -r /home/ceson/wechat_env/hadoop-3.1.2/etc/hadoop/ ceson@ceson03:/home/ceson/wechat_env/hadoop-3.1.2/etc/
scp -r /home/dev/wechat_env/hadoop-3.1.2/etc/hadoop/ dev@ceson05:/home/dev/wechat_env/hadoop-3.1.2/etc/
scp -r /home/dev/wechat_env/hadoop-3.1.2/etc/hadoop/ dev@ceson06:/home/dev/wechat_env/hadoop-3.1.2/etc/
在ceson02节点(hadoop高可用备用节点)修改yarn-site.xml(下面部分的配置原来是rm1
yarn.resourcemanager.ha.id
rm2
在ceson03节点修改yarn-site.xml 删除以下属性
yarn.resourcemanager.ha.id
rm1
2.5 ceson01主机初次运行需要格式化hdfs,后面运行就不需要步骤
每个hadoop节点启动journalnode
hdfs --daemon start journalnode
# 在节点ceson01上手动输入[hdfs namenode –format]
hdfs namenode –format
#格式化 zk(在ceson01 手动输入)
hdfs zkfc –formatZK
#启动 ceson01 namenode
hadoop-daemon.sh start namenode
#ceson02上同步ceson01 namenode元数据
hdfs namenode -bootstrapStandby
2.6 启动Hadoop集群环境
start-all.sh
或者启动
start-dfs.sh
start-yarn.sh
2.7 主备节点启动状况查看
ceson@ceson01:~$ hdfs haadmin -getServiceState nn1
active
ceson@ceson01:~$ hdfs haadmin -getServiceState nn2
standby
2.8 验证hadoop
50070端口是Hadoop管理页面,切到Datanodes选项卡可以看到集群所有Datanode的情况
8088端口是YARN管理页面,可以看到集群节点运行任务的情况
http://ceson01:50070/
http://ceson01:8088/
或者jsp命令 主备master节点一般都会驻留以下进程,非master节点只有以下部分进程
21776 DataNode
22725 ResourceManager
21271 NameNode
22919 NodeManager
21005 JournalNode
22302 DFSZKFailoverController
3.部署hbase
3.1 进入解压后的hbase目录,修改 hbase-env.sh 文件,修改jdk配置和ZooKeeper配置,如下所示
ceson@ceson01:~$ cd /home/ceson/wechat_env/hbase-2.0.5/conf
ceson@ceson01:~/wechat_env/hbase-2.0.5/conf$ vim hbase-env.sh
修改以下两个配置
export JAVA_HOME=/usr/lib/jdk1.8.0_141
# Tell HBase whether it should manage it's own instance of ZooKeeper or not.
export HBASE_MANAGES_ZK=false
3.2 修改 hbase-site.xml 文件,修改节点内容
hbase.rootdir表示HBase的存储目录,要和Hadoop的core-site.xml配置一致
hbase.cluster.distributed表示是否分布式存储
hbase.zookeeper.quorum指定ZooKeeper管理的机器
ceson@ceson01:~/wechat_env/hbase-2.0.5/conf$ vim hbase-site.xml
hbase.tmp.dir
/home/ceson/wechat_env/hbase
hbase.rootdir
hdfs://cluster/hbase
hbase.master
60000
hbase.cluster.distributed
true
hbase.zookeeper.quorum
ceson01,ceson02,ceson03
hbase.zookeeper.property.clientPort
2181
hbase.unsafe.stream.capability.enforce
false
3.3 修改 regionservers 文件 :
ceson@ceson01:~/wechat_env/hbase-2.0.5/conf$ vim regionservers
往regionservers文件写入如下内容
ceson01
ceson02
ceson03
3.4 修改 HBase 支持对 Hmaster 的高可用配置
创建文件conf/backup-masters
ceson@ceson01:~/wechat_env/hbase-2.0.5/conf$ vim backup-masters
往backup-masters文件写入如下内容
ceson02
3.5 将ceson01节点的配置同步到其它节点
a.复制ceson01节点中hadoop配置文件hdfs-site.xml到ceson01节点habase conf下面,执行下面脚本
scp -r /home/ceson/wechat_env/hadoop-3.1.2/etc/hadoop/hdfs-site.xml ceson@ceson01:/home/ceson/wechat_env/hbase-2.0.5/conf/hdfs-site.xml
b.同步ceson01配置到其它节点
scp -r /home/ceson/wechat_env/hbase-2.0.5/conf/ ceson@ceson02:/home/ceson/wechat_env/hbase-2.0.5
scp -r /home/ceson/wechat_env/hbase-2.0.5/conf/ ceson@ceson03:/home/ceson/wechat_env/hbase-2.0.5
3.6 启动hbase
/home/ceson/wechat_env/hbase-2.0.5/bin/start-hbase.sh
note:如果有log4j错误
每个hbase安装的节点执行以下脚本删除jar
rm -rf /home/ceson/wechat_env/hbase-2.0.5/lib/slf4j-log4j12-1.7.25.jar
3.7 验证hbase
登录三台机器,执行
jps
master节点机器有以下进程
28117 HMaster
备用节点
31281 HMaster
31131 HRegionServer
其它节点
29371 HRegionServer
或者访问
http://192.168.1.134:16010
打开页面测试查看高可用是否启用
http://ceson02:16010
3.8 异常处理
a.在master节点机器出现如下异常信息【Master startup cannot progress, in holding-pattern until region onlined】,执行以下脚本,清除在zk中hbase节点信息
stop-hbast.sh
zkCli.sh
rmr /hbase
start-hbase.sh
b.stop-hbase.sh 一直......
执行hbase-daemons.sh stop regionserver
在jps kill掉Master
替换hbase安装目录下的hadoop版本,当前部署暂不替换。
4 安装kafka集群(要启动kafka集群,需要先启动zookeeper集群)
4.1 下载及解压kafka,当前集群以下版本为例(当前kafka集群使用上面配置的zk集群)
cd /home/ceson/wechat_env
wget http://archive.apache.org/dist/kafka/2.0.0/kafka_2.11-2.0.0.tgz
tar -xvf kafka_2.11-2.0.0.tgz
4.2 编辑配置文件server.properties,
cd kafka_2.11-2.0.0/config/
sudo vim server.properties
修改以下配置项,由于上面的机器已经修改了hostname,可以使用hostname或者ip,当前执行命令的机器在ceson01所以listeners对应的机器名是ceson01(localhost或者ip均可)
broker.id 每个broker都有一个唯一的id值用来区分彼此,Kafka broker的id值必须大于等于0时才有可能正常启动
zookeeper.connect属性指需要指向的zookeeper,可以两台或以上即可,目前三台zookeeper,所以均写上。
ceson01机器的kafka配置
broker.id=1
listeners=PLAINTEXT://ceson01:9092
zookeeper.connect=ceson01:2181,ceson02:2181,ceson03:2181
log.dirs=/home/ceson/wechat_env/kafka/logs
ceson02机器的kafka配置
broker.id=2
listeners=PLAINTEXT://ceson02:9092
zookeeper.connect=ceson01:2181,ceson02:2181,ceson03:2181
log.dirs=/home/ceson/wechat_env/kafka/logs
ceson03机器的kafka配置
broker.id=3
listeners=PLAINTEXT://ceson03:9092
zookeeper.connect=ceson01:2181,ceson02:2181,ceson03:2181
log.dirs=/home/ceson/wechat_env/kafka/logs
4.3 启动kafka
cd /home/ceson/wechat_env/kafka_2.11-2.0.0
bin/kafka-server-start.sh config/server.properties
设置开机启动kafka 修改/etc/rc.local文件,在上面启动zookeeper的后面追加
添加需要开机启动的任务(加入以下5行脚本,如果rc.local已经存在的,第一行代码不用加入)
#!/bin/bash
# JDK ENV
export JAVA_HOME=/usr/lib/jdk1.8.0_141
# startup zookeerper 使用ceson账户启动zookeeper,“-l”表示以登录方式执行
su ceson -l -c '/home/ceson/wechat_env/zookeeper-3.4.12/bin/zkServer.sh start'
sleep 3s
cd /home/ceson/wechat_env/kafka_2.11-2.0.0
# startup kafka
su ceson -l -c 'bin/kafka-server-start.sh config/server.properties &'
4.3 设置开机启动kafka 修改/etc/rc.local文件,在上面启动zookeeper的后面追加
sudo vim /etc/rc.local
sleep 3s
# startup kafka 注意后面的符号'&':如果不加,否则在该命令后面启动的其它需要开机启动的服务无法启动,所以要谨记加入该符号。
su ceson -l -c '/home/ceson/wechat_env/kafka_2.11-2.0.0/bin/kafka-server-start.sh /home/ceson/wechat_env/kafka_2.11-2.0.0/config/server.properties &'
5 设置开机启动hadoop,hbase集群,以下的开机启动只是简单方式的启动,生产环境应该采用更严谨的启动方式,下面的启动方式仅作为参考。
5.1 设置开机启动hadoop 修改/etc/rc.local文件,后面追加
sudo vim /etc/rc.local
sleep 3s
# startup hadoop
su ceson -l -c '/home/ceson/wechat_env/hadoop-3.1.2/sbin/start-dfs.sh'
sleep 3s
su ceson -l -c '/home/ceson/wechat_env/hadoop-3.1.2/sbin/start-yarn.sh'
5.2 设置开机启动hbase,habase启动需要依赖hadoop,所以需要把hbase启动放在hadoop后面
sudo vim /etc/rc.local
sleep 3s
# startup hbase
su ceson -l -c '/home/ceson/wechat_env/hbase-2.0.5/bin/start-hbase.sh'
5 安装hive组件 (hive只需要在NameNode节点安装即可,datanode节点可以不安装)
5.1 下载及解压hive组件,当前以下版本为例
cd /home/ceson/wechat_env
### 自行下载或者使用下面方式下载hive组件
wget https://www-us.apache.org/dist/hive/hive-3.1.2/apache-hive-3.1.2-bin.tar.gz
tar -xvf apache-hive-3.1.2-bin.tar.gz
mv apache-hive-3.1.2-bin apache-hive-3.1.2
pwd
/home/ceson/wechat_env/apache-hive-3.1.2
sudo vim /etc/profile
###文件最后追加下面三行配置
# set hive env
export HIVE_HOME=/home/ceson/wechat_env/apache-hive-3.1.2
export PATH=$PATH:$HIVE_HOME/bin
###配置生效
source /etc/profile
5.2 hive新建配置目录
mkdir /home/ceson/wechat_env/hive
mkdir /home/ceson/wechat_env/hive/warehouse
5.3 在hadoop添加hive的相关文件目录并设置相应权限
hadoop fs -mkdir -p /home/ceson/wechat_env/hive
hadoop fs -mkdir -p /home/ceson/wechat_env/hive/tmp
hadoop fs -mkdir -p /home/ceson/wechat_env/hive/log
hadoop fs -mkdir -p /home/ceson/wechat_env/hive/warehouse
hadoop fs -chmod -R 0777 /home/ceson/wechat_env/hive
5.4 检查这目录是否成功创建
ceson@ceson01:~/wechat_env$ hadoop fs -ls /home/ceson/wechat_env/hive
Found 3 items
drwxrwxrwx - ceson supergroup 0 2019-09-12 14:58 /home/ceson/wechat_env/hive/log
drwxrwxrwx - ceson supergroup 0 2019-09-12 14:58 /home/ceson/wechat_env/hive/tmp
drwxrwxrwx - ceson supergroup 0 2019-09-12 14:26 /home/ceson/wechat_env/hive/warehouse
5.5 修改hive-site.xml
cd /home/ceson/wechat_env/apache-hive-3.1.2/conf
cp hive-default.xml.template hive-site.xml
vim hive-site.xml
hive.exec.scratchdir
/home/ceson/wechat_env/hive/tmp
hive.metastore.warehouse.dir
/home/ceson/wechat_env/hive/warehouse
hive.querylog.location
/home/ceson/wechat_env/hive/log
javax.jdo.option.ConnectionURL
jdbc:mysql://192.168.1.119:3306/hive?createDatabaseIfNotExist=true&characterEncoding=UTF-8&useSSL=false&allowPublicKeyRetrieval=true
javax.jdo.option.ConnectionDriverName
com.mysql.jdbc.Driver
javax.jdo.option.ConnectionUserName
root
javax.jdo.option.ConnectionPassword
123456
5.6 修改hive-env.sh文件
cd /home/ceson/wechat_env/apache-hive-3.1.2/conf
cp hive-env.sh.template hive-env.sh
vim hive-env.sh #追加下面脚本
# Hive Configuration Directory can be controlled by:
export JAVA_HOME=/usr/lib/jdk1.8.0_141
export HADOOP_HOME=/home/ceson/wechat_env/hadoop-3.1.2
export HIVE_HOME=/home/ceson/wechat_env/apache-hive-3.1.2
export HIVE_CONF_DIR=${HIVE_HOME}/conf
# Folder containing extra libraries required for hive compilation/execution can be controlled by:
export HIVE_AUX_JARS_PATH=${HIVE_HOME}/lib
5.7 初始化hive(当前初始化使用了mysql作为基本数据库)
下载mysql-connector-java.jar拷到hive_home/lib下面,再执行下面命令
schematool -dbType mysql -initSchema
5.8 查看初始化信息
schematool -dbType mysql -initInfo
5.9 启动hive
ceson@ceson01:~/wechat_env$ hive
5.10 复制到ceson02节点(03节点可以不安装)
ceson@ceson01:~/wechat_env$ scp -r ./apache-hive-3.1.2 ceson@ceson02:/home/ceson/wechat_env
在ceson02机器执行5.1中的hive环境变量设置