当前位置: 首页 > news >正文

Atlas 元数据管理

Atlas 元数据管理

1.Atlas入门

1.1概述

元数据原理和治理功能,用以构建数据资产的目录。对这个资产进行分类和管理,形成数据字典。

提供围绕数据资产的协作功能。

表和表之间的血缘依赖

字段和字段之间的血缘依赖

1.2架构图

导入和导出:

  • 是针对元数据的导入和导出的

  • 数据的导入和导出需要借助kafka

Metadata Source:元数据

下面以hive为例导入我们的数据。

Zookerper

hive

hadoop

kafka

atlas

安装部署是比较复杂的!

数据分类

Type System

图引擎

表和表的血缘

字段和字段的血缘

Hbase,底层是KV结构的。直接用Hbase存储是不行的。

图结构,多个点多个线。图数据库,底层用的是Graph Engine

solr和es是差不多的,可以搜索数据的,可以查询元数据。

可以对接别的系统

 

1.3Atlas2.0特性

使用hadoop3.0

Hive3.0 3.1

Hbase2.0

Solr7.5

Kafka2.0

1.4安装规划

1)Atlas 官网地址:Apache Atlas – Data Governance and Metadata framework for Hadoop

2)文档查看地址:Apache Atlas – Data Governance and Metadata framework for Hadoop

3)下载地址:Apache Downloads

1.5安装环境

自带Hbase和Solr,可以使用外部的Hbas和Solr。

Hadoop的组件:

  • HDFS

  • Yarn

  • HistoryServer

Zookeeper:存储元数据的

  • Kafka

  • HBase

  • Solr

Hive:给Atlas提供数据的

MySQL:提供Hive的数据存储的

Atlas:以上全部的启动完成之后才能启动Altlas

1.6复制四个虚拟机

修改主机ip
vim  /etc/sysconfig/network-scripts/ifcfg-ens33改主机名
vim /etc/hostnamereboot重启

连接xshell

修改Windows的文件

192.168.6.100   hadoop100
192.168.6.101   hadoop101
192.168.6.102   hadoop102
192.168.6.103   hadoop103
192.168.6.104   hadoop104
192.168.6.105   hadoop105
192.168.6.106   hadoop106
192.168.6.107   hadoop107
192.168.6.108   hadoop108
192.168.6.109   hadoop109
192.168.6.200   gitlab-server

将下面的文件全部导入到虚拟机中。

全部传递到/opt/software文件夹下。

当出现连接不上的情况就进行重启网络管理器

[root@node01 ~]# systemctl stop NetworkManager
[root@node01 ~]# systemctl disable NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
[root@node01 ~]# service network restart

2.环境安装

2.1安装jdk

102中安装jdk

删除系统自带的Java
rpm -qa |grep -i java | xargs -n1 sudo rpm -e --nodeps解压jdk
tar -zxvf jdk-8u212-linux-x64.tar.gz  -C /opt/module/配置环境变量cd /etc/profile.d/创建一个自己的环境变量
sudo vim my_env.sh输入下面的环境变量
export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin使我们的环境变量生效
> 会自动地遍历profile下的sh为结尾的文件
source /etc/profile

查看Java的环境变量

2.2配置免密登录

.ssh目录下执行下面的语句
ssh-keygen -t rsa
回车三次

创建脚本

