搭建大数据三节点(Hadoop、Hbase、Zookeeper、Kafka、Hive)环境(含配置文件参考)

心之所向,身之所往,己不由心,身又岂能由己,心之所向,一鹿向羊

搭建大数据三节点(Hadoop、Hbase、Zookeeper、Kafka、Hive)环境(含配置文件参考)
文章图片
1.jpg
话不投机半句多,上干货 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改成truevim /etc/hosts 192.168.1.134ceson01 192.168.1.107ceson02 192.168.1.169ceson03reboot登录192.168.1.107 vim /etc/hostname ceson02vim/etc/cloud/cloud.cfg This will cause the set+update hostname module to not operate (if true) preserve_hostname: true#这里是将false改成truevim /etc/hosts 192.168.1.134ceson01 192.168.1.107ceson02 192.168.1.169ceson03reboot登录192.168.1.169 vim /etc/hostname ceson03vim/etc/cloud/cloud.cfg This will cause the set+update hostname module to not operate (if true) preserve_hostname: true#这里是将false改成truevim /etc/hosts 192.168.1.134ceson01 192.168.1.107ceson02 192.168.1.169ceson03reboot

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

【搭建大数据三节点(Hadoop、Hbase、Zookeeper、Kafka、Hive)环境(含配置文件参考)】解压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:3888server.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/binroot@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.yamlsudo 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.localc.验证以上修改是否有效,重启机器后执行以下命令即可 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-nofile32768 cesonsoft/hard nproc32000ceson 替换成你运行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 requiredpam_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.xmlfs.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.xmldfs.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.xmlmapreduce.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.xmlyarn.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(下面部分的配置原来是rm1yarn.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.xmlhbase.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.xmlb.同步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.shb.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_envwget 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/logsceson02机器的kafka配置 broker.id=2 listeners=PLAINTEXT://ceson02:9092 zookeeper.connect=ceson01:2181,ceson02:2181,ceson03:2181 log.dirs=/home/ceson/wechat_env/kafka/logsceson03机器的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 3scd /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.localsleep 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.localsleep 3s# startup hadoop su ceson -l -c '/home/ceson/wechat_env/hadoop-3.1.2/sbin/start-dfs.sh'sleep 3ssu 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.localsleep 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.gztar -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/warehousehadoop 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 supergroup0 2019-09-12 14:58 /home/ceson/wechat_env/hive/log drwxrwxrwx- ceson supergroup0 2019-09-12 14:58 /home/ceson/wechat_env/hive/tmp drwxrwxrwx- ceson supergroup0 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环境变量设置

    推荐阅读