大数据组件安装步骤,Atlas本地编译以及生产环境部署

Atlas 元数据管理

概述

为组织提供开放式元数据管理和治理功能,用以构建其数据资产目录,对这些资产进行分类管理,形成数据字典。

通过atlas可以清晰的看到表与表的来龙去脉,以及字段与字段之间的关系等

一、Atlas 本地编译构建

1、下载源码

https://atlas.apache.org/#/Downloads (选择不同版本下载source源码,本次是2.2.0最新稳定版本)

2、编译源码

1、配置maven内存设置环境变量,否则在编译webapp模块时因内存超出而报错
MAVEN_OPTS=-Xms512m -Xmx1024m

2、在 主pom:apache-atlas(root)文件中: 如果这地方报错,则修改
 <requireMavenVersion>
<version>3.8.4</version>  #指定具体的版本
 </requireMavenVersion>
<requireJavaVersion>
<level>ERROR</level>
<version>1.8.0_45</version>  #指定具体的版本
</requireJavaVersion>
<requireJavaVersion>
<level>WARN</level>
<version>1.8.0_45</version>   #指定具体的版本

3、编译stom-bridge 和storm-bridge-shim模块的时候可能因为需要引用外部的资源而下载不过来,可以关掉不加载,这个是编译数据源模块可以跳过,不影响服务的正常执行。同时在其他地方引用的位置要注掉:
对于atlas-distro.pom
<!--    <dependencies>-->
<!--        <dependency>-->
<!--            <groupId>org.apache.atlas</groupId>-->
<!--            <artifactId>storm-bridge</artifactId>-->
<!--        </dependency>-->
<!--    </dependencies>-->
以及
<artifactId>maven-assembly-plugin</artifactId>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <phase>package</phase>
                                <configuration>
                                    <skipAssembly>false</skipAssembly>
                                    <descriptors>
                                       
<!--<descriptor>src/main/assemblies/atlas-storm-hook-package.xml</descriptor>-->
对于apache.atlas.pom
<!--        <module>addons/storm-bridge-shim</module>-->
<!--        <module>addons/storm-bridge</module>-->
以及
<!--            <dependency>-->
<!--                <groupId>org.apache.atlas</groupId>-->
<!--                <artifactId>storm-bridge</artifactId>-->
<!--                <version>${project.version}</version>-->
<!--            </dependency>-->
以及
<!--            <dependency>-->
<!--                <groupId>org.apache.atlas</groupId>-->
<!--                <artifactId>storm-bridge-shim</artifactId>-->
<!--                <version>${project.version}</version>-->
<!--            </dependency>-->

最后执行编译命令:
不使用内嵌模式编译(hbase和solr使用外部,本次编译使用外部方式)
mvn clean -DskipTests package -Pdist
使用内嵌hbase和solr模式编译:mvn clean -DskipTests package -Pdist,embedded-hbase-solr
注:1.内嵌模式会从apache官网apache下载hbase和solr,如果网络比较慢,可以将对应版本的安装包直接放到对应目录下
   2.使用内嵌模式可能会因为windows下无法启动hadoop,导致无法启动hbase,最后服务启动失败

3、开发环境下Atlas配置

编译成功之后,会将编译生成的文件放到\apache-atlas-sources-2.2.0\distro 目录下
=任意位置新建目录:如D:\ext.wangwentao5\all_paojects\atlas-deploy2
在这个目录下新建目录结构如下:
conf
data
hbase
logs
model
solr
webapp

然后:
将\apache-atlas-sources-2.2.0\distro\target\conf 下的文件全部复制到atlas-deploy2\conf中

将\apache-atlas-sources-2.2.0\distro\src\server\webapp下的atlas文件整体复制到\atlas-deploy2\webapp下
配置Atlas:
注:由于windows环境下安装部署大数据组件Hadoop、Hbase等有诸多限制,所以使用外部hbase和solr的方式,在linux平台启动这些组件