chmod  776 xsync脚本内容
#!/bin/bash
#1. 判断参数个数
if [ $# -lt 1 ]
thenecho Not Enough Arguement!exit;
fi
#2. 遍历集群所有机器
for host in hadoop102 hadoop103 hadoop104
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执行
xsync bin

设置免费登录

ssh-copy-id hadoop102
ssh-copy-id hadoop103
ssh-copy-id hadoop104解决root下无法识别xsync命令sudo cp /home/atguigu/bin/xsync /usr/bin/

2.3hadoop的安装

解压
tar -zxvf hadoop-3.1.3.tar.gz  -C /opt/module/去解压后的目录
cd /opt/module/hadoop-3.1.3修改配置文件core-site.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?><configuration>
<!-- 指定NameNode的地址 -->
<!—相当于hadoop的内部通讯地址 --><property><name>fs.defaultFS</name><value>hdfs://hadoop102:8020</value></property><!-- 指定hadoop数据的存储目录 --><property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-3.1.3/data</value></property><!-- 配置HDFS网页登录使用的静态用户为atguigu --><property><name>hadoop.http.staticuser.user</name><value>atguigu</value></property><property><name>hadoop.proxyuser.atguigu.hosts</name><value>*</value></property><property><name>hadoop.proxyuser.atguigu.groups</name><value>*</value></property></configuration>

配置vim 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>hadoop102:9870</value></property><!-- 2nn web端访问地址--><property><name>dfs.namenode.secondary.http-address</name><value>hadoop104:9868</value></property>
</configuration>

配置 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>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>
</configuration>

设置vim mapred-site.xml

<configuration><!-- 指定MapReduce程序运行在Yarn上 --><property><name>mapreduce.framework.name</name><value>yarn</value></property>
</configuration>
~                   

编辑works文件输入下面的内容

hadoop102
hadoop103
hadoop104

配置历史服务器的地址

 vim 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>

配置日志得收集

 vim yarn-site.xml<!-- 开启日志聚集功能 -->
<property><name>yarn.log-aggregation-enable</name><value>true</value>
</property>
<!-- 设置日志聚集服务器地址 -->
<property>  <name>yarn.log.server.url</name>  <value>http://hadoop102:19888/jobhistory/logs</value>
</property>
<!-- 设置日志保留时间为7天 -->
<property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value>
</property>

进行分发

 xsync hadoop-3.1.3/

此时就完成了所有服务器中hadoop得安装了

编写一下环境变量vim /etc/profile.d/my_env.sh设置环境变量
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin                                     

分发环境变量

 sudo xsync  /etc/profile.d/my_env.sh环境变量生效
source /etc/profile

设置一个完整得启动得脚本

myhadoop.sh

#!/bin/bash
if [ $# -lt 1 ]
thenecho "No Args Input..."exit ;
fi
case $1 in
"start")echo " =================== 启动 hadoop集群 ==================="echo " --------------- 启动 hdfs ---------------"ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/start-dfs.sh"echo " --------------- 启动 yarn ---------------"ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/start-yarn.sh"echo " --------------- 启动 historyserver ---------------"ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon start historyserver"
;;
"stop")echo " =================== 关闭 hadoop集群 ==================="echo " --------------- 关闭 historyserver ---------------"ssh hadoop102 "/opt/module/hadoop-3.1.3/bin/mapred --daemon stop historyserver"echo " --------------- 关闭 yarn ---------------"ssh hadoop103 "/opt/module/hadoop-3.1.3/sbin/stop-yarn.sh"echo " --------------- 关闭 hdfs ---------------"ssh hadoop102 "/opt/module/hadoop-3.1.3/sbin/stop-dfs.sh"
;;
*)echo "Input Args Error..."
;;
esac

启动三个机器的hadoop

myhadoop.sh start

 创建一个脚本查看三个脚本的内容

jpsall文件创建#!/bin/bash
for host in hadoop102 hadoop103 hadoop104
doecho =============== $host ===============ssh $host jps $@ | grep -v Jps
done

rm -rf /opt/module/hadoop-3.1.3/logs/ /opt/module/hadoop-3.1.3/data/

格式化

hdfs namenode -format

下面是启动完成的

2.4安装MySQL

rpm -qa |grep mariadbsudo rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tarcommon安装
lib
额外的lib
client
server初始化
mysqld --initialize --user=mysql查看临时密码
cat /var/log/mysqld.logsystemctl start mysqldmysql -uroot -pshow databases;update user set host='%' where user='root';

2.5安装Hive

解压
tar -zxvf apache-hive-3.1.2-bin.tar.gz  -C /opt/module/改个名字
mv apache-hive-3.1.2-bin/ hive

修改环境变量

 sudo vim /etc/profile.d/my_env.shexport HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin环境变量生效
source /etc/profile

Hive的元数据配置

将MySQL的连接的驱动传递过去cp mysql-connector-java-5.1.37.jar /opt/module/hive/lib/

修改conf下的配置

vim 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://hadoop102:3306/metastore?createDatabaseIfNotExist=true</value
>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>000000</value>
<description>password to use against metastore database</description>
</property>
</configuration>

修改启动文件

mv hive-env.sh.template hive-env.sh
放开下面的启动参数
export HADOOP_HEAPSIZE=1024

修改存储日志的地方‘

mv hive-log4j2.properties.template  hive-log4j2.properties设置一下的参数
property.hive.log.dir = /opt/module/hive/logs

初始化hive服务

 schematool -initSchema -dbType mysql -verbose

次数MySQL数据库就创建成功了。此时MySQL表就创建成功了。

登录hive客户端

CREATE TABLE test_user (id STRING COMMENT '编号',name STRING COMMENT '姓名',province_id STRING COMMENT '省份名称'
) COMMENT '用户表'
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';

yarn中可以产看到运行的进度

此时在hdfs上有对应的数据

 

如何解决中文注释的乱码问题

将列改为中文

 修改配置文件

<value>jdbc:mysql://hadoop102:3306/metastore?createDatabaseIfNotExist=true&amp;useSSL=false&amp;useUnicode=true;characterEncoding=UTF-8</value

2.6Zookeeper部署

tar -zxvf  apache-zookeeper-3.5.7-bin.tar.gz  -C /opt/module/修改名字mv apache-zookeeper-3.5.7-bin/ zookeeper-3.5.7
在/opt/module/zookeeper-3.5.7/zkData下的myid文件下设置对应的编号
分别为2 3 4修改zookeeper的配置文件
mv zoo_sample.cfg  zoo.cfg数据保存的地方
dataDir=/opt/module/zookeeper-3.5.7/zkData#下面为集群的模式
server.2=hadoop102:2888:3888
server.3=hadoop103:2888:3888
server.4=hadoop104:2888:3888分发一下数据
xsync zookeeper-3.5.7/

zookeeper的bin下创建zk.sh脚本

