虚拟机环境的准备ssh免密登录(root和普通用户)安装jdkHadoop分布式安装Zookeeper安装部署Kafka集群的安装部署Flume集群的安装部署Mysql的安装部署Hive的安装部署Datax安装部署Maxwell安装部署 虚拟机环境的准备
·修改虚拟机为静态ip·vim /etc/sysconfig/network-scripts/ifcfg-ens33DEVICE=ens33TYPE=EthernetonBOOT=yesBOOTPROTO=staticNAME="ens33"PREFIX=24//ip地址IPADDR=192.168.88.101//网关GATEWAY=192.168.88.2DNS1=192.168.88.2·查看Linux虚拟机的虚拟网络编辑器,编辑->虚拟网络编辑器->VMnet8·修改NAT模式(与虚拟机共享的主机的IP地址)·子网IP 子网掩码·修改Windows系统VM8网络IP·修改主机名·修改主机名 /etc/hostname·配置主机映射 /etc/hosts·修改Windows主机映射文件 C:WindowsSystem32driversetc·关闭防火墙·停止防火墙 ·systemctl stop firewalld·关闭自启 ·systemctl disable firewalld·配置普通用户具有root权限·/etc/sudoers## Allow root to run any commands anywhereroot ALL=(ALL) ALL%wheel ALL=(ALL) ALLgq ALL=(ALL) NOPASSWD: ALL·重启 reboot
ssh免密登录(root和普通用户)·免密登录·ssh 主机名·无密匙配置·生成公匙密匙·ssh-keygen -t rea·将公匙拷贝到要免密登录的服务器上 ·ssh-copy-id 主机名
安装jdk·检查是否安装过JDK·rpm -qa |grep -i java·卸载JDK·rpm -qa|grep -i java | xargs -nl rpm -e --nodeps-i:忽略大小写·配置环境变量·source /etc/profile
Hadoop分布式安装·集群部署规划(NameNode、Second NameNode、ResourceManager尽量规划到不同的服务器上)·配置环境变量export HADOOP_HOME=/opt/module/hadoop-3.1.3export PATH=$PATH:$HADOOP_HOME/binexport PATH=$PATH:$HADOOP_HOME/sbin·配置集群·核心配置文件(core-site.xml)
·集群规划:每台服务器都安装·在zookeeper目录下创建zkData目录,创建myid文件,添加编号·配置zoo.cfg文件·修改数据存储路径:·dataDir=/opt/module/zookeeper-3.5.7/zkData·增加如下配置#######################cluster##########################server.1=hadoop102:2888:3888server.2=hadoop103:2888:3888server.3hadoop104:2888:3888·server.A=B:C:DA:代表几号服务器,与myid的编号对应B:服务器地址C:Follower与集群的Leader服务器交换信息的端口D:选举使用的端口
Kafka集群的安装部署·在kafka下创建logs目录·配置文件(server.properties)修改或者增加以下内容:#broker的全局唯一编号,不能重复broker.id=0#删除topic功能使能delete.topic.enable=true#kafka运行日志存放的路径log.dirs=/opt/module/kafka/data#配置连接Zookeeper集群地址zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka·配置环境变量
Flume集群的安装部署·删除lib下的guava-11.0.2.jar删除以兼容Hadoop 3.1.3·修改/conf下的log4j.properties日志打印位置#console表示同时将日志输出到控制台flume.root.logger=INFO,LOGFILE,console#固定日志输出的位置flume.log.dir=/opt/module/flume/logs#日志文件的名称flume.log.file=flume.log·添加环境变量
Mysql的安装部署·卸载自带的mysql-libs:小型的数据库与mysql冲突·rpm -qa | grep -i -E mysql|mariadb | xargs -n1 sudo rpm -e --nodeps·安装包和驱动·安装mysql依赖·sudo rpm -ivh 01_mysql-community-common-5.7.16-1.el7.x86_64.rpm·sudo rpm -ivh 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm·sudo rpm -ivh 03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm·安装mysql-client·sudo rpm -ivh 04_mysql-community-client-5.7.16-1.el7.x86_64.rpm·安装mysql-server·sudo rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm·如果缺少依赖:sudo yum install -y libaio·可以先初始化mysql,也可以不初始化·初始化mysql,需要/etc/my.conf中datadir中指向的目录为空·sudo mysqld --initialize --user=mysql·查看随机生成的密码·sudo cat /var/log/mysqld.log·登录mysql·修改密码·set password = password("");·更改mysql密码策略·set global validate_password_length=4;·set global validate_password_policy=0;·进入mysql数据库,修改user表中host内容,允许任意ip连接·update mysql.user set host='%' where user='root'·flush privileges
Hive的安装部署·将mysql的jdbc驱动拷贝到hive的lib目录下·添加环境变量·处理日志jar包冲突·mv log4j-slf4j-impl-2.10.0.jar log4j-slf4j-impl-2.10.0.jar.bak·元数据配置到mysql·在/hive/conf下创建hive-site.xml<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
下载地址:http://datax-opensource.oss-cn-hangzhou.aliyuncs.com/datax.tar.gz·安装过后自检·python /bin/datax.py /job/job.json·dataX的使用:只需根据自己同步数据的数据源和目的地选择相应的Reader和Writer·查看dataX配置文件模板·python /bin/datax.py -r mysqlreader -w hdfswriter·Reader和Writer的具体参数可参考官方文档,地址如下:·https://github.com/alibaba/DataX/blob/master/README.md ·https://gitee.com/mirrors/DataX/blob/master/README.md·查看hdfs的gzip压缩文件·hadoop fs -cat / |zcat
Maxwell安装部署地址:https://github.com/zendesk/maxwell/releases/download/v1.29.2/maxwell-1.29.2.tar.gz(注:Maxwell-1.30.0及以上版本不再支持JDK1.8。)·修改mysql配置---/etc/my.conf·增加配置#数据库idserver-id = 1#启动binlog,该参数的值会作为binlog的文件名log-bin=mysql-bin#binlog类型,maxwell要求为row类型binlog_format=row#启用binlog的数据库,需根据实际情况作出修改binlog-do-db=gmall·Maxwell需要在MySQL中存储其运行过程中的所需的一些数据,包括binlog同步的断点位置(Maxwell支持断点续传)等等,故需要在MySQL为Maxwell创建数据库及用户。·创建maxwell数据库以及用户·创建数据库·CREATE DATAbase maxwell;·如果没有初始化mysql,需要调整策略级别 ·set global validate_password_policy=0; ·set global validate_password_length=4; ·创建maxwell用户并赋予其必要权限 · CREATE USER 'maxwell'@'%' IDENTIFIED BY 'maxwell'; · GRANT ALL ON maxwell.* TO 'maxwell'@'%'; · GRANT SELECT, REPLICATION CLIENT, REPLICATION SLAVE ON *.* TO 'maxwell'@'%';·配置maxwell的config.properties#Maxwell数据发送目的地,可选配置有stdout|file|kafka|kinesis|pubsub|sqs|rabbitmq|redisproducer=kafka#目标Kafka集群地址kafka.bootstrap.servers=hadoop102:9092,hadoop103:9092,hadoop104:9092#目标Kafka topic,可静态配置,例如:maxwell,也可动态配置,例如:%{database}_%{table}kafka_topic=maxwell#MySQL相关配置host=hadoop102user=maxwellpassword=maxwelljdbc_options=useSSL=false&serverTimezone=Asia/Shanghai·启停maxwell·/opt/module/maxwell/bin/maxwell --config /opt/module/maxwell/config.properties --daemon· ps -ef | grep maxwell | grep -v grep | grep maxwell | awk '{print $2}' | xargs kill -9