数仓环境的搭建

虚拟机环境的准备
·修改虚拟机为静态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:\Windows\System32\drivers\etc	
·关闭防火墙	
	·停止防火墙 
		·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 rsa
	·将公匙拷贝到要免密登录的服务器上
    	·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)
		<configuration>
			<!-- 指定NameNode的地址 -->
		    <property>
		        <name>fs.defaultFS</name>
		        <value>hdfs://hadoop101:8020</value>
			</property>
			<!-- 指定hadoop数据的存储目录 -->
		    <property>
		        <name>hadoop.tmp.dir</name>
		        <value>/opt/module/hadoop-3.1.3/data</value>
			</property>
		
			<!-- 配置HDFS网页登录使用的静态用户为gq -->
		    <property>
		        <name>hadoop.http.staticuser.user</name>
		        <value>gq</value>
			</property>
		
			<!-- 配置该gq(superUser)允许通过代理访问的主机节点 -->
		    <property>
		        <name>hadoop.proxyuser.gq.hosts</name>
		        <value>*</value>
			</property>
			<!-- 配置该gq(superUser)允许通过代理用户所属组 -->
		    <property>
		        <name>hadoop.proxyuser.gq.groups</name>
		        <value>*</value>
			</property>
			<!-- 配置该gq(superUser)允许通过代理的用户-->
		    <property>
		        <name>hadoop.proxyuser.gq.users</name>
		        <value>*</value>
			</property>
		</configuration>
	·HDFS配置文件(hdfs-site.xml)
    	<configuration>
			<!-- nn web端访问地址-->
			<property>
		        <name>dfs.namenode.http-address</name>
		        <value>hadoop101:9870</value>
		    </property>
		    
			<!-- 2nn web端访问地址-->
		    <property>
		        <name>dfs.namenode.secondary.http-address</name>
		        <value>hadoop103:9868</value>
		    </property>
		    
		    <!-- 测试环境指定HDFS副本的数量1 -->
		    <property>
		        <name>dfs.replication</name>
		        <value>3</value>
		    </property>
		</configuration>
	·YARN配置文件(yarn-site.xml)
		  <configuration>
			<!-- 指定MR走shuffle -->
		    <property>
		        <name>yarn.nodemanager.aux-services</name>
		        <value>mapreduce_shuffle</value>
		    </property>
		    
		    <!-- 指定ResourceManager的地址-->
		    <property>
		        <name>yarn.resourcemanager.hostname</name>
		        <value>hadoop103</value>
		    </property>
		    
		    <!-- 环境变量的继承 -->
		    <property>
		        <name>yarn.nodemanager.env-whitelist</name>
		        <value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
		    </property>
		    
		    <!-- yarn容器允许分配的最大最小内存 -->
		    <property>
		        <name>yarn.scheduler.minimum-allocation-mb</name>
		        <value>512</value>
		    </property>
		    <property>
		        <name>yarn.scheduler.maximum-allocation-mb</name>
		        <value>4096</value>
		    </property>
		    
		    <!-- yarn容器允许管理的物理内存大小 -->
		    <property>
		        <name>yarn.nodemanager.resource.memory-mb</name>
		        <value>4096</value>
		    </property>
		    
		    <!-- 关闭yarn对物理内存和虚拟内存的限制检查 -->
		    <property>
		        <name>yarn.nodemanager.pmem-check-enabled</name>
		        <value>false</value>
		    </property>
		    <property>
		        <name>yarn.nodemanager.vmem-check-enabled</name>
		        <value>false</value>
		    </property>
		</configuration>
	·MapReduce配置文件(mapred-site.xml)
    	<configuration>
			<!-- 指定MapReduce程序运行在Yarn上 -->
		    <property>
		        <name>mapreduce.framework.name</name>
		        <value>yarn</value>
		    </property>
		</configuration>
	·配置workes(该文件中添加的内容结尾不允许有空格,文件中不允许有空行)
    	hadoop101
		hadoop102
		hadoop103
	·配置历史服务器(mapred-site.xml)
    	<!-- 历史服务器端地址 -->
		<property>
			<name>mapreduce.jobhistory.address</name>
			<value>hadoop102:10020</value>
		</property>
	
		<!-- 历史服务器web端地址 -->
		<property>
			<name>mapreduce.jobhistory.webapp.address</name>
			<value>hadoop102:19888</value>
		</property>
	·配置日志的聚集(yarn-site.xml)
    	<!-- 开启日志聚集功能 -->
		<property>
			<name>yarn.log-aggregation-enable</name>
			<value>true</value>
		</property>
	
		<!-- 设置日志聚集服务器地址 -->
		<property>  
			<name>yarn.log.server.url</name>  
			<value>http://hadoop101:19888/jobhistory/logs</value>
		</property>
	
		<!-- 设置日志保留时间为7天 -->
		<property>
			<name>yarn.log-aggregation.retain-seconds</name>
			<value>604800</value>
		</property>
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
		<?xml version="1.0"?>
		<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
		<configuration>
		    <property>
		        <name>javax.jdo.option.ConnectionURL</name>
		        <value>jdbc:mysql://hadoop101:3306/metastore?useSSL=false</value>
		    </property>
			
		    <property>
		        <name>javax.jdo.option.ConnectionDriverName</name>
		        <value>com.mysql.jdbc.Driver</value>
		    </property>
		
		    <property>
		        <name>javax.jdo.option.ConnectionUserName</name>
		        <value>root</value>
		    </property>
		
		    <property>
		        <name>javax.jdo.option.ConnectionPassword</name>
		        <value>123456</value>
		    </property>
			#hdfs的hive目录
		    <property>
		        <name>hive.metastore.warehouse.dir</name>
		        <value>/user/hive/warehouse</value>
		    </property>
			#解决与idea想连接的可能出现的报错
		    <property>
		        <name>hive.metastore.schema.verification</name>
		        <value>false</value>
		    </property>
			#开启jdbc连接方式/jdbc连接方式的端口号
		    <property>
		    <name>hive.server2.thrift.port</name>
		    <value>10000</value>
		    </property>
		
		    <property>
		        <name>hive.server2.thrift.bind.host</name>
		        <value>hadoop101</value>
		    </property>
		
		    <property>
		        <name>hive.metastore.event.db.notification.api.auth</name>
		        <value>false</value>
		    </property>
		    #显示所在数据库
		    <property>
		        <name>hive.cli.print.header</name>
		        <value>true</value>
		    </property>
		
		    <property>
		        <name>hive.cli.print.current.db</name>
		        <value>true</value>
		    </property>
		</configuration>
	·将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
    	<property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop102:3306/metastore?useSSL=false&amp;useUnicode=true&amp;characterEncoding=UTF-8</value>
   		 </property>
·注:
	·iveserver2:能够实现远程的jdbc连接
	·命令行
		·启动hiveserver2
			·bin/hive --service hiveserver2
		·启动beeline客户端
			·bin/beenline -u jdbc:hive2://hadoop102:10000 -n gq
·开启元数据服务   	
	·在hive-site.xml配置元服务
		 <!-- 指定存储元数据要连接的地址 -->
	    <property>
	        <name>hive.metastore.uris</name>
	        <value>thrift://hadoop102:9083</value>
	    </property>
	·启动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
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

GambleLife

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值