#!/bin/bash
if [ $# -lt 1 ]
thenecho "No Args Input..."exit ;
ficase $1 in
"start")for i in hadoop102 hadoop103 hadoop104doecho "=====================  $i  ======================="ssh $i "source /etc/profile && /opt/module/zookeeper-3.5.7/bin/zkServer.sh start"done
;;
"stop")for i in hadoop102 hadoop103 hadoop104doecho "=====================  $i  ======================="ssh $i "source /etc/profile && /opt/module/zookeeper-3.5.7/bin/zkServer.sh stop"done
;;
"status")for i in hadoop102 hadoop103 hadoop104doecho "=====================  $i  ======================="ssh $i "source /etc/profile && /opt/module/zookeeper-3.5.7/bin/zkServer.sh status"done
;;
*)echo "Input Args Error..."
;;
esac

安装成功的状态

2.7Kafka安装

解压
tar -zxvf kafka_2.11-2.4.1.tgz  -C /opt/module/改个名字
mv kafka_2.11-2.4.1/ kafka创建logs目录mkdir logs修改kafka的配置文件
broker.id=0
delete.topic.enable=true
log.dirs=/opt/module/kafka/data
zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka

修改环境变量

 sudo vim /etc/profile.d/my_env.shexport KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin环境变量生效
source /etc/profile

分发

xsync kafka/ 

修改server.properties中的配置,分别设置不同的唯一的标识符

分发环境变量

sudo xsync /etc/profile.d/my_env.sh 设置环境变量生效
source /etc/profile

创建kafka启动的脚本

 cd ~/binchmod 777 ./kf.sh
#!/bin/bashcase $1 in
"start"){for i in hadoop102 hadoop103 hadoop104doecho " --------启动 $i Kafka-------"ssh $i "/opt/module/kafka/bin/kafka-server-start.sh -daemon /opt/module/kafka/config/server.properties "done
};;
"stop"){for i in hadoop102 hadoop103 hadoop104doecho " --------停止 $i Kafka-------"ssh $i "/opt/module/kafka/bin/kafka-server-stop.sh"done
};;
esac

设置这个文件的执行的权限

chmod 777  kf.sh
启动所有的kafka服务
kf.sh start

必须先启动zookeeper才能启动kafka

 查看kafka的进程状态

测试一下kafka的进行

创建kafka的topic
kafka-topics.sh --zookeeper hadoop102:2181/kafka \ --create --replication-factor 3 --partitions 1 --topic first查看所有的
kafka-topics.sh --zookeeper hadoop102:2181/kafka --list

 查看当前服务器中所有的topic

[atguigu@hadoop102 bin]$ kafka-topics.sh --zookeeper hadoop102:2181/kafka --list
[atguigu@hadoop102 bin]$ 

创建topic

kafka-topics.sh --zookeeper hadoop102:2181/kafka --create --topic first --partitions 3 --replication-factor 3实例:
[atguigu@hadoop102 bin]$ kafka-topics.sh --zookeeper hadoop102:2181/kafka --create --topic first --partitions 3 --replication-factor 3
Created topic first.

删除topic

kafka-topics.sh --zookeeper hadoop102:2181/kafka --delete --topic first

发送消息

kafka-console-producer.sh  --broker-list  hadoop102:9092  --topic first
实例:
[atguigu@hadoop104 config]$ kafka-console-producer.sh  --broker-list  hadoop102:9092  --topic first
>1
>2
>3
>4
>5

消费消息

kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic first
实例:
[atguigu@hadoop103 kafka]$ kafka-console-consumer.sh --bootstrap-server hadoop102:9092 --from-beginning --topic first
1
2
3
4
5

 

2.8Hbase的安装部署

zookeeper必须正常部署。

必须先启动hadoop。依赖于hdfs。

解压
tar -zxvf hbase-2.0.5-bin.tar.gz  -C /opt/module/重命名mv hbase-2.0.5/ hbase

设置环境变量

 sudo vim /etc/profile.d/my_env.shexport HBASE_HOME=/opt/module/hbase
export PATH=$PATH:$HBASE_HOME/bin环境变量生效
source /etc/profile

修改配置文件

cd conf设置外部的zookeeper
sudo vim hbase-env.sh
export HBASE_MANAGES_ZK=false

修改hbase-site.xml,指定zk的位置

sudo vim hbase-site.xml<configuration><property><name>hbase.rootdir</name><value>hdfs://hadoop102: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>hadoop102,hadoop103,hadoop104</value>
</property>
<property>   <name>hbase.zookeeper.property.dataDir</name><value>/opt/module/zookeeper-3.4.10/zkData</value>
</property>
</configuration

下面是我配置的配置文件的内容

<configuration><property><name>hbase.rootdir</name><value>hdfs://hadoop102:8020/HBase</value></property><property>  <name>hbase.cluster.distributed</name><value>true</value></property>
<property><name>hbase.zookeeper.quorum</name><value>hadoop102,hadoop103,hadoop104</value>
</property></configuration>                    

修改regionservers

sudo vim regionservers
输入下面的内容
hadoop102
hadoop103
hadoop104

分发hbase

xsync hbase/

