大数据集群规划
hw101 | hw102 | hw103 | |
---|---|---|---|
HDFS | NameNode DataNode |
DataNode | SecondaryNameNode DataNode |
YARN | NodeManager | ResourceManager NodeManager |
NodeManager |
Zookeeper | QuorumPeerMain | QuorumPeerMain | QuorumPeerMain |
Hive | √(Tez or Spark) | ||
MySQL | √ | ||
Ganglia | web gmetad gmod | gmod | gmod |
Flume | 采集日志 | 采集日志 | 消费Kafka |
Kafka | √ | √ | √ |
Spark | √ | ||
Hbase | HMaster HRegionServer |
HRegionServer | HRegionServer |
Kylin | √ | ||
Sqoop | √ | ||
Presto | Coordinator | Worker | Worker |
Azkaban | AzkabanWebServer AzkabanExecutorServer |
AzkabanExecutorServer | AzkabanExecutorServer |
Superset | √ | ||
Atlas | √ | ||
Zabbix | zabbix-agent zabbix-server zabbix-web |
zabbix-agent | zabbix-agent |
Solr | Jar |
一、 Linux系统的配置
1.配置映射
命令:vim /etc/hosts
172.30.250.121 hadoop101 hadoop101
172.30.250.120 hadoop102 hadoop102
172.30.250.122 hadoop103 hadoop103
2.SSH免密登录
(1)进入家目录的.ssh文件
(2)生成公钥和私钥 命令:ssh-keygen -t rsa
(3)把公钥拷贝到要免密登录的机器上 命令:ssh-copy-id hadoop101/hadoop102/hadoop103
3.分发脚本
(1)echo $PATH,脚本放在声明了全局环境变量的路径
(2)编辑分发脚本 命令:vim xsync
#!/bin/bash#1. 判断参数个数
if [ $# -lt 1 ]
thenecho Not Enough Arguement!exit;
fi#2. 遍历集群所有机器
for host in hadoop101 hadoop102 hadoop103
doecho ==================== $host ====================#3. 遍历所有目录,挨个发送for file in $@do#4. 判断文件是否存在if [ -e $file ]then#5. 获取父目录pdir=$(cd -P $(dirname $file); pwd)#6. 获取当前文件的名称fname=$(basename $file)ssh $host "mkdir -p $pdir"rsync -av $pdir/$fname $host:$pdirelseecho $file does not exists!fidone
done
(3)修改脚本 xsync 具有执行权限 命令:chmod +x xsync
(4)解决华为云shell中文乱码问题
yum install glibc-common
yum install -y langpacks-zh_CN
vim /etc/locale.conf # 修改locale.conf文件LANG=zh_CN.utf8
source /etc/locale.conf
二、 安装JDK
1.卸载系统自带JDK
查询是否安装Java软件 命令:rpm -qa | grep java
卸载JDK 命令:rpm -e 软件包名
2.上传安装包并解压
解压到module目录 命令:tar -zxvf jdk-8u211-linux-x64.tar.gz -C /opt/module/
3.配置环境变量
编辑/etc/profile 命令:vim /etc/profile#JAVA_HOME
export JAVA_HOME=/opt/module/jdk1.8.0_211
export PATH=$PATH:$JAVA_HOME/bin让配置文件生效 命令:source /etc/profile
验证JDK是否安装成功 命令:java -version
4.分发配置文件并生效
命令:scp -r /opt/module/jdk1.8.0_211/ hadoop102:/opt/module/
命令:scp -r /opt/module/jdk1.8.0_211/ hadoop103:/opt/module/
命令:scp /etc/profile hadoop102:/etc/
命令:scp /etc/profile hadoop103:/etc/命令:source /etc/profile
三、 安装Hadoop
1.上传安装包并解压
解压到module目录 命令:tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/
2.配置环境变量
编辑/etc/profile 命令:vim /etc/profile#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin让配置文件生效 命令:source /etc/profile
验证hadoop是否安装成功 命令:hadoop version
3.分发配置文件并生效
命令:scp -r /opt/module/hadoop-3.1.3/ hadoop102:/opt/module/
命令:scp -r /opt/module/hadoop-3.1.3/ hadoop103:/opt/module/
命令:scp /etc/profile hadoop102:/etc/
命令:scp /etc/profile hadoop103:/etc/命令:source /etc/profile
四、 集群配置
1.核心配置文件
配置core-site.xml
命令:cd $HADOOP_HOME/etc/hadoop
命令:vim core-site.xml文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><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网页登录使用的静态用户为root --><property><name>hadoop.http.staticuser.user</name><value>root</value></property><!-- 配置该root(superUser)允许通过代理访问的主机节点 --><property><name>hadoop.proxyuser.root.hosts</name><value>*</value></property><!-- 配置该root(superUser)允许通过代理用户所属组 --><property><name>hadoop.proxyuser.root.groups</name><value>*</value></property><!-- 配置该root(superUser)允许通过代理的用户--><property><name>hadoop.proxyuser.root.users</name><value>*</value></property>
</configuration>
2.HDFS配置文件
配置hadoop-env.sh 命令:vim hadoop-env.sh
命令:export JAVA_HOME=/opt/module/jdk1.8.0_211配置hdfs-site.xml 命令:vim hdfs-site.xml
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><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>
</configuration>
3.YARN配置文件
配置yarn-env.sh 命令:vim yarn-env.sh
命令:export JAVA_HOME=/opt/module/jdk1.8.0_211配置yarn-site.xml 命令:vim yarn-site.xml
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><!-- 指定MR走shuffle协议 --><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!-- 指定ResourceManager的地址--><property><name>yarn.resourcemanager.hostname</name><value>hadoop102</value></property><!-- 环境变量的继承,仅限3.1.3版本解决BUG --><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.vmem-check-enabled</name><value>false</value></property>
</configuration>
4.MapReduce配置文件
配置mapred-env.sh 命令:vim mapred-env.sh
命令:export JAVA_HOME=/opt/module/jdk1.8.0_211配置mapred-site.xml 命令:vim mapred-site.xml
文件内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration><!-- 指定MapReduce程序运行在Yarn上 --><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>
5.workers配置文件
命令:vim /opt/module/hadoop-3.1.3/etc/hadoop/workers
在该文件中增加如下内容:
hw101
hw102
hw103
注意:该文件中添加的内容结尾不允许有空格,文件中不允许有空行。
6.分发Hadoop配置文件
命令:xsync /opt/module/hadoop-3.1.3/etc
五、 群起集群
1.使用root操作集群
将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数:#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=rootstart-yarn.sh,stop-yarn.sh两个文件顶部添加以下参数:#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root分发命令:xsync /opt/module/hadoop-3.1.3/sbin/
2.启动集群
(1)如果集群是第一次启动,需要在hadoop101节点格式化NameNode(注意:格式化NameNode,会产生新的集群id,导致NameNode和DataNode的集群id不一致,集群找不到已往数据。如果集群在运行过程中报错,需要重新格式化NameNode的话,一定要先停止namenode和datanode进程,并且要删除所有机器的data和logs目录,然后再进行格式化。)
命令:hdfs namenode -format
(2)启动HDFS
命令:sbin/start-dfs.sh
(3)在配置了ResourceManager的节点(hadoop102)启动YARN
命令:sbin/start-yarn.sh
(4)Web端查看HDFS的NameNode
(a)浏览器中输入:http://hw101:9870
(5)Web端查看YARN的ResourceManager
(a)浏览器中输入:http://hw102:8088
3.放开端口
hw101开通端口:8020、9870、10020、19888,9083,10000,10001,8042(查看yarn日志)
hw102开通端口:8088
hw103开通端口:9868
六、 集群其他配置
1.配置历史服务器
(1)配置mapred-site.xml 命令:vim mapred-site.xml
<!-- 历史服务器端地址 -->
<property><name>mapreduce.jobhistory.address</name><value>hadoop101:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop101:19888</value>
</property>
(2).分发配置 命令:xsync $HADOOP_HOME/etc/hadoop/mapred-site.xml
(3).在hw101启动历史服务器 命令:mapred --daemon start historyserver
(4).查看历史服务器是否启动 命令:jps
(5).Web端查看JobHistory
(a)浏览器中输入:http://hw101:19888/jobhistory
2.配置日志的聚集
(1)配置yarn-site.xml 命令:vim 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>(2).分发配置 命令:xsync $HADOOP_HOME/etc/hadoop/yarn-site.xml注意:开启日志聚集功能,需要重新启动NodeManager 、ResourceManager和HistoryServer。
(3).重启NodeManager 、ResourceManager和HistoryServer
hw102上执行 命令:sbin/stop-yarn.sh
hw101上执行 命令:mapred --daemon stop historyserver
hw102上执行 命令:sbin/start-yarn.sh
hw101上执行 命令:mapred --daemon start historyserver(4).测试WordCount程序
命令:hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.3.jar wordcount /input /output
(5).查看日志
七、 Hadoop集群常用脚本
1.集群启停脚本
(1)echo $PATH,脚本放在声明了全局环境变量的路径
(2)编辑分发脚本 命令:vim myhadoop.sh
#!/bin/bash
if [ $# -lt 1 ]
thenecho "No Args Input..."exit ;
fi
case $1 in
"start")echo " =================== 启动 hadoop集群 ==================="echo " --------------- 启动 hdfs ---------------"ssh hadoop101 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"echo " --------------- 启动 yarn ---------------"ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"echo " --------------- 启动 historyserver ---------------"ssh hadoop101 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")echo " =================== 关闭 hadoop集群 ==================="echo " --------------- 关闭 historyserver ---------------"ssh hadoop101 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"echo " --------------- 关闭 yarn ---------------"ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"echo " --------------- 关闭 hdfs ---------------"ssh hadoop101 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)echo "Input Args Error..."
;;
esac
(3)修改脚本 xsync 具有执行权限 命令:chmod +x myhadoop.sh
2.查看三台服务器Java进程脚本
(1)echo $PATH,脚本放在声明了全局环境变量的路径
(2)编辑分发脚本 命令:vim jpsall
#!/bin/bash
for host in hadoop101 hadoop102 hadoop103
doecho =============== $host ===============ssh $host "source /etc/profile ; jps"
done
(3)修改脚本 xsync 具有执行权限 命令:chmod +x jpsall
八、 安装Zookeeper
1.解压到module目录 命令:tar -zxvf apache-zookeeper-3.5.7-bin.tar.gz -C /opt/module/2.修改apache-zookeeper-3.5.7-bin名称为zookeeper-3.5.7
命令:mv apache-zookeeper-3.5.7-bin/ zookeeper-3.5.73.配置服务器编号
(1)在/opt/module/zookeeper-3.5.7/这个目录下创建zkData 命令:mkdir zkData
(2)在/opt/module/zookeeper-3.5.7/zkData目录下创建一个myid的文件 命令: vi myid 4.重命名/opt/module/zookeeper-3.5.7/conf这个目录下的zoo_sample.cfg为zoo.cfg
命令:mv zoo_sample.cfg zoo.cfg
修改配置:
dataDir=/opt/module/zookeeper-3.5.7/zkData
增加配置:
#######################cluster##########################
server.1=hadoop101:2888:3888
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888server.A=B:C:D。
A是一个数字,表示这个是第几号服务器;
B是这个服务器的ip地址;
C是这个服务器与集群中的Leader服务器交换信息的端口;
D是万一集群中的Leader服务器挂了,需要一个端口来重新进行选举,选出一个新的Leader,而这个端口就是用来执行选举时服务器相互通信的端口。5.分发/opt/module/zookeeper-3.5.7/,并修改myid中服务器号
命令:xsync /opt/module/zookeeper-3.5.76.分别启动zookeeper(start启动,status状态,stop关闭)
命令:bin/zkServer.sh start7.ZK集群启动停止脚本
(1)echo $PATH,脚本放在声明了全局环境变量的路径
(2)编辑分发脚本 命令:vim zk.shcase $1 in
"start"){
for i in hadoop101 hadoop102 hadoop103
doecho ---------- zookeeper $i 启动 ------------ ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh start"
done
};;
"stop"){
for i in hadoop101 hadoop102 hadoop103
doecho ---------- zookeeper $i 停止 ------------ ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"
done
};;
"status"){
for i in hadoop101 hadoop102 hadoop103
doecho ---------- zookeeper $i 状态 ------------ ssh $i "/opt/module/zookeeper-3.5.7/bin/zkServer.sh status"
done
};;
esac(3)修改脚本 xsync 具有执行权限 命令:chmod u+x zk.sh 注意:修改Zookeeper JAVA_HOME is not set and java could not be found in PATH(版本bug)
JAVA_HOME=/opt/module/jdk1.8.0_211
https://blog.csdn.net/single_cong/article/details/103792242
九、 安装MySQL和Hive
MySQL
1.安装包准备
(1).将安装包和JDBC驱动上传到/opt/software,共计6个
01_mysql-community-common-5.7.16-1.el7.x86_64.rpm
02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
04_mysql-community-client-5.7.16-1.el7.x86_64.rpm
05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
mysql-connector-java-5.1.27-bin.jar
(2).卸载MySQL依赖,虽然机器上没有装MySQL,但是这一步不可少 命令:yum remove mysql-libs
(3).下载依赖并安装 命令:yum install libaio / yum -y install autoconf
2.安装MySQL
(1).安装MySQL依赖
命令:rpm -ivh 01_mysql-community-common-5.7.16-1.el7.x86_64.rpm
命令:rpm -ivh 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
命令:rpm -ivh 03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
(2).安装mysql-client 命令:rpm -ivh 04_mysql-community-client-5.7.16-1.el7.x86_64.rpm
(3).安装mysql-server 命令:rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
注意:如果报如下错误,这是由于yum安装了旧版本的GPG keys所造成,从rpm版本4.1后,在安装或升级软件包时会自动检查软件包的签名。
warning: 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
libaio.so.1()(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
解决办法:
命令:rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm --force --nodeps
(4).启动MySQL 命令:systemctl start mysqld
(5).查看MySQL密码 命令:cat /var/log/mysqld.log | grep password
3.配置MySQL
(1).安用刚刚查到的密码进入MySQL(如果报错,给密码加单引号) 命令:mysql -uroot -p'jfiur>yOR1Q;'
(2).更改MySQL密码策略 命令:set global validate_password_length=4; / set global validate_password_policy=0;
(3).设置简单好记的密码 命令:mysql>set password=password("123456");
(4).进入MySQL库 命令:mysql>use mysql
(5).查询user表 命令:mysql>select user, host from user;
(6).设修改user表,把Host表内容修改为% 命令:mysql>update user set host="%" where user="root";
(7).刷新 命令:mysql>flush privileges;
Hive
1.安装hive
(1).解压到module目录
命令:tar -zxvf /opt/software/apache-hive-3.1.2-bin.tar.gz -C /opt/module/
(2).修改apache-hive-3.1.2-bin的名称为hive-3.1.2
命令:mv /opt/module/apache-hive-3.1.2-bin/ /opt/module/hive-3.1.2
(3).配置环境变量
编辑/etc/profile 命令:vim /etc/profile新增
#HIVE_HOME
export HIVE_HOME=/opt/module/hive-3.1.2
export PATH=$PATH:$HIVE_HOME/bin
让配置文件生效 命令:source /etc/profile
(4).解决日志Jar包冲突
命令:mv $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.jar $HIVE_HOME/lib/log4j-slf4j-impl-2.10.0.bak
命令:cp /opt/module/hadoop-3.1.3/share/hadoop/common/lib/guava-27.0-jre.jar /opt/module/hive-3.1.2/lib/
rm -rf /opt/module/hive-3.1.2/lib/guava-19.0.jar
2.Hive元数据配置到MySQL
(1).拷贝驱动
命令:cp /opt/software/Mysql5.7/mysql-connector-java-5.1.27-bin.jar $HIVE_HOME/lib/
(2).配置Metastore到MySQL 命令:vim $HIVE_HOME/conf/hive-site.xml
添加如下内容
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration> <!-- jdbc连接的URL --> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://hadoop101:3306/metastore?useSSL=false</value> </property> <!-- jdbc连接的Driver--> <property> <name>javax.jdo.option.ConnectionDriverName</name> <value>com.mysql.jdbc.Driver</value> </property> <!-- jdbc连接的username--> <property> <name>javax.jdo.option.ConnectionUserName</name> <value>root</value> </property> <!-- jdbc连接的password --> <property> <name>javax.jdo.option.ConnectionPassword</name> <value>123456</value> </property> <!-- Hive元数据存储版本的验证 --> <property> <name>hive.metastore.schema.verification</name> <value>false</value> </property> <!--元数据存储授权--> <property> <name>hive.metastore.event.db.notification.api.auth</name> <value>false</value> </property> <!-- Hive默认在HDFS的工作目录 --> <property> <name>hive.metastore.warehouse.dir</name> <value>/user/hive/warehouse</value> </property> </configuration>
(3).登陆MySQL,新建Hive元数据库 命令:create database metastore;
(4).初始化Hive元数据库 命令:schematool -initSchema -dbType mysql -verbose
3.Hive连接方式
(1).直连 命令:bin/hive
(2).使用元数据服务的方式访问Hive1).在hive-site.xml文件中添加如下配置信息 命令:vim $HIVE_HOME/conf/hive-site.xml<!-- 指定存储元数据要连接的地址 --> <property> <name>hive.metastore.uris</name> <value>thrift://hadoop101:9083</value> </property> 2).启动metastore 命令:hive --service metastore2020-04-24 16:58:08: Starting Hive Metastore Server 3).启动 hive 命令:bin/hive
(3).使用JDBC方式访问Hive1).在hive-site.xml文件中添加如下配置信息 命令:vim $HIVE_HOME/conf/hive-site.xml<!-- 指定hiveserver2连接的host --> <property> <name>hive.server2.thrift.bind.host</name> <value>hadoop101</value> </property> <!-- 指定hiveserver2连接的端口号 --> <property> <name>hive.server2.thrift.port</name> <value>10000</value> </property> 2)启动hiveserver2(需要多等待一会) 命令:bin/hive --service hiveserver2 3)启动beeline客户端 命令:bin/beeline -u jdbc:hive2://hadoop101:10000 -n root
(4).编写脚本来管理服务的启动和关闭 命令:vim $HIVE_HOME/bin/hiveservices.sh#!/bin/bash
HIVE_LOG_DIR=$HIVE_HOME/logs
if [ ! -d $HIVE_LOG_DIR ]
thenmkdir -p $HIVE_LOG_DIR
fi#检查进程是否运行正常,参数1为进程名,参数2为进程端口 function check_process()
{pid=$(ps -ef 2>/dev/null | grep -v grep | grep -i $1 | awk '{print $2}')ppid=$(netstat -nltp 2>/dev/null | grep $2 | awk '{print $7}' | cut -d '/' -f 1)echo $pid [[ "$pid" =~ "$ppid" ]] && [ "$ppid" ] && return 0 || return 1
}function hive_start()
{metapid=$(check_process HiveMetastore 9083)cmd="nohup hive --service metastore >$HIVE_LOG_DIR/metastore.log 2>&1 &"[ -z "$metapid" ] && eval $cmd || echo "Metastroe服务已启动" server2pid=$(check_process HiveServer2 10000)cmd="nohup hiveserver2 >$HIVE_LOG_DIR/hiveServer2.log 2>&1 &"[ -z "$server2pid" ] && eval $cmd || echo "HiveServer2服务已启动"
}function hive_stop()
{
metapid=$(check_process HiveMetastore 9083)[ "$metapid" ] && kill $metapid || echo "Metastore服务未启动" server2pid=$(check_process HiveServer2 10000)[ "$server2pid" ] && kill $server2pid || echo "HiveServer2服务未启动"
}case $1 in
"start")hive_start;;
"stop")hive_stop;;
"restart")hive_stopsleep 2hive_start;;
"status")check_process HiveMetastore 9083 >/dev/null && echo "Metastore服务运行正常" || echo "Metastore服务运行异常" check_process HiveServer2 10000 >/dev/null && echo "HiveServer2服务运行正常" || echo "HiveServer2服务运行异常" ;;
*)echo Invalid Args! echo 'Usage: '$(basename $0)' start|stop|restart|status' ;;
esacchmod +x $HIVE_HOME/bin/hiveservices.sh
hiveservices.sh start 4.Hive常见属性配置
(1).Hive运行日志信息配置(默认存放在/tmp/atguigu/hive.log目录下)
在conf目录下 命令:mv hive-log4j2.properties.template hive-log4j2.properties
编辑hive-log4j2.properties property.hive.log.dir=/opt/module/hive-3.1.2/logs
(2).打印当前库和表头 命令:vim $HIVE_HOME/conf/hive-site.xml
在hive-site.xml中加入如下两个配置: <property> <name>hive.cli.print.header</name> <value>true</value> </property> <property> <name>hive.cli.print.current.db</name> <value>true</value> </property>
4.安装Tez引擎
1.将tez安装包拷贝到集群,并解压
# 创建tez文件夹(因为tez.tar.gz解压缩后有N多文件,没有被一个文件夹包裹着)
mkdir /opt/module/tez
# 解压缩至指定文件夹
tar -zxvf /opt/software/tez-0.10.1-SNAPSHOT-minimal.tar.gz -C /opt/module/tez2.上传 tez 依赖到 HDFS
# hdfs 创建文件夹
hadoop fs -mkdir /tez
# 上传本地文件至 hdfs 集群
hadoop fs -put /opt/software/tez-0.10.1-SNAPSHOT.tar.gz /tez3.新建 tez-site.xml
# 在hadoop配置文件中,新建 tez-site.xml(注意:是在hadoop的 etc/hadoop 目录下新建哦)
vim $HADOOP_HOME/etc/hadoop/tez-site.xml<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration><property><name>tez.lib.uris</name><value>${fs.defaultFS}/tez/tez-0.10.1-SNAPSHOT.tar.gz</value></property><property><name>tez.use.cluster.hadoop-libs</name><value>true</value></property><property><name>tez.am.resource.memory.mb</name><value>1024</value></property><property><name>tez.am.resource.cpu.vcores</name><value>1</value></property><property><name>tez.container.max.java.heap.fraction</name><value>0.4</value></property><property><name>tez.task.resource.memory.mb</name><value>1024</value></property><property><name>tez.task.resource.cpu.vcores</name><value>1</value></property>
</configuration>4.修改Hadoop环境变量,分发
vim $HADOOP_HOME/etc/hadoop/shellprofile.d/tez.shhadoop_add_profile tez
function _tez_hadoop_classpath
{hadoop_add_classpath "$HADOOP_HOME/etc/hadoop" afterhadoop_add_classpath "/opt/module/tez/*" afterhadoop_add_classpath "/opt/module/tez/lib/*" after
}
在 hadoop 中修改的配置,需要分发到集群每台节点上。hive 只是一个客户端,不需要分发。5.修改Hive的计算引擎
vim $HIVE_HOME/conf/hive-site.xml<property><name>hive.execution.engine</name><value>tez</value>
</property>
<property><name>hive.tez.container.size</name><value>1024</value>
</property>6.解决日志 Jar 包冲突
rm /opt/module/tez/lib/slf4j-log4j12-1.7.10.jar安装后,Hadoop集群和Hive客户端均需要重启。
验证:
1.创建一张分区表
hive (default)> create table student(id int, name string) partitioned by (month string) row format delimited fields terminated by '\t';
2.基本插入数据
hive (default)> insert into table student partition(month='201709') values(1,'wangwu');
5.安装Spark引擎(编译源码)
(1).为解决spark兼容性问题,重新安装hive,一定要使用hive on spark文件夹中的hive包(2).在Hive所在节点部署Spark
tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module/
mv /opt/module/spark-3.0.0-bin-hadoop3.2 /opt/module/spark-3.0.0
配置SPARK_HOME环境变量 命令:vim /etc/profile
#SPARK_HOME
export SPARK_HOME=/opt/module/spark-3.0.0
export PATH=$PATH:$SPARK_HOME/bin
source 使其生效 命令: source /etc/profile(3).在Hive中创建spark配置文件 命令:vim /opt/module/hive-3.1.2/conf/spark-defaults.conf
添加以下内容
spark.master yarn
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hw101:8020/spark-history
spark.executor.memory 1g
spark.driver.memory 1g(4).在HDFS创建如下路径,用于存储历史日志 命令:hadoop fs -mkdir /spark-history(5).向HDFS上传Spark纯净版jar包
说明1:由于Spark3.0.0非纯净版默认支持的是hive2.3.7版本,直接使用会和安装的Hive3.1.2出现兼容性问题。所以采用Spark纯净版jar包,不包含hadoop和hive相关依赖,避免冲突。
说明2:Hive任务最终由Spark来执行,Spark任务资源分配由Yarn来调度,该任务有可能被分配到集群的任何一个节点。所以需要将Spark的依赖上传到HDFS集群路径,这样集群中任何一个节点都能获取到。
1).上传并解压spark-3.0.0-bin-without-hadoop.tgz 命令:tar -zxvf /opt/software/spark/spark-3.0.0-bin-without-hadoop.tgz
2).上传Spark纯净版jar包到HDFS
hadoop fs -mkdir /spark-jars
hadoop fs -put spark-3.0.0-bin-without-hadoop/jars/* /spark-jars(6).修改hive-site.xml文件 命令:vim /opt/module/hive-3.1.2/conf/hive-site.xml
添加以下内容
<!--Spark依赖位置(注意:端口号8020必须和namenode的端口号一致)-->
<property><name>spark.yarn.jars</name><value>hdfs://hw101:8020/spark-jars/*</value>
</property>
<!--Hive执行引擎-->
<property><name>hive.execution.engine</name><value>spark</value>
</property>
十、 安装部署Flume
1.安装Flume
(1).解压到module目录 命令:tar -zxf /opt/software/apache-flume-1.9.0-bin.tar.gz -C /opt/module/
(2).修改apache-flume-1.9.0-bin的名称为flume-1.9.0 命令:mv /opt/module/apache-flume-1.9.0-bin /opt/module/flume-1.9.0
(3).将lib文件夹下的guava-11.0.2.jar删除以兼容Hadoop 3.1.3 命令:rm /opt/module/flume-1.9.0/lib/guava-11.0.2.jar
2.Flume数据流监控
(1).在101 102 103分别安装epel-release 命令: yum -y install epel-release
(2).在101上安装
yum -y install ganglia-gmetad
yum -y install ganglia-webyum -y install ganglia-gmond
(3).在102 103上安装 命令: yum -y install ganglia-gmond
(4).在101上修改配置文件/etc/httpd/conf.d/ganglia.conf 命令:vim /etc/httpd/conf.d/ganglia.conf# Ganglia monitoring system php web frontend # Alias /ganglia /usr/share/ganglia <Location /ganglia> # Require localRequire all granted# Require ip 10.1.2.3 # Require host example.org </Location>
(5).在101上修改配置文件/etc/ganglia/gmetad.conf 命令:vim /etc/ganglia/gmetad.conf
修改为:
data_source "my cluster" hadoop101
(6).在101 102 103上修改配置文件/etc/ganglia/gmond.conf 命令:vim /etc/ganglia/gmond.conf
修改为:
cluster { name = "my cluster" owner = "unspecified" latlong = "unspecified" url = "unspecified"
}
udp_send_channel { #bind_hostname = yes # Highly recommended, soon to be default. # This option tells gmond to use a source address # that resolves to the machine's hostname.
Without # this, the metrics may appear to come from
any # interface and the DNS names associated with # those IPs will be used to create the RRDs. # mcast_join = 239.2.11.71 # 数据发送给hadoop101 host = hadoop101 port = 8649 ttl = 1
}
udp_recv_channel { # mcast_join = 239.2.11.71 port = 8649 # 接收来自任意连接的数据 bind = 0.0.0.0 retry_bind = true # Size of the UDP buffer. If you are handling lots of metrics you really # should bump it up to e.g. 10MB or even higher. # buffer = 10485760 }
(6).在101上关闭selinux(阿里云不用) 重启生效 命令:vim /etc/selinux/config
(7).启动ganglia
在101 102 103上启动gmond 命令:systemctl start gmond
在101 上启动httpd和gmetad 命令:systemctl start httpd;systemctl start gmetad
(8).打开网页浏览ganglia页面 http://hadoop101/ganglia
注意:如果完成以上操作依然出现权限不足错误,修改/var/lib/ganglia目录的权限:chmod -R 777 /var/lib/ganglia
十一、 安装部署Kafka
1.集群部署
(1).解压到module目录 命令:tar -zxvf kafka_2.11-2.4.1.tgz -C /opt/module/
(2).在/opt/module/kafka_2.11-2.4.1目录下创建logs文件夹 命令:mkdir logs
(3).修改config中配置文件server.properties 命令:vim server.properties
#broker的全局唯一编号,不能重复
broker.id=0
#删除topic功能使能
delete.topic.enable=true
#kafka运行日志存放的路径
log.dirs=/opt/module/kafka_2.11-2.4.1/data
#配置连接Zookeeper集群地址
zookeeper.connect=hadoop101:2181,hadoop102:2181,hadoop103:2181/kafka_2.11-2.4.1
(4).分别配置环境变量并source 命令:vim /etc/profile;source /etc/profile
#KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka_2.11-2.4.1
export PATH=$PATH:$KAFKA_HOME/bin
(5).分发安装包 命令:xsync kafka_2.11-2.4.1/
(6).在hadoop102和hadoop103上修改配置文件/opt/module/kafka_2.11-2.4.1/config/server.properties中的broker.id=1、broker.id=2
2.集群启动停止脚本 命令:vim kf.sh#!/bin/bashcase $1 in
"start"){for i in hadoop101 hadoop102 hadoop103doecho " --------启动 $i Kafka-------"ssh $i "source /etc/profile && /opt/module/kafka_2.11-2.4.1/bin/kafka-server-start.sh -daemon /opt/module/kafka_2.11-2.4.1/config/server.properties"done
};;
"stop"){for i in hadoop101 hadoop102 hadoop103doecho " --------停止 $i Kafka-------"ssh $i "source /etc/profile && /opt/module/kafka_2.11-2.4.1/bin/kafka-server-stop.sh stop"done
};;
esacchmod u+x kf.sh
kf.sh start/stop
十二、 安装部署Hbase
1.启动Zk和Hadoop
2.解压Hbase到module目录 命令:tar -zxvf /opt/software/hbase-2.0.5-bin.tar.gz -C /opt/module
3.修改Hbase配置文件
(1).hbase-env.sh修改内容: 命令:vim hbase-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_211
export HBASE_MANAGES_ZK=false
(2).hbase-site.xml修改内容: 命令:vim hbase-site.xml
<configuration>
<property> <name>hbase.rootdir</name> <value>hdfs://hadoop101:8020/hbase</value>
</property>
<property> <name>hbase.cluster.distributed</name> <value>true</value>
</property> <!-- 0.98后的新变动,之前版本没有.port,默认端口为60000 -->
<property> <name>hbase.master.port</name> <value>16000</value>
</property>
<property> <name>hbase.zookeeper.quorum</name> <value>hadoop101,hadoop102,hadoop103</value>
</property>
<property> <name>hbase.zookeeper.property.dataDir</name> <value>/opt/module/zookeeper-3.5.7/zkData</value>
</property>
</configuration>
(3).regionservers 命令:vim regionservers
hadoop101
hadoop102
hadoop103
4.分发Hbase 命令:xsync hbase-2.0.5/
5.配置三台机的环境变量HBASE_HOME 命令:vim /etc/profile source /etc/profile#HBASE_HOMEexport HBASE_HOME=/opt/module/hbase-2.0.5
export PATH=$PATH:$HBASE_HOME/bin
6.启动集群 命令:bin/start-hbase.sh
http://hadoop101:16010
十三、 安装部署Spark-Yarn
1.解压Spark到module目录 命令:tar -zxvf spark-3.0.0-bin-hadoop3.2.tgz -C /opt/module
2.修改文件夹名字为spark-yarn 命令:mv spark-3.0.0-bin-hadoop3.2 spark-yarn
3.修改Spark配置文件
(1).修改yarn配置文件、分发配置文件 命令:vim /opt/module/hadoop-3.1.3/etc/hadoop/yarn-site.xml / xsync yarn-site.xml
<!--是否启动一个线程检查每个任务正使用的物理内存量,如果任务超出分配值,则直接将其杀掉,默认
是true -->
<property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value>
</property> <!--是否启动一个线程检查每个任务正使用的虚拟内存量,如果任务超出分配值,则直接将其杀掉,默认
是true -->
<property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value>
</property>
(2).修改conf/spark-env.sh 命令:mv spark-env.sh.template spark-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_211
YARN_CONF_DIR=/opt/module/hadoop-3.1.3/etc/hadoop
4.配置历史服务器
(1).修改spark-defaults.conf.template文件名 命令:mv spark-defaults.conf.template spark-defaults.conf
(2).修改spark-default.conf文件,配置日志存储路径(注意:需要启动hadoop集群,HDFS上的目录需要提前存在。)
spark.eventLog.enabled true
spark.eventLog.dir hdfs://hadoop101:8020/directory
(3).修改spark-env.sh文件, 添加日志配置
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.fs.logDirectory=hdfs://hadoop101:8020/directory
-Dspark.history.retainedApplications=30"
(4).修改spark-defaults.conf
spark.yarn.historyServer.address=hadoop101:18080
spark.history.ui.port=18080
(5).启动历史服务 命令:sbin/start-history-server.sh
十四、 安装部署Kylin
(环境变量HADOOP_HOME,HIVE_HOME,HBASE_HOME,SPARK_HOME)
1.解压Kylin到module目录 命令:tar -zxvf apache-kylin-3.0.2-bin.tar.gz -C /opt/module/
2.修改文件夹名字为kylin-3.0.2 命令:mv /opt/module/apache-kylin-3.0.2-bin /opt/module/kylin-3.0.2
3.Kylin兼容性问题(修改/opt/module/kylin-3.0.2/bin/find-spark-dependency.sh,排除冲突的jar包 )
spark_dependency 增加 ! -name '*jackson*' ! -name '*metastore*' (注意前后保留空格 )
4.启动Kylin 命令:bin/kylin.sh start
启动Kylin之前,需先启动Hadoop(hdfs,yarn,jobhistoryserver)、Zookeeper、Hbase
在http://hadoop101:7070/kylin查看Web页面
用户名为:ADMIN,密码为:KYLIN
十五、 安装部署Sqoop
1.解压Sqoop到module目录
命令:tar -zxf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /opt/module/2.修改文件夹名字为sqoop-1.4.6
命令:mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha/ sqoop-1.4.63.进入conf目录修改配置文件
命令:mv sqoop-env-template.sh sqoop-env.sh / vim sqoop-env.sh
增加如下内容:
export HADOOP_COMMON_HOME=/opt/module/hadoop-3.1.3
export HADOOP_MAPRED_HOME=/opt/module/hadoop-3.1.3
export HIVE_HOME=/opt/module/hive-3.1.2
export ZOOKEEPER_HOME=/opt/module/zookeeper-3.5.7
export ZOOCFGDIR=/opt/module/zookeeper-3.5.7/conf
## export HBASE_HOME=/opt/module/hbase-1.3.14.拷贝JDBC驱动到lib目录下
命令:cp mysql-connector-java-5.1.27-bin.jar /opt/module/sqoop-1.4.6/lib/5.验证sqoop
命令:bin/sqoop help
bin/sqoop list-databases --connect jdbc:mysql://hw101:3306/ --username root --password 123456
十六、 安装部署DataX
十七、 安装部署Maxwell
1.解压Maxwell到module目录
命令:tar -zxvf /opt/software/maxwell-1.25.0.tar.gz -C /opt/module/2.初始化Maxwell元数据库
(1)在MySQL中建立一个maxwell库用于存储Maxwell的元数据
CREATE DATABASE maxwell;
(2)分配一个账号可以操作该数据库
GRANT ALL ON maxwell.* TO 'maxwell'@'%' IDENTIFIED BY 'maxwell';
(3)分配这个账号可以监控其他数据库的权限
GRANT SELECT ,REPLICATION SLAVE , REPLICATION CLIENT ON *.* TO maxwell@'%';
3.使用Maxwell监控抓取MySQL数据
mv config.properties.example config.properties
vim config.properties内容:
producer=kafka
kafka.bootstrap.servers=hw101:9092,hw102:9092,hw103:9092 #需要添加 (可以静态配置,也可动态配置 例如:%{database}_%{table})
kafka_topic=ods_base_db_m # mysql login info
host=hw101
user=maxwell
password=maxwell 4.启动maxwell
bin/maxwell --user='maxwell' --password='maxwell' --host='hw101' --producer=kafka --kafka.bootstrap.servers=hw101:9092,hw102:9092,hw103:9092 --kafka_topic=ods_base_db_m
十八、 安装部署Canal
十九、 安装部署Azkaban
1.上传tar包,解压到/opt/module/azkaban-3.84.4目录下并修改名称
tar -zxvf azkaban-db-3.84.4.tar.gz -C /opt/module/azkaban-3.84.4
tar -zxvf azkaban-exec-server-3.84.4.tar.gz -C /opt/module/azkaban-3.84.4
tar -zxvf azkaban-web-server-3.84.4.tar.gz -C /opt/module/azkaban-3.84.4
cd /opt/module/azkaban-3.84.4
mv azkaban-exec-server-3.84.4/ azkaban-exec
mv azkaban-web-server-3.84.4/ azkaban-web
2.配置mysql
1).登录MySQL,创建Azkaban数据库
mysql -uroot -p123456
create database azkaban;
2).创建azkaban用户并赋予权限
CREATE USER 'azkaban'@'%' IDENTIFIED BY '000000';
3).赋予azkaban用户增删改查权限
GRANT SELECT,INSERT,UPDATE,DELETE ON azkaban.* to 'azkaban'@'%' WITH GRANT OPTION;
4).创建azkaban表,完成后退出mysql
use azkaban;
source /opt/module/azkaban-3.84.4/azkaban-db-3.84.4/create-all-sql-3.84.4.sql
quit;
3.配置Executor Server
1).编辑azkaban.properties 命令:vim /opt/module/azkaban-3.84.4/azkaban-exec/conf/azkaban.properties
修改如下标红的属性
default.timezone.id=Asia/Shanghai
azkaban.webserver.url=http://hadoop101:8081
executor.port=12321
database.type=mysql
mysql.port=3306
mysql.host=hadoop101
mysql.database=azkaban
mysql.user=azkaban
mysql.password=000000
mysql.numconnections=100
2).同步azkaban-exec到所有节点 命令:xsync /opt/module/azkaban-3.84.4/azkaban-exec
3).必须进入到/opt/module/azkaban-3.84.4/azkaban-exec路径,分别在三台机器上,启动executor server 命令:bin/start-exec.sh
注意:如果在/opt/module/azkaban/azkaban-exec目录下出现executor.port文件,说明启动成功
4).分别在三台机器上激活executor
命令:curl -G "hadoop101:12321/executor?action=activate" && echo
命令:curl -G "hadoop102:12321/executor?action=activate" && echo
命令:curl -G "hadoop103:12321/executor?action=activate" && echo
出现{"status":"success"}表示激活成功
4.配置Web Server
1).编辑azkaban.properties 命令:vim /opt/module/azkaban-3.84.4/azkaban-web/conf/azkaban.properties
修改如下标红的属性
default.timezone.id=Asia/Shanghai
database.type=mysql
mysql.port=3306
mysql.host=hadoop101
mysql.database=azkaban
mysql.user=azkaban
mysql.password=000000
mysql.numconnections=100
azkaban.executorselector.filters=StaticRemainingFlowSize,CpuStatus#StaticRemainingFlowSize:正在排队的任务数;#CpuStatus:CPU占用情况#MinimumFreeMemory:内存占用情况。测试环境,必须将MinimumFreeMemory删除掉,否则它会认为集群资源不够,不执行。2).修改azkaban-users.xml文件,添加atguigu用户 命令:vim /opt/module/azkaban-3.84.4/azkaban-web/conf/azkaban-users.xml
<azkaban-users><user groups="azkaban" password="azkaban" roles="admin" username="azkaban"/><user password="metrics" roles="metrics" username="metrics"/><user password="atguigu" roles="admin" username="atguigu"/><role name="admin" permissions="ADMIN"/><role name="metrics" permissions="METRICS"/>
</azkaban-users>3).必须进入到hadoop101的/opt/module/azkaban-3.84.4/azkaban-web路径,启动web server 命令:bin/start-web.sh
4.访问http://hadoop101:8081,并用atguigu/atguigu登陆
二十、 安装部署Superset
1.安装Python环境(必须是Python3.7)
1).上传Miniconda包并安装 命令:bash Miniconda3-latest-Linux-x86_64.sh
2).指定安装路径 输入:/opt/module/miniconda3
3).加载环境变量配置文件,使之生效 命令:source ~/.bashrc
4).取消激活base环境 命令:conda config --set auto_activate_base false
2.创建Python3.7环境
1).配置conda国内镜像(base)环境下
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main
conda config --set show_channel_urls yes
2).创建Python3.7环境 命令:conda create --name superset python=3.7
创建环境:conda create -n env_name
查看所有环境:conda info --envs
删除一个环境:conda remove -n env_name --all
3).激活/退出superset环境 命令:conda activate superset / conda deactivate
3.Superset部署(必须在superset环境下执行)
1).安装依赖 命令:yum install -y gcc gcc-c++ libffi-devel python-devel python-pip python-wheel python-setuptools openssl-devel cyrus-sasl-devel openldap-devel
2).安装(更新)setuptools和pip 命令:pip install --upgrade setuptools pip -i https://pypi.douban.com/simple/
3).安装Supetset 命令:pip install apache-superset -i https://pypi.douban.com/simple/如果遇到网络错误导致不能下载,可尝试更换镜像 命令:pip install apache-superset --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple
4).初始化Supetset数据库 命令:superset db upgrade
5).创建管理员用户 命令:export FLASK_APP=superset和superset fab create-admin (atguigu/atguigu)
6).Superset初始化 命令:superset init
4.启动Superset(必须在superset环境下执行)
1).安装gunicorn 命令:pip install gunicorn -i https://pypi.douban.com/simple/
2).gunicorn --workers 5 --timeout 120 --bind hadoop101:8787 "superset.app:create_app()" --daemon
说明:
--workers:指定进程个数
--timeout:worker进程超时时间,超时会自动重启
--bind:绑定本机地址,即为Superset访问地址
--daemon:后台运行
3).登录Superset,访问http://hadoop101:8787(atguigu/atguigu)
5.停止Superset(必须在superset环境下执行)
1).停掉gunicorn进程 命令:ps -ef | awk '/superset/ && !/awk/{print $2}' | xargs kill -9
2).退出superset环境 命令:conda deactivate
6.superset启停脚本 命令:vim superset.sh 和 chmod +x superset.sh
内容如下:#!/bin/bashsuperset_status(){result=`ps -ef | awk '/gunicorn/ && !/awk/{print $2}' | wc -l`if [[ $result -eq 0 ]]; thenreturn 0elsereturn 1fi
}
superset_start(){source ~/.bashrcsuperset_status >/dev/null 2>&1if [[ $? -eq 0 ]]; thenconda activate superset ; gunicorn --workers 5 --timeout 120 --bind hadoop101:8787 --daemon 'superset.app:create_app()'elseecho "superset正在运行"fi}superset_stop(){superset_status >/dev/null 2>&1if [[ $? -eq 0 ]]; thenecho "superset未在运行"elseps -ef | awk '/gunicorn/ && !/awk/{print $2}' | xargs kill -9fi
}case $1 instart )echo "启动Superset"superset_start;;stop )echo "停止Superset"superset_stop;;restart )echo "重启Superset"superset_stopsuperset_start;;status )superset_status >/dev/null 2>&1if [[ $? -eq 0 ]]; thenecho "superset未在运行"elseecho "superset正在运行"fi
esac
二十一、 安装部署Presto
1.Prosto Server 安装
1).将presto-server-0.196.tar.gz导入hadoop101的/opt/software/presto目录下,解压到/opt/module目录并修改名称
命令:tar -zxvf presto-server-0.196.tar.gz -C /opt/module/ 和 mv presto-server-0.196/ presto
2).进入到/opt/module/presto目录,创建存储数据文件夹,创建存储配置文件文件夹 命令:mkdir data / mkdir etc
3).在/opt/module/presto/etc目录下添加jvm.config配置文件 命令:vim jvm.config
添加如下内容
-server
-Xmx16G
-XX:+UseG1GC
-XX:G1HeapRegionSize=32M
-XX:+UseGCOverheadLimit
-XX:+ExplicitGCInvokesConcurrent
-XX:+HeapDumpOnOutOfMemoryError
-XX:+ExitOnOutOfMemoryError
4).Presto可以支持多个数据源,在Presto里面叫catalog,配置一个Hive的catalog 命令:mkdir catalog(在etc目录下)命令:vim hive.properties
添加如下内容
connector.name=hive-hadoop2
hive.metastore.uri=thrift://hadoop101:9083
5).分发presto 命令:xsync presto
6).分别进入三台主机的/opt/module/presto/etc的路径配置node属性,node id每个节点都不一样。命令:vim node.properties
node.environment=production
node.id=ffffffff-ffff-ffff-ffff-ffffffffffff
node.data-dir=/opt/module/presto/datanode.environment=production
node.id=ffffffff-ffff-ffff-ffff-fffffffffffe
node.data-dir=/opt/module/presto/datanode.environment=production
node.id=ffffffff-ffff-ffff-ffff-fffffffffffd
node.data-dir=/opt/module/presto/data
7).Presto是由一个coordinator节点和多个worker节点组成。在hadoop101上配置成coordinator,在hadoop102、hadoop103上配置为worker。
(1)hadoop101上配置coordinator节点 命令:vim config.properties(在etc目录下)
添加内容如下
coordinator=true
node-scheduler.include-coordinator=false
http-server.http.port=8881
query.max-memory=50GB
discovery-server.enabled=true
discovery.uri=http://hadoop101:8881
(2)hadoop102、hadoop103上配置worker节点 命令:vim config.properties(在etc目录下)
添加内容如下
coordinator=false
http-server.http.port=8881
query.max-memory=50GB
discovery.uri=http://hadoop101:8881
8).必须要启动Hive Metastore才能连接hive数据源
9).分别在hadoop101、hadoop102、hadoop103上启动Presto Server 命令:bin/launcher start(start后台启动,run是前台启动)
10).日志查看路径/opt/module/presto/data/var/log
2.Presto命令行Client安装
1).将presto-cli-0.196-executable.jar上传到hadoop101的/opt/module/presto文件夹下
2).修改文件名称 命令:mv presto-cli-0.196-executable.jar prestocli
3).增加执行权限 命令:chmod +x prestocli
4).启动prestocli 命令:./prestocli --server hadoop101:8881 --catalog hive --schema default
3.Presto可视化Client安装
1).将yanagishima-18.0.zip上传到hadoop101的/opt/module目录
2).解压缩yanagishima 命令:unzip yanagishima-18.0.zip
3).进入/opt/module/yanagishima-18.0/conf,编写yanagishima.properties 命令:vim yanagishima.properties
添加如下内容
jetty.port=7080
presto.datasources=atguigu-presto
presto.coordinator.server.atguigu-presto=http://hadoop101:8881
catalog.atguigu-presto=hive
schema.atguigu-presto=default
sql.query.engines=presto
4).在/opt/module/yanagishima-18.0路径下启动yanagishima 命令:nohup bin/yanagishima-start.sh >y.log 2>&1 &
5).启动web页面 http://hadoop101:7080
4.配置Presto使用lzo压缩(ODS层除外)
命令:cp /opt/module/hadoop-3.1.3/share/hadoop/common/hadoop-lzo-0.4.20.jar /opt/module/presto/plugin/hive-hadoop2/
分发后重启
二十二、 安装部署Zabbix
1.配置Zabbix yum源(3台节点)
(1)安装zabbix的yum仓库 命令:rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/5.0/rhel/7/x86_64/zabbix-release-5.0-1.el7.noarch.rpm
(2)安装Software Collections仓库 命令:yum install -y centos-release-scl
(3)修改为阿里云镜像 命令:sed -i 's/http:\/\/repo.zabbix.com/https:\/\/mirrors.aliyun.com\/zabbix/g' /etc/yum.repos.d/zabbix.repo
(4)查看修改之后的zabbix.repo文件 命令:cat /etc/yum.repos.d/zabbix.repo
(5)打开/etc/yum.repos.d/zabbix.repo文件,修改zabbix-frontend的enabled=1
2.安装Zabbix(在三台节点分别执行以下安装命令)
(hadoop101) 命令:yum install -y zabbix-server-mysql zabbix-agent zabbix-web-mysql-scl zabbix-apache-conf-scl
(hadoop102) 命令:yum install -y zabbix-agent
(hadoop103) 命令:yum install -y zabbix-agent
3.配置Zabbix
(1)创建zabbix数据库 命令:mysql -uroot -p123456 -e"create database zabbix character set utf8 collate utf8_bin"
(2)导入Zabbix建表语句 命令:zcat /usr/share/doc/zabbix-server-mysql-5.0.17/create.sql.gz | mysql -uroot -p123456 zabbix
(3)配置Zabbix_Server(hadoop101) 命令:vim /etc/zabbix/zabbix_server.conf
DBHost=hadoop101
DBName=zabbix
DBUser=root
DBPassword=123456
(4)配置Zabbix_Agent(三台节点) 命令:vim /etc/zabbix/zabbix_agentd.conf
Server=hadoop101#ServerActive=127.0.0.1#Hostname=Zabbix server(5)配置Zabbix_Web时区(hadoop101) 命令:vim /etc/opt/rh/rh-php72/php-fpm.d/zabbix.conf
php_value[date.timezone] = Asia/Shanghai
4.启动停止Zabbix
启动
systemctl start zabbix-server zabbix-agent httpd rh-php72-php-fpm(hadoop101)
systemctl enable zabbix-server zabbix-agent httpd rh-php72-php-fpm(hadoop101)
systemctl start zabbix-agent
systemctl enable zabbix-agent
systemctl start zabbix-agent
systemctl enable zabbix-agent
停止
systemctl stop zabbix-server zabbix-agent httpd rh-php72-php-fpm(hadoop101)
systemctl disable zabbix-server zabbix-agent httpd rh-php72-php-fpm(hadoop101)
systemctl stop zabbix-agent
systemctl disable zabbix-agent
systemctl stop zabbix-agent
sudo systemctl disable zabbix-agent
5.浏览器访问http://hadoop101/zabbix/ 用户名:Admin 密码:zabbix
二十三、 安装部署streamx
tar -zxvf streamx-console-service-1.2.2-bin.tar.gz -C /opt/module
CREATE DATABASE `streamx` CHARACTER SET utf8 COLLATE utf8_general_ci;
use streamx;
source /opt/module/streamx-console-service-1.2.2/script/final.sqlvim /opt/module/streamx-console-service-1.2.2/conf/application.yml # 在第二行,默认端口为10000,可以根据其余服务使用情况来配置端口
server:port: 10001... # 配置默认数据源 primary: primarydatasource: # 数据源-1,名称为 primary primary: username: root password: 123456 driver-class-name: com.mysql.cj.jdbc.Driver url:jdbc:mysql://hw101:3306/streamx?useUnicode=true&characterEncoding=UTF-8&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8
... streamx: # HADOOP_USER_NAME hadoop-user-name: pixy2 # 本地的工作空间,用于存放项目源码,构建的目录等. workspace: local: /opt/module/streamx_workspace /opt/module/streamx-console-service-1.2.2/bin/startup.sh 默认用户名:admin
默认密码:streamx
二十一、 安装部署atlas