欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

数仓环境的搭建

时间:2023-04-19
文章目录

虚拟机环境的准备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) fs.defaultFS hdfs://hadoop101:8020 hadoop.tmp.dir /opt/module/hadoop-3.1.3/data hadoop.http.staticuser.user gq hadoop.proxyuser.gq.hosts * hadoop.proxyuser.gq.groups * hadoop.proxyuser.gq.users *·HDFS配置文件(hdfs-site.xml) dfs.namenode.http-address hadoop101:9870 dfs.namenode.secondary.http-address hadoop103:9868 dfs.replication 3 ·YARN配置文件(yarn-site.xml) yarn.nodemanager.aux-services mapreduce_shuffle yarn.resourcemanager.hostname hadoop103 yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME yarn.scheduler.minimum-allocation-mb 512 yarn.scheduler.maximum-allocation-mb 4096 yarn.nodemanager.resource.memory-mb 4096 yarn.nodemanager.pmem-check-enabled false yarn.nodemanager.vmem-check-enabled false ·MapReduce配置文件(mapred-site.xml) mapreduce.framework.name yarn ·配置workes(该文件中添加的内容结尾不允许有空格,文件中不允许有空行) hadoop101hadoop102hadoop103·配置历史服务器(mapred-site.xml) mapreduce.jobhistory.addresshadoop102:10020mapreduce.jobhistory.webapp.addresshadoop102:19888·配置日志的聚集(yarn-site.xml) yarn.log-aggregation-enabletrue yarn.log.server.url http://hadoop101:19888/jobhistory/logsyarn.log-aggregation.retain-seconds604800

Zookeeper安装部署

·集群规划:每台服务器都安装·在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"?> javax.jdo.option.ConnectionURL jdbc:mysql://hadoop101:3306/metastore?useSSL=false javax.jdo.option.ConnectionDriverName com.mysql.jdbc.Driver javax.jdo.option.ConnectionUserName root javax.jdo.option.ConnectionPassword 123456 #hdfs的hive目录 hive.metastore.warehouse.dir /user/hive/warehouse #解决与idea想连接的可能出现的报错 hive.metastore.schema.verification false #开启jdbc连接方式/jdbc连接方式的端口号 hive.server2.thrift.port 10000 hive.server2.thrift.bind.host hadoop101 hive.metastore.event.db.notification.api.auth false #显示所在数据库 hive.cli.print.header true hive.cli.print.current.db true ·将hive-env.sh.template改为hive-env.sh ·将export HADOOP_HEAPSIZE=1024放开·启动mysql,创建metastore数据库 ·初始化Hive的元数据库 ·schematool -initSchema -dbType mysql -verbose·修改元数据字符集(元数据库的字符集默认为Latin1),不支持中文·在mysql中修改Hive元数据库中存储注释的字段的字符集为utf-8以及表注释·alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;·alter table TABLE_PARAMS modify column PARAM_VALUE mediumtext character set utf8;·修改hive-site.xml中的jdbc url javax.jdo.option.ConnectionURL jdbc:mysql://hadoop102:3306/metastore?useSSL=false&useUnicode=true&characterEncoding=UTF-8 ·注:·iveserver2:能够实现远程的jdbc连接·命令行·启动hiveserver2·bin/hive --service hiveserver2·启动beeline客户端·bin/beenline -u jdbc:hive2://hadoop102:10000 -n gq·开启元数据服务 ·在hive-site.xml配置元服务 hive.metastore.uris thrift://hadoop102:9083 ·启动metastore服务·hive --service metastore启动过,启动窗口不能再进行任何操作,需要重新打开一个shell窗口·启动hive·只要主服务器启动了元数据服务,在从服务器配置元数据服务的主机地址,无需密码就能连接到hive,达到高可用的目的

Datax安装部署

下载地址: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

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。