分发环境变量

sudo xsync /etc/profile.d/my_env.sh 设置环境变量生效
source /etc/profile

启动hbase

启动hbase
start-hbase.sh停止hbase
stop-hbase.sh

 

访问Master: hadoop102可以查看集群的信息

 

2.9Solr

需要一个索引数据库,并没有采用es。因为atlas底层采用的是solr。

三个主机分别都添加用户solr
sudo useradd solr设置密码为solr
echo solr | sudo passwd --stdin solr

 

解压tar -zxvf solr-7.7.3.tgz  -C /opt/module/修改名称为solr
mv solr-7.7.3/ solr将当前文件夹的全部的权限都给solr
-R 表示递归执行sudo chown -R solr:solr /opt/module/solrsudo chown -R atguigu:atguigu /opt/module/solr/opt/module/solr/bin/solr start

 

以管理员的身份去修改solr下的配置文件
sudo vim solr.in.sh 修改下面的内容
ZK_HOST="hadoop102:2181,hadoop103:2181,hadoop104:2181"

分发

 xsync solr/

处于安全的考虑不推荐采用root的用户进行启动,需要采用自己创建的用户进行启动,solr。

 启动

sudo chmod -R 777 /opt/module/solr/sudo -i -u solr /opt/module/solr/bin/solr start

假设出现打开文件的限制得话运行下面得内容

打开 /etc/security/limits.conf 文件:sudo vi /etc/security/limits.conf
在文件末尾添加以下行来设置软限制和硬限制:* soft nofile 65536
* hard nofile 65536

下面是启动的集群的可视化配置的界面

访问下面的地址可以查看solr的管理的界面http://hadoop102:8983/solr/#/~cloud?view=nodes

 

 

2.10atlas安装

安装不复杂,配置是复杂得

解压tar -zxvf apache-atlas-2.1.0-bin.tar.gz  -C /opt/module/改个名字
mv apache-atlas-2.1.0/ atlas

配置Hbase

  • 修改内容atlas-application.properties


atlas.graph.storage.hostname=hadoop102:8181,hadoop103:8181,hadoop104:8181
  • 修改atlas-env.sh中得内容

#hbase连接地址
export HBASE_CONF=/opt/module/hbase/conf

atlas集成solr

  • 修改内容atlas-application.properties

atlas.graph.index.search.solr.zookeeper-url=hadoop102:8181,hadoop103:8181,hadoop104:8181
  • 修改atlas-env.sh中得内容
#hbase连接地址
export HBASE_CONF=/opt/module/hbase/conf

3.Atlas安装和配置

3.1集成Hbase

我们目前安装的是基本的server的包。

安装不复杂,配置是复杂得

解压tar -zxvf apache-atlas-2.1.0-bin.tar.gz  -C /opt/module/改个名字
mv apache-atlas-2.1.0/ atlas

配置Hbase

  • conf下修改内容atlas-application.properties

atlas.graph.storage.hostname=hadoop102:2181,hadoop103:2181,hadoop104:2181
  • 修改conf下的atlas-env.sh中得内容
#hbase连接地址
export HBASE_CONF_DIR=/opt/module/hbase/conf

3.2集成solr

atlas集成solr

  • 修改conf下的atlas-application.properties

atlas.graph.index.search.solr.zookeeper-url=hadoop102:2181,hadoop103:2181,hadoop104:2181

在solr中创建三个collection

/opt/module/solr/bin/solr create -c vertex_index -d /opt/module/atlas/conf/solr -shards 3 -replicationFactor 2/opt/module/solr/bin/solr create -c edge_index -d /opt/module/atlas/conf/solr -shards 3 -replicationFactor 2/opt/module/solr/bin/solr create -c fulltext_index -d /opt/module/atlas/conf/solr -shards 3 -replicationFactor 2

下面是创建collection的效果图

 

通过前端的界面查看创建的collection

  • 此时atlas中的元数据的信息就可以存储到solr中去了

 

3.3集成Kafka

修改atlas-application.properties配置文件中的内容

下面是改好的内容。

#########  Notification Configs  #########
atlas.notification.embedded=false
atlas.kafka.data=/opt/module/kafka/data
atlas.kafka.zookeeper.connect=hadoop102:2181,hadoop103:2181,hadoop104:2181/kafka
atlas.kafka.bootstrap.servers=hadoop102:9092,hadoop103:9092,hadoop104:9092

3.4atlas Server配置

在conf下的atlas-application.properties配置文件中进行下面的修改


#########  Server Properties  #########
atlas.rest.address=http://hadoop102:21000atlas.server.run.setup.on.start=falseatlas.audit.hbase.zookeeper.quorum=hadoop102:2181,hadoop103:2181,hadoop104:2181

放开下面的注释

conf下的atlas-log4j.xml

    <!-- Uncomment the following for perf logs --><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>

3.5集成Hive

atlas可以实时的获取atlas中的元数据。

在conf下的atlas-application.properties最后面加入下面的内容。

atlas.hook.hive.synchronous=false
atlas.hook.hive.numRetries=3
atlas.hook.hive.queueSize=10000
atlas.cluster.name=primary