在源码中apache-atlas-sources-2.2.0\distro\src\conf 和自建文件夹\atlas-deploy2\conf中均进行一样的修改:
修改atlas-application.properties  
(注:192.168.182.10:2181,192.168.182.20:2181,192.168.182.30:2181为外部虚拟机中的zookeeper地址)
-1-
atlas.graph.storage.hostname=192.168.182.10:2181,192.168.182.20:2181,192.168.182.30:2181
-2-
atlas.graph.index.search.solr.zookeeper-url=192.168.182.10:2181,192.168.182.20:2181,192.168.182.30:2181
-3-
atlas.kafka.data=/opt/apps/kafka_2.11-2.4.1/data  ##linux中的Kafka数据存储路径
atlas.kafka.zookeeper.connect=192.168.182.10:2181,192.168.182.20:2181,192.168.182.30:2181/kafka
atlas.kafka.bootstrap.servers=192.168.182.10:9092,192.168.182.20:9092,192.168.182.30:9092
-4-端口21000
atlas.server.http.port=21000
-5-ip地址
atlas.rest.address=http://localhost:21000
-6-关闭每次开启是初始化atlas
atlas.server.run.setup.on.start=false
-7-hbase元数据对应的zk地址
atlas.audit.hbase.zookeeper.quorum=192.168.182.10:2181,192.168.182.20:2181,192.168.182.30:2181


修改atlas-env.sh
export MANAGE_LOCAL_HBASE=false  ##关闭内嵌hbase模式
export MANAGE_LOCAL_SOLR=false   ##关闭内嵌solr模式
export MANAGE_EMBEDDED_CASSANDRA=false  ##指示 cassandra 是否是 Atlas 的嵌入式后端
export MANAGE_LOCAL_ELASTICSEARCH=false ##指示是否应该为 Atlas 启动 Elasticsearch 的本地实例
export HBASE_CONF_DIR=/opt/apps/hbase-2.0.5/conf  ##linux中hbase的conf地址

4、启动Atlas所需组件

注:要提前在机器中安装配置好所需组件。包括CentOS环境、jdk、hadoop、mysql、zookeeper、kafka、hbase 、solr..

均是集群模式启动:
启动 hadoop
启动yarn
启动zk
启动kafka
启动hbase
启动solr
查看端口验证服务是否全都正常开启:
=============== linux01 ===============
27842 NameNode
30035 HRegionServer
28646 NodeManager
29115 QuorumPeerMain
29531 Kafka
29851 HMaster
28510 ResourceManager
30591 jar
=============== linux02 ===============
12321 HRegionServer
12165 Kafka
11766 QuorumPeerMain
12679 jar
11080 SecondaryNameNode
11003 DataNode
11435 NodeManager
=============== linux03 ===============
5008 NodeManager
4833 DataNode
5601 Kafka
5766 HRegionServer
5209 QuorumPeerMain
6124 jar

5、本地源码启动Atlas

服务驱动类:webapp模块下:org.apache.atlas.Atlas
配置VM参数:
-Datlas.home=D:\ext.wangwentao5\all_paojects\atlas-deploy2
-Datlas.conf=D:\ext.wangwentao5\all_paojects\atlas-deploy2\conf
-Datlas.data=D:\ext.wangwentao5\all_paojects\atlas-deploy2\data
-Datlas.log.dir=D:\ext.wangwentao5\all_paojects\atlas-deploy2\logs
-Dlog4j.configuration=atlas-log4j.xml
-Djava.net.preferIPv4Stack=true
配置args参数:
--app
D:\ext.wangwentao5\all_paojects\atlas-deploy2\webapp\atlas

启动驱动服务类...................

web页面访问:localhost:21000
账号密码都是admin

至此开发环境部署完毕....................

二、架构概述

请添加图片描述

atlas 核心架构有三大模块:
导入导出元数据信息:导入指将其他的数据源的元数据导入到Atlas;导出指将atlas中的元数据导出到hbase,atlas本身不存储数据。导入的时候是增量导入,依赖kafka做消息队列。
所以使用atlas要依赖:hbase、zookeeper、hadoop、kafka、hive等

