栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

数仓环境的搭建

数仓环境的搭建

文章目录

虚拟机环境的准备ssh免密登录(root和普通用户)安装jdkHadoop分布式安装Zookeeper安装部署Kafka集群的安装部署Flume集群的安装部署Mysql的安装部署Hive的安装部署Datax安装部署Maxwell安装部署

虚拟机环境的准备
·修改虚拟机为静态ip
	·vim /etc/sysconfig/network-scripts/ifcfg-ens33
		DEVICE=ens33
		TYPE=Ethernet
		onBOOT=yes
		BOOTPROTO=static
		NAME="ens33"
		PREFIX=24
		//ip地址
		IPADDR=192.168.88.101
		//网关
		GATEWAY=192.168.88.2
		DNS1=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 anywhere
		root    ALL=(ALL)     ALL
		
		%wheel  ALL=(ALL)       ALL
		
		gq   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.3
	export PATH=$PATH:$HADOOP_HOME/bin
	export 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(该文件中添加的内容结尾不允许有空格,文件中不允许有空行)
    	hadoop101
		hadoop102
		hadoop103
	·配置历史服务器(mapred-site.xml)
    	
		
			mapreduce.jobhistory.address
			hadoop102:10020
		
	
		
		
			mapreduce.jobhistory.webapp.address
			hadoop102:19888
		
	·配置日志的聚集(yarn-site.xml)
    	
		
			yarn.log-aggregation-enable
			true
		
	
		
		  
			yarn.log.server.url  
			http://hadoop101:19888/jobhistory/logs
		
	
		
		
			yarn.log-aggregation.retain-seconds
			604800
		
Zookeeper安装部署
·集群规划:每台服务器都安装
·在zookeeper目录下创建zkData目录,创建myid文件,添加编号
·配置zoo.cfg文件
	·修改数据存储路径:
		·dataDir=/opt/module/zookeeper-3.5.7/zkData
	·增加如下配置
		#######################cluster##########################
		server.1=hadoop102:2888:3888
		server.2=hadoop103:2888:3888
		server.3hadoop104:2888:3888
		·server.A=B:C:D
			A:代表几号服务器,与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
		
		
		
		    
		        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
	·增加配置
		#数据库id
		server-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|redis
	producer=kafka
	#目标Kafka集群地址
	kafka.bootstrap.servers=hadoop102:9092,hadoop103:9092,hadoop104:9092
	#目标Kafka topic,可静态配置,例如:maxwell,也可动态配置,例如:%{database}_%{table}
	kafka_topic=maxwell
	
	#MySQL相关配置
	host=hadoop102
	user=maxwell
	password=maxwell
	jdbc_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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/745361.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号