下面去Hive的conf下的hive-site.xml中加入下面的参数。配置hive hook。

<property><name>hive.exec.post.hooks</name><value>org.apache.atlas.hive.hook.HiveHook</value>
</property>

安装Hive Hook

安装文件在atlas中的源程序中。


tar -zxvf apache-atlas-2.1.0-hive-hook.tar.gz 

 现在需要将上面的这两个文件夹复制到atlas的目录下。

cp -r ./* /opt/module/atlas/

[atguigu@hadoop102 conf]$ sudo vim hive-env.sh
添加下面的内容
export HIVE_AUX_JARS_PATH=/opt/module/atlas/hook/hive拷贝一份配置文件到hive的配置文件目录下
sudo cp atlas-application.properties /opt/module/hive/conf/

3.6Atlas的启动和登录

hadoop启动

zookeeper启动

kafka启动

 

在atlas的bin目录下执行下面的命令  

启动命令
./atlas_start.py 关闭命令
./atlas_stop.py 

启动的时间是比较长的。

错误日志的地方

 

 

atlas管理界面的地址http://hadoop102:21000/

账户:admin

密码:admin

jpsall如果出现一个Atlas的进程的话就是启动成功了。

UI界面加载的时候时候还需要加载一段的时间。

tail -f application.log 

登录上之后

 

可以进行元数据的管理和查询以及血缘关系的查询。

 

3.7atlas的作用

  • 同步Hive中的元数据。并构建元数据实体之间的关联关系。

  • 对所存储的元数据建立索引,最终用户提供数据血缘查看及元数据检索等功能。

Atlas在安装的时候需要进行一次元数据的全量的导入。后续会使用HIve Hook进行同步Hive中的元数据。

全量导入只需要一次。

3.8元数据的导入

进入下面的目录
/opt/module/atlas/hook-bin输入下面的命令导入
./import-hive.sh

查看导入的表。

 

 

 

3.9查看血缘关系

订单信息表

 

CREATE TABLE dwd_order_info (`id` STRING COMMENT '订单号',`final_amount` DECIMAL(16,2) COMMENT '订单最终金额',`order_status` STRING COMMENT '订单状态',`user_id` STRING COMMENT '用户 id',`payment_way` STRING COMMENT '支付方式',`delivery_address` STRING COMMENT '送货地址',`out_trade_no` STRING COMMENT '支付流水号',`create_time` STRING COMMENT '创建时间',`operate_time` STRING COMMENT '操作时间',`expire_time` STRING COMMENT '过期时间',`tracking_no` STRING COMMENT '物流单编号',`province_id` STRING COMMENT '省份 ID',`activity_reduce_amount` DECIMAL(16,2) COMMENT '活动减免金额',`coupon_reduce_amount` DECIMAL(16,2) COMMENT '优惠券减免金额',`original_amount` DECIMAL(16,2) COMMENT '订单原价金额',`feight_fee` DECIMAL(16,2) COMMENT '运费',`feight_fee_reduce` DECIMAL(16,2) COMMENT '运费减免'
) COMMENT '订单表'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

 地区维度表

CREATE TABLE dim_base_province (`id` STRING COMMENT '编号',`name` STRING COMMENT '省份名称',`region_id` STRING COMMENT '地区 ID',`area_code` STRING COMMENT '地区编码',`iso_code` STRING COMMENT 'ISO-3166 编码,供可视化使用',`iso_3166_2` STRING COMMENT 'IOS-3166-2 编码,供可视化使用'
) COMMENT '省份表'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

插入之后

 

 

将资料里面提前准备好的数据 order_info.txt 和 base_province.txt 上传到两张 hive 表的 hdfs 路径下

在下面的目录中上传我们的数据

 

 

需求指标

1)根据订单事实表和地区维度表,求出每个省份的订单次数和订单金额 2)建表语句


CREATE TABLE `ads_order_by_province` (`dt` STRING COMMENT '统计日期',`province_id` STRING COMMENT '省份 id',`province_name` STRING COMMENT '省份名称',`area_code` STRING COMMENT '地区编码',`iso_code` STRING COMMENT '国际标准地区编码',`iso_code_3166_2` STRING COMMENT '国际标准地区编码',`order_count` BIGINT COMMENT '订单数',`order_amount` DECIMAL(16,2) COMMENT '订单金额'
) COMMENT '各省份订单统计'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

 数据装载

insert into table ads_order_by_province
select'2021-08-30' dt,bp.id,bp.name,bp.area_code,bp.iso_code,bp.iso_3166_2,count(*) order_count,sum(oi.final_amount) order_amount
from dwd_order_info oi
left join dim_base_province bp
on oi.province_id=bp.id
group by bp.id,bp.name,bp.area_code,bp.iso_code,bp.iso_3166_2;

下面是血缘关系图。

 查看字段下单量的血缘族谱。

 下面是字段的血缘关系。

 

4.网址

4.1Atlas

http://hadoop102:21000/

账号:admin

密:admin

 

 

4.2Solr

http://hadoop102:8983/

 

 

 

4.4Hadoop

http://hadoop102:9870/

 

 

4.5Yarn

http://hadoop103:8088/

 

 

 

5.启动命令

启动Hadoop::只在102上执行
myhadoop.sh startMySQL
默认是启动的hive::只在102上执行
执行hive就可以zookeeper启动:只在102上执行
cd /opt/module/zookeeper-3.5.7/bin
./zk.sh startkafka启动:只在102上执行cd ~/bin
kf.sh start启动hbase:只在102上执行
cd /opt/module/hbase/bin启动
start-hbase.sh
停止
stop-hbase.shsolr三个机器上分别执行
/opt/module/solr/bin/solr start

 

相关文章:

Atlas 元数据管理

Atlas 元数据管理 1.Atlas入门 1.1概述 元数据原理和治理功能&#xff0c;用以构建数据资产的目录。对这个资产进行分类和管理&#xff0c;形成数据字典。 提供围绕数据资产的协作功能。 表和表之间的血缘依赖 字段和字段之间的血缘依赖 1.2架构图 导入和导出&#xff1…...

编程题练习@8-23

分享8月23日两道编程题&#xff1a; 1 开幕式排列 题目描述 导演在组织进行大运会开幕式的排练&#xff0c;其中一个环节是需要参演人员围成一个环形。 演出人员站成了一圈&#xff0c;出于美观度的考虑&#xff0c;导演不希望某一个演员身边的其他人比他低太多或者高太多。 现…...

static相关知识点详解

文章目录 一. 修饰成员变量二. 修饰成员方法三. 修饰代码块四. 修饰类 一. 修饰成员变量 static 修饰的成员变量&#xff0c;称为静态成员变量&#xff0c;该变量不属于某个具体的对象&#xff0c;是所有对象所共享的。 public class Student {private String name;private sta…...

Redisson 分布式锁

Redis是基础客户端库&#xff0c;可用于执行基本操作。 Redisson是基于Redis的Java客户端&#xff0c;提供高级功能如分布式锁、分布式集合和分布式对象。 Redisson提供更友好的API&#xff0c;支持异步和响应式编程&#xff0c;提供内置线程安全和失败重试机制。 实现步骤…...

继承(C++)

继承 一、初识继承概念“登场”语法格式 继承方式九种继承方式组合小结&#xff08;对九种组合解释&#xff09; 二、继承的特性赋值转换 一一 切片 / 切割作用域 一一 隐藏 / 重定义 三、派生类的默认成员函数派生类的默认成员函数1. 构造函数2. 拷贝构造3. 赋值运算符重载4. …...

文心一言 VS 讯飞星火 VS chatgpt (80)-- 算法导论7.4 5题

五、如果用go语言&#xff0c;当输入数据已经“几乎有序”时&#xff0c;插入排序速度很快。在实际应用中&#xff0c;我们可以利用这一特点来提高快速排序的速度。当对一个长度小于 k 的子数组调用快速排序时&#xff0c;让它不做任何排序就返回。当上层的快速排序调用返回后&…...

SpringCloud 概述

文章目录 SpringCloud 概述一、微服务中的相关概念1、服务注册与发现2、负载均衡3、熔断4、链路追踪5、API网关 二、SpringCloud的介绍三、SpringCloud的架构1、SpringCloud中的核心组件&#xff08;1&#xff09;Spring Cloud Netflix组件&#xff08;2&#xff09;Spring Clo…...

Apache ShenYu 学习笔记一

1、简介 这是一个异步的&#xff0c;高性能的&#xff0c;跨语言的&#xff0c;响应式的 API 网关。 官网文档&#xff1a;Apache ShenYu 介绍 | Apache ShenYu仓库地址&#xff1a;GitHub - apache/shenyu: Apache ShenYu is a Java native API Gateway for service proxy, pr…...

uniapp 禁止遮罩层下的页面滚动

使用 touchmove.stop.prevent"toMoveHandle" 事件修饰符 若需要禁止蒙版下的页面滚动&#xff0c;可使用 touchmove.stop.prevent"moveHandle"&#xff0c;moveHandle 可以用来处理 touchmove 的事件&#xff0c;也可以是一个空函数。将这个方法直接丢到弹…...

postgresql 分组

postgresql 数据汇总 分组汇总聚合函数注意 总结 分组统计总结 高级分组总结 分组汇总 聚合函数 聚合函数&#xff08;aggregate function&#xff09;针对一组数据行进行运算&#xff0c;并且返回单个结果。PostgreSQL 支持以下常见的聚合函数&#xff1a; • AVG - 计算一…...

RT1052的EPWM

文章目录 1 EPWM介绍1.1 引脚1.2 时钟1.3 比较寄存器 2 函数 1 EPWM介绍 RT1052 具有 4 个 eFlexPWM(eFlexWM1~eFlex_PWM4)。 每个 eFlexPWM 可以产生四路互补 PWM即产生 8 个 PWM&#xff0c;也可以产生相互独立的 PWM 波。四路分别是模块0-3每个 eFlexPWM 具有各自的故障检…...

k8s 安装istio (一)

前置条件 已经完成 K8S安装过程十&#xff1a;Kubernetes CNI插件与CoreDNS服务部署 部署 istio 服务网格与 Ingress 服务用到了 helm 与 kubectl 这两个命令行工具&#xff0c;这个命令行工具依赖 ~/.kube/config 这个配置文件&#xff0c;目前只在 kubernetes master 节点中…...

vue 项目在编译时,总是出现系统崩的状态,报错信息中有v7 或者 v8 的样式-项目太大内存溢出

vue 项目在编译时&#xff0c;总是出现系统崩的状态&#xff0c;node 命令框也会报错&#xff0c;如下图&#xff1a;有v7 或者 v8 的样式。 原因分析&#xff1a; 分析&#xff1a;遇到与上面图片相似的问题&#xff0c;我们要首先要想到是否是 有关内存的问题&#xff0c;当然…...

低功耗蓝牙射频指纹识别

射频指纹 射频指纹是什么 射频指纹是一种利用无线电信号的特征来识别设备或用户的技术。射频指纹可以用来做设备身份认证、位置跟踪、安全防护等应用。射频指纹的优点是难以伪造、不依赖于额外的硬件或软件、适用于多种无线通信协议。 射频指纹识别流程 射频指纹识别的一般…...

怎么检测UI卡顿?(线上及线下)

什么是UI卡顿&#xff1f; 在Android系统中&#xff0c;我们知道UI线程负责我们所有视图的布局&#xff0c;渲染工作&#xff0c;UI在更新期间&#xff0c;如果UI线程的执行时间超过16ms&#xff0c;则会产生丢帧的现象&#xff0c;而大量的丢帧就会造成卡顿&#xff0c;影响用…...

Git 常用操作

一、Git 常用操作 1、切换分支 git checkout命令可以用于三种不同的实体&#xff1a;文件&#xff0c;commit&#xff0c;以及分支。checkout的意思就是对于一种实体的不同版本之间进行切换的操作。checkout一个分支&#xff0c;会更新当前的工作空间中的文件&#xff0c;使其…...

前端修改新增操作导致数据删除——js精度丢失

问题描述 笔者在写前端渲染表格的时候&#xff0c;发现无论是修改还是新增&#xff0c;数据都会被删除。检查了前端逻辑并与后端联调均无问题。 然后就开始和后端一起对数据库&#xff0c;结果发现&#xff0c;十几位的id&#xff0c;接收过来的时候&#xff0c;尾数均变为了…...

winform使用usercontrol 构建了一个复杂的列表,列表速度慢该如何优化?

当使用 WinForms 构建复杂的列表时&#xff0c;可能会面临性能问题&#xff0c;特别是在数据量大或 UI 复杂的情况下。以下是一些优化策略&#xff0c;可以帮助您改善列表的性能&#xff1a; 1. **虚拟模式 (Virtual Mode)**&#xff1a;对于大型数据集&#xff0c;考虑使用虚…...

Lnton羚通算法算力云平台如何在OpenCV-Python中使用cvui库创建复选框

CVUI 之 复选框 Python import numpy as np import cv2 import cvuidef checkbox_test():WINDOW_NAME Checkbox-Testchecked [False]# 创建画布frame np.zeros((300, 400, 3), np.uint8)# 初始化窗口cvui.init(WINDOW_NAME)while True:# 画布填色frame[:] (100, 200, 100…...

中项系统集成项目管理知识点汇总

中项系统集成项目管理知识点汇总 一、成本-进度二、十大管理及47个过程三、质量四、人力资源五、风险六、干系人沟通七、案例分析万能答案八、选择题知识点九、十大管理输入输出工具技术总结十大管理工具技术总结 一、成本-进度 针对进度滞后的绩效情况 /缩短工期&#xff0c;可…...

Docker容器:docker基础及网络

Docker容器&#xff1a;docker基础及安装 一.docker容器概述 1.什么是容器 &#xff08;1&#xff09;Docker是在Linux容器里运行应用的开源工具&#xff0c;是一种轻量级的“虚拟机”。 &#xff08;2&#xff09;是一个开源的应用容器引擎&#xff0c;基于go语言开发并遵…...

Django实现音乐网站 ⑿

使用Python Django框架制作一个音乐网站&#xff0c; 本篇主要是加载静态资源和推荐页-轮播图、推荐歌单功能开发。 目录 加载静态资源 引入jquery.js 引入bootstrap资源文件 创建基类模板样式文件 推荐页开发 轮播图开发 下载 加载swiper 自定义引入继承块设置 使用…...

ORB-SLAM2学习笔记10之图像关键帧KeyFrame

文章目录 0 引言1 KeyFrame类1.1 构造函数1.2 成员函数1.3 关键帧之间共视图1.3.1 AddConnection1.3.2 UpdateBestCovisibles1.3.3 UpdateConnections1.3.4 EraseConnection1.3.5 SetBadFlag 1.4 地图点1.5 生成树 2 KeyFrame用途 0 引言 ORB-SLAM2学习笔记7详细了解了System主…...

【ownCloud】添加信任域

在我进行使用mysql:5.6和 owncloud 镜像&#xff0c;构建一个个人网盘后 我的虚拟机更改了ip地址导致出现下列状况 报错&#xff1a;您正在访问来自不信任域名的服务器。 please contact your administrator. if you are an administrator of this instance, configure the &q…...

C++--类型转换

1.什么是类型转换 在传统C语言中&#xff0c;由强制类型转换和隐式类型转换&#xff0c;隐式类型转换&#xff0c;编译器在在编译阶段自动处理&#xff0c;能转换则转换&#xff0c;强制类型转换由用户自己转换。 缺陷&#xff1a; 转换的可视性比较差&#xff0c;所有的转换形…...

在服务器上部署 Nginx 并设置图片服务器

问题&#xff1a;我要指定/home/images专门存放图片&#xff01;该怎么做&#xff0c;而且我的系统是centos8系统&#xff0c;只有一个root用户&#xff0c;用root用户已经安装了nginx 答案&#xff1a; 既然你使用了 CentOS 8&#xff0c;并且你想使用 /home/images 目录存放…...

使用NXP GUI GUIDER生成的GUI移植到雅特力MCU平台过程详解(ST/GD/国民/极海通用)

好记性不如烂笔头&#xff0c;既然不够聪明&#xff0c;就乖乖的做笔记&#xff0c;温故而知新。 本文档用于本人对知识点的梳理和记录 一、前言 上一篇我们有介绍NXP GUI Guider工具如何制作和调试GUI&#xff0c;GUI神器 NXP GUI GUIDER开发工具入门教程https://blog.csdn.n…...

JVM——配置常用参数,GC调优策略

文章目录 JVM 配置常用参数Java内存区域常见配置参数概览堆参数回收器参数项目中常用配置常用组合 常用 GC 调优策略GC 调优原则GC 调优目的GC 调优策略 JVM 配置常用参数 Java内存区域常见配置参数概览堆参数&#xff1b;回收器参数&#xff1b;项目中常用配置&#xff1b;常…...

使用IDEA把Java程序打包成jar

点击左上角File,选择Project Structure 左侧选中Artifacts,点击右侧的号 选择JAR->From modules with dependencies 选择你要运行的main方法所在的类,选好了点击OK Artifacts添加完成后点击右下角OK 在工具栏中找到Build,选择Build Artifacts 刚才创建好的Artifacts,选择Bui…...

元宇宙和数字孪生的异同探究

元宇宙和数字孪生&#xff0c;作为两个备受瞩目的概念&#xff0c;都在不同领域引起了巨大的关注。虽然它们都涉及数字化世界的构建&#xff0c;但元宇宙和数字孪生在概念、应用和影响方面存在一些异同点。 相似之处&#xff1a; 数字表示&#xff1a; 元宇宙和数字孪生都依赖…...

汕头网站快速排名/在哪里找软件开发公司

关于Gdb的使用&#xff0c;请参考&#xff1a;http://blog.csdn.net/haoel/article/details/2879 转载于:https://www.cnblogs.com/itdev/p/6160284.html...

网站上的办公网站怎么做/全网营销培训

HTML5中提供了跨域加载数据的方法&#xff0c;让我们得以从JSONP或者Flash中介等各种绕行方案中解脱出来&#xff0c;更加顺畅地与服务器交流。另一方面&#xff0c;因为PHP是最好的语言……所以在它与Node.js之间&#xff0c;我选择前者作为后端语言开发内容服务。这篇文章记录…...

没网站可以做百度推广吗/网络推广方式有哪几种

HTML 基础 文章目录HTML 基础一&#xff0c;结构1.1HTML文件基本结构1.2标签层次结构二、HTML常见标签2.1 标题标签2.2注释标签2.3段落标签2.4换行标签2.5格式化标签2.6 图片标签 img ☆2.7超链接标签2.8表格2.9列表标签三、表单标签3.1 input ☆3.2 select3.3 textarea3.3 无语…...

企业网站的党建文化怎么做/学电子商务出来能干嘛

一 .进程概念理解 1.前面必备知识点 #一 操作系统的作用&#xff1a;1&#xff1a;隐藏丑陋复杂的硬件接口&#xff0c;提供良好的抽象接口2&#xff1a;管理、调度进程&#xff0c;并且将多个进程对硬件的竞争变得有序#二 多道技术&#xff1a;1.产生背景&#xff1a;针对单核…...

做类似58同城的网站/电商运营转行后悔了

release()方法源码如下&#xff1a; public final boolean release(int arg) {//tryRelease()方法由子类实现&#xff0c;由子类来决定是否能成功释放锁if (tryRelease(arg)) {//取得队列头节点Node h head;//如果头节点不为null而且头节点的状态不为0&#xff0c;0代表的是新…...

网站如何调用手机淘宝做淘宝客/免费seo视频教学

大家好&#xff0c;我是多选参数的一员 —— 大炮。这里先剧透一下&#xff0c;在一段时间后&#xff0c;多选参数会搞一个抽奖福利&#xff0c;其中是有《可读代码编写的艺术》以及其他书籍(可能还有别的) 的福利。可以先关注「 多选参数 」&#xff0c;以方便第一时间参与抽奖…...