分类系统:针对不同的元数据源,以及同一数据源下的不同库表等做分类

图引擎:用于生成血缘关系图等。需要通过janusGraph将图数据转换后存入到Hbase中

solr是构建全局索引工具![Snipaste_2022-05-24_18-30-25]

请添加图片描述

基于Atlas的底层架构的复杂性,依赖于很多框架,所以在搭建Atlas之前需要安装以下环境:Hadoop、Yarn、ZK、Kafka、hbase、solr、hive、mysql

2.2 数据分类

交易数据:用于记录业务实践,如订单、投诉记录等
主数据:定义企业核心业务对象:客户信息、地址、产品等 这些数据不经常变化,但也需要经常维护,以保证准确性
元数据:数据的数据

三、安装组件

1、虚拟机安装

1、配置虚拟机之间的免密传输ssh
linux01持有着私钥,将公钥匙广发linux02,则之后在linux01中就可以登录linux02了
生成一对密钥:ssh-keygen (一直回车就行)
将密钥发送给三台机器,包括自己
ssh-copy-id linux01
ssh-copy-id linux02
ssh-copy-id linux03

2、在使用secureCRT进行远程连接
如果注册工具keygen.exe一直被当作病毒清除,则可以在安全中心的病毒威胁防护中将其恢复
搞好之后可能需要重启电脑

1、jdk安装

检查是否已安装jdk
rpm -qa | grep -i java
卸载自带的jdk
rpm -qa | grep -i java | xargs -n1 sudo rpm -e --nodeps
(显示rpm: no packages given for erase 则表名为安装jdk)
配置环境变量
vi /etc/profile.d/my_env.sh
#java_home
export JAVA_HOME=/opt/apps/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
检查jdk是否安装好
java -version
看到java version "1.8.0_212"即安装好

分发到其他机器:
[root@linux01 apps]# scp -r  jdk1.8.0_212/ linux03:$PWD
记得环境变量文件也要在其他机器配置

2、hadoop安装

core-site.xml
<configuration>
<!-- 指定默认的文件系统 -->
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://linux01:8020</value>
        </property>
<!-- hadoop数据的存储目录 -->
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/opt/apps/hadoop-3.1.3/data</value>
        </property>
<!-- 针对hiveserver2连接不上的配置 -->

<property>     
        <name>hadoop.proxyuser.root.hosts</name>     
        <value>*</value>
 </property> 
<property>     
        <name>hadoop.proxyuser.root.groups</name>    
    <value>*</value> 
</property>
<property>     
        <name>hadoop.proxyuser.zhaoshb.hosts</name>     
        <value>*</value> 
</property> 
<property>     
        <name>hadoop.proxyuser.zhaoshb.groups</name>     
        <value>*</value> 
</property>
<!-- 针对hiveserver2连接不上的配置  -->
</configuration>

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
hdfs-site.xml
<configuration>
!-- 集群的namenode的位置  datanode能通过这个地址注册-->
<property>
     <name>dfs.namenode.rpc-address</name>
     <value>linux01:8020</value>
</property>
 <!-- namenode存储元数据的位置 -->
<property>
     <name>dfs.namenode.name.dir</name>
     <value>/opt/hdpdata/name</value>
</property>
 <!-- datanode存储数据的位置 -->
<property>
     <name>dfs.datanode.data.dir</name>
     <value>/opt/hdpdata/data</value>
</property>
 <!-- secondary namenode机器的位置-->
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>linux02:50090</value>
</property>
</configuration>
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
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>linux01</value> 
</property>

<!--  环境变量的继承 -->
<property>     
    <name>yarn.odemanager.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.mimimum-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>

<!-- 关闭对物理内存和虚拟内存的限制检查  -->
<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>
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
mapred-site.xml
<configuration>
<!-- 指定MR程序运行在yarn上  -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
</configuration>
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
workers 
删掉localhost 加入节点信息
linux01
linux02
linux03
要求 上下无空行,左右无无空格
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
添加历史服务器配置
mapred-site.xml
<!-- 历史服务器地址  -->
<property>     
    <name>mapreduce.jobhistory.address</name>    
    <value>linux02:10020</value> 
</property>
<!-- 历史服务器web地址  -->
<property>     
    <name>mapreduce.jobhistory.webapp.address</name>    
    <value>linux02: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://linux02:19888/jobhistory/logs</value> 
</property>
<!--  设置日志保留时间一周 -->
<property>     
    <name>yarn.log-aggregation.retain-seconds</name>    
    <value>604800</value> 
</property>
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
修改 sbin/start-yarn.sh 和 stop-yarn.sh
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

sbin/start-dfs.sh 和 stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
配置:
-1- /etc/hadoop/hadoop-env.sh
export  JAVA_HOME=/opt/apps/jdk1.8.0_212


-2- /etc/hadoop/hdfs-site.xml
<!-- 集群的namenode的位置  datanode能通过这个地址注册-->
<property>
     <name>dfs.namenode.rpc-address</name>
     <value>linux01:8020</value>
</property>
 <!-- namenode存储元数据的位置 -->
<property>
     <name>dfs.namenode.name.dir</name>
     <value>/opt/hdpdata/name</value>
</property>
 <!-- datanode存储数据的位置 -->
<property>
     <name>dfs.datanode.data.dir</name>
     <value>/opt/hdpdata/data</value>
</property>
 <!-- secondary namenode机器的位置-->
<property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>linux02:50090</value>
</property>


分发

在namenode节点上进行初始化
/bin/hadoop namenode -format

单节点启动:
先启动namenode 在启动datanode
sbin/hadoop-daemon.sh start namenode

http://linux01:9870 可以访问web页面

再启动datanode
sbin/hadoop-daemon.sh start datanode

访问web页面可以看到datanode和namenode

一键启动集群:
配置workers节点信息
在linux01上
vi /opt/apps/hadoop-3.1.3/etc/hadoop/workers
linux01
linux02
linux03

配置启动停止脚本:
vi /opt/apps/hadoop-3.1.3/sbin/start-dfs.sh
HDFS_DATANODE_USER=root
HDFS_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

vi /opt/apps/hadoop-3.1.3/sbin/stop-dfs.sh
HDFS_DATANODE_USER=root
HDFS_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root


hadoop的启动

start-dfs.sh
start-yarn.sh
linux02机器上直接执行:mapred --daemon start historyserver
查看web端口
hadoop:linux01:9870
secondnamenode:linux02:50090/
yarn:http://linux01:8088/
历史服务器:linux02:19888

3、mysql的安装

单节点安装
检测是否已安装mysql:
[root@linux01 hadoop]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
有的话卸载掉
sudo rpm -e --nodeps mariadb-libs
执行之后:再次检查rpm -qa|grep mariadb 没有即为卸载成功

解压安装包
按照顺序进行解压安装
sudo rpm -ivh mysql-community-common-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-libs-compat-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-client-5.7.28-1.el7.x86_64.rpm
sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm
安装server的时候报错:
sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm报错
1、yum install -y libaio 执行之后再安装server
2、sudo rpm -ivh mysql-community-server-5.7.28-1.el7.x86_64.rpm --force --nodeps执行这个
检查残留:
ll /var/lib/mysql是空目录即可初始化mysql
初始化mysql:
mysqld --initialize --user=mysql
查看临时密码:
cat /var/log/mysqld.log
3GmN8qpqrD-j
启动mysql服务:
systemctl start mysqld
检测是否正常运行:
systemctl status mysqld
显示Active: active (running) 
进行登录:
mysql -uroot -p
输入临时密码
登陆后改密码:
set password=password("123456")
修改mysql库下的user表的root用户允许任意ip连接,使得navicat也可以连接mysql
update mysql.user. set host='%' where user='root';
刷新
flush privileges;
退出使用新密码进行登录即可。

4、hive安装

单节点安装
上传安装包--解压--配置环境变量
#hive_home
export HIVE_HOME=/opt/apps/hive-3.1.2
export PATH=$PATH:$HIVE_HOM/bin
source /etc/profile
hive的元数据配置:
1-将mysql的连接驱动放到hive的lib中 hive-site.xml
2-配置hive-site.xml
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!-- 记录hive中的元数据信息  记录在mysql中的hive库中 -->
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://linux01:3306/metstore?createDatabaseIfNotExist=true&amp;useSSL=false</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<!-- mysql的用户名和密码 -->
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>123456</value>
</property>
<property>
<name>hive.metestore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
</property>
<property>
<name>hive.exec.scratchdir</name>
<value>/user/hive/tmp</value>
</property>
<property>
<name>hive.querylog.location</name>
<value>/user/hive/log</value>
</property>
<!-- 客户端远程连接的端口 -->
<property> 
<name>hive.server2.thrift.port</name> 
<value>10000</value>
</property>
<property> 
<name>hive.server2.thrift.bind.host</name> 
<value>linux01</value>
</property>
<property>
<name>hive.server2.webui.host</name>
<value>0.0.0.0</value>
</property>
<!-- hive服务的页面的端口 -->
<property>
<name>hive.server2.webui.port</name>
<value>10002</value>
</property>
<property> 
<name>hive.server2.long.polling.timeout</name> 
<value>5000</value>                               
</property>
<property>
<name>hive.server2.enable.doAs</name>
<value>true</value>
</property>
<property>
<name>datanucleus.autoCreateSchema</name>
<value>false</value>
</property>
<property>
<name>datanucleus.fixedDatastore</name>
<value>true</value>
</property>
<property>
<name>hive.execution.engine</name>
<value>mr</value>
</property>
<!-- 添加元数据服务配置 -->
<property>
     <name>hive.metastore.local</name>
     <value>false</value>
     <description>controls whether to connect to remove metastore server or open a new metastore server in Hive Client JVM</description>
</property>
<property>
    <name>hive.metastore.uris</name>
     <value>thrift://linux01:9083</value>
</property>
</configuration>
conf目录下:
修改 hive-env.sh
export HADOOP_HEAPSIZE=1024 放开这个设置堆内存参数设置
修改hive-log4j2.properties
property.hive.log.dir = /opt/apps/hive-3.1.2/logs

初始化元数据库:
[root@linux01 bin]# ./schematool -initSchema -dbType mysql -verbose

启动hive:
开启元数据服务:
hive --service metastore &
进入hive客户端:
hive

-----如果想使用hiveserver2客户端
-1-在hive/conf hive-site.xml中配置:
<!-- 客户端远程连接的端口 -->
<property> 
<name>hive.server2.thrift.port</name> 
<value>10000</value>
</property>
<property> 
<name>hive.server2.thrift.bind.host</name> 
<value>192.168.182.10</value>  ##ip地址
</property>
<property>
<name>hive.server2.webui.host</name>
<value>0.0.0.0</value>
</property>

-2-在/opt/apps/hadoop-3.1.3/etc/hadoop/core-site.xml 中进行配置,并且分发到集群中的其他节点
<!-- 针对hiveserver2连接不上的配置 -->
<property>     
        <name>hadoop.proxyuser.root.hosts</name>     
        <value>*</value>
 </property> 
<property>     
        <name>hadoop.proxyuser.root.groups</name>    
    <value>*</value> 
</property>
<property>     
        <name>hadoop.proxyuser.zhaoshb.hosts</name>     
        <value>*</value> 
</property> 
<property>     
        <name>hadoop.proxyuser.zhaoshb.groups</name>     
        <value>*</value> 
</property>
-3-最后启动hiveserver2
hive --service metastore &  #可以看到 9083端口
hiveserver2 &               #可以看到10000端口
beeline
beeline> !connect jdbc:hive2://linux01:10000
最后成功结果展示: jdbc:hive2://linux01:10000> show schema test1; 可以正常的进行hive操作

《执行insert语句报错,不妨设置 set hive.exec.mode.local.auto=true;》
如果执行join 语句失败报错137 :是因为内存不够,执行set hive.auto.convert.join= false;

5、zookeeper安装:

集群模式安装:leader 和 follower
-1-设置节点在zk中的id
mkdir /opt/apps/zookeeper-3.5.7/zkData
vi myid
输入1
-2-修改配置
/opt/apps/zookeeper-3.5.7/conf
mv zoo_sample.cfg zoo.cfg
/opt/apps/zookeeper-3.5.7/conf/zoo.cfg下
dataDir=/opt/apps/zookeeper-3.5.7/zkData 
############################cluster#########################
server.1=linux01:2888:3888
server.2=linux02:2888:3888
server.3=linux03:2888:3888
##2888是leader的端口号,万一leader挂了,新的leader用3888端口号
分发到另外两台节点:
scp -r zookeeper-3.5.7 linux03:$PWD
然后在另外两台节点中,将zkdata/myid 中的id改为2 和 3
zk启动:
写了启动脚本,一键启动zk.sh start / zk.sh stop  / zk.sh status(记得更改为自己的机器):
#!/bin/bash
if [ $# -lt 1 ]
then
    echo "No Args Input..."
    exit ;
fi

case $1 in
"start")
        for i in linux01 linux02 linux03
    do
        echo "=====================  $i  ======================="
        ssh $i "source /etc/profile && /opt/apps/zookeeper-3.5.7/bin/zkServer.sh start"
    done
;;
"stop")
        for i in linux01 linux02 linux03
    do
        echo "=====================  $i  ======================="
        ssh $i "source /etc/profile && /opt/apps/zookeeper-3.5.7/bin/zkServer.sh stop"
    done
;;
"status")
        for i in linux01 linux02 linux03
    do
        echo "=====================  $i  ======================="
        ssh $i "source /etc/profile && /opt/apps/zookeeper-3.5.7/bin/zkServer.sh status"
    done
;;
*)
    echo "Input Args Error..."
;;
esac

6、kafka安装

集群安装
上传-解压-配置-分发

mkdir logs
配置config/server.properties
broker.id=1
delete.topic.enable=true
log.dirs=/opt/apps/kafka_2.11-2.4.1/data   ##kafka中topic的数据存储路径
zookeeper.connect=linux01:2181,linux02:2181,linux03:2181/kafka  #3设置zk的路径,kafka的元数据在zk中的位置

分发:
[root@linux01 apps]# scp -r kafka_2.11-2.4.1/ linux03:$PWD
分发之后一定要修改server.properties下的broker.id改为不重复的id
/opt/apps/kafka_2.11-2.4.1/config

注意:重要
由于zookeeper指定的地址后面加了/kafka.所以后面需要zk的地方都要加上 /kafka
zookeeper.connect=linux01:2181,linux02:2181,linux03:2181/kafka
kafka-topics.sh --create -topic test1 --replication-factor 1 --partitions 3 --zookeeper linux01:2181/kafka

7、hbase安装

集群式搭建
前提:开启zk和hadoop
上传-解压-配置-分发
配置环境变量
修改配置:
/opt/apps/hbase-2.0.5/conf/hbase-env.sh
 export HBASE_MANAGES_ZK=false  #不然hbase来管理zk,使用外部zk
 
 /opt/apps/hbase-2.0.5/conf/hbase-site.xml
 <property>     
        <name>hbase.rootdir</name>     
        <value>hdfs://linux01:8020</value>
 </property> 
  <property>     
        <name>hbase.cluster.distributed</name>
        <value>true</value>
 </property> 
  <property>     
        <name>hbase.zookeeper.quorum</name>     
        <value>linux01,linux02,linux03</value>
 </property> 
 
vi regionservers
linux01
linux02
linux03


改完之后就可以分发了
hbase的启动:
一键启动  start-hbase.sh
验证:
[root@linux01 hbase-2.0.5]# jps
13872 QuorumPeerMain
13386 NameNode
16506 Jps
15627 HMaster
16300 Main
15806 HRegionServer
可以看到HRegionServer  HMaster

进去客户端:
hbase shell
(list_namespace  查看名称空间命令)

9、solr安装

为了安全,创建新用户solr,使用solr用户来安装启动solr
创建用户solr:sudo useradd solr
给用户solr设置密码solr:echo solr | sudo passwd --stdin solr
上传-解压
修改solr组件的用户为solr
sudo chown -R solr:solr /opt/apps/solr-7.7.3/
集群安装:修改配置-最后分发
bin/solr.in.sh
ZK_HOST="linux01:2181,linux02:2181,linux03:2181"
分发之后修改用户:sudo chown -R solr:solr /opt/apps/solr-7.7.3/

启动:
以solr用户启动solr  。每个节点都要启动
sudo -i -u solr /opt/apps/solr-7.7.3/bin/solr start
启动成功验证:
出现:  Started Solr server on port 8983 (pid=20045). Happy searching!
网页端口 8983

10、atlas安装

atlas编译后,会有很多的安装包,其中带hook的是与其他组件进行整合的连接包
找到server包进行解压安装

四、Atlas配置

4.1 atlas—Hbase

atlas中的数据存储在hbase中
修改conf/atlas-application.properties
将图片信息元数据存在hbase中,而hbase的元数据是放在zk中的
atlas.graph.storage.hostname=linux01:2181,linux02:2181,linux03:2181
vi conf/atlas-env.sh
export HBASE_CONF_DIR=/opt/apps/hbase-2.0.5/conf

4.2atlas—solr

solr存储atlas的图数据信息,比如血缘图
修改conf/atlas-application.properties   让atlas能找到solr的元数据
atlas.graph.index.search.solr.zookeeper-url=linux01:2181,linux02:2181,linux03:2181

atlas会将索引文件图数据信息存到solr
在solr中创建三个collection
创建vertex_index 三个分片 两个副本 点索引
sudo -i -u solr /opt/apps/solr-7.7.3/bin/solr create -c vertex_index -d /opt/apps/atlas-2.1.0/conf/solr -shards 3 -replicationFactor 2
创建edge_index 线索引
sudo -i -u solr /opt/apps/solr-7.7.3/bin/solr create -c edge_index -d /opt/apps/atlas-2.1.0/conf/solr -shards 3 -replicationFactor 2
创建fulltext_index 全局索引
sudo -i -u solr /opt/apps/solr-7.7.3/bin/solr create -c fulltext_index -d /opt/apps/atlas-2.1.0/conf/solr -shards 3 -replicationFactor 2

4.3 atlas—kafka

增量式数据同步需要kafka做为消息中间件
修改conf/atlas-application.properties 
atlas.notification.embedded=false
 #kafka的数据存储路径
atlas.kafka.data=/opt/apps/kafka_2.11-2.4.1/data  
#kafka的zk连接地址
atlas.kafka.zookeeper.connect=linux01:2181,linux02:2181,linux03:2181/kafka
#kafka的连接地址
atlas.kafka.bootstrap.servers=linux01:9092,linux02:9092,linux03:9092 

4.4atlas—server

修改conf/atlas-application.properties
改atlas的ip
atlas.rest.address=http://linux01:21000
取消每次开启初始化
atlas.server.run.setup.on.start=false
改zk地址
atlas.audit.hbase.zookeeper.quorum=linux01:2181,linux02:2181,linux03:2181

记录性能指标,修改conf/atlas-log4j.xml
打开这一段的注释:
<appender name="perf_appender" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="file" value="${atlas.log.dir}/atlas_perf.log" />
        <param name="datePattern" value="'.'yyyy-MM-dd" />
        <param name="append" value="true" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d|%t|%m%n" />
        </layout>
    </appender>

    <logger name="org.apache.atlas.perf" additivity="false">
        <level value="debug" />
        <appender-ref ref="perf_appender" />
    </logger>

五、Atlas配置Hive Hook

5.1 atlas集成配置hive hook

修改/opt/apps/atlas-2.1.0/conf/atlas-application.properties
添加如下信息:
#########  Hive Hook Configs  ########
atlas.hook.hive.syschronous=false
atlas.hook.hive.numRetries=3
atlas.hook.hive.queueSize=10000
atlas.cluster.name=primary

修改/opt/apps/hive-3.1.2/conf/hive-site.xml  配置 Hive Hook
添加如下信息:
<property>
<name>hive.exec.post.hooks</name>
<value>org.apache.atlas.hive.hook.HiveHook</value>
</property>
安装 hive hook
解压:在/opt/apps/software下
tar -zxvf apache-atlas-2.1.0-hive-hook.tar.gz 
进到apache-atlas-2.1.0-hive-hook.里面,将两个文件 hook 和 hook-bin 复制到atlas的安装目录下
scp -r ./* /opt/apps/atlas-2.1.0/

修改vi /opt/apps/hive-3.1.2/conf/hive-env.sh   使得hive可以找到atlas1的hook程序
export HIVE_AUX_JARS_PATH=/opt/apps/atlas-2.1.0/hook/hive

将/opt/apps/atlas-2.1.0/conf/atlas-application.properties 复制到 /opt/apps/hive-3.1.2/conf/
scp /opt/apps/atlas-2.1.0/conf/atlas-application.properties  /opt/apps/hive-3.1.2/conf/   

完成。。。

六、Atlas的启动使用

6.1 启动

启动 hadoop
start-dfs.sh
start-yarn.sh

启动zk
zk.sh start

启动kafka
kf.sh start

启动hbase
start-hbase.sh

启动solr
在所有节点执行:
sudo -i -u solr /opt/apps/solr-7.7.3/bin/solr start


上述都启动之后可以查看进程:
=============== linux01 ===============
27842 NameNode
30035 HRegionServer
28646 NodeManager
29115 QuorumPeerMain
29531 Kafka
29851 HMaster
28510 ResourceManager
30591 jar
=============== linux02 ===============
12321 HRegionServer
12165 Kafka
11766 QuorumPeerMain
12679 jar
11080 SecondaryNameNode
11003 DataNode
11435 NodeManager
=============== linux03 ===============
5008 NodeManager
4833 DataNode
5601 Kafka
5766 HRegionServer
5209 QuorumPeerMain
6124 jar

最后才可以启动atlas 在linux01节点
/opt/apps/atlas-2.1.0/bin/atlas_start.py 
启动会比较慢 会一直打印..........
直到看到Apache Atlas Server started!!! 则atlas成功启动
显示成功后还要再等待一会,web才可以访问

atlas启动的报错信息在:atlas/logs  以及 application.log中查看
停止为 atlas_stop.py 

访问atlas的webui:
linux01:21000 
账户密码都是 admin

登录成功后界面

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qYrKgivu-1657694533342)(D:\ext.wangwentao5\Desktop\data\atlas\img\Snipaste_2022-06-01_18-15-35.png)]

6.2 同步hive元数据

执行hook-bin中的元数据导入脚本:
/opt/apps/atlas-2.1.0/hook-bin/import-hive.sh
输入用户名密码
看到:Hive Meta Data imported successfully!!!  则导入成功

请添加图片描述

之后,便不再需要初始同步数据,atlas会自动做元数据同步功能,经过kafka作为消息中间件,每当hive的元数据发生变化时就会将其同步到atlas中。

6.3添加用户

/opt/apps/atlas-2.1.0/conf/users-credentials.properties
#username=group::sha256-password
admin=ADMIN::a4a88c0872bf652bb9ed803ece5fd6e82354838a9bf59ab4babb1dab322154e1
wwt=ADMIN::wwt的sha256加密后的暗码
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值