基本概念
官网
Apache Atlas – Data Governance and Metadata framework for Hadoop
文档:
Apache Atlas – Data Governance and Metadata framework for Hadoop
架构
安装前提
安装包
链接:https://pan.baidu.com/s/1w4sCAiqE_tJtUUASNSCpSQ
提取码:yyds
--来自百度网盘超级会员V4的分享
安装启动Hadoop
安装启动mysql
安装启动Hive
测试数据
create table test(id int);
insert into table test values (90);
desc test; 注意这里要解决注释中文乱码问题
安装启动Zookeeper
安装启动Kafka
安装启动Hbase
安装启动Solr
解压安装包
设置权限
sudo chown -R bigdata:bigdata solr-7.7.3
修改对应的配置文件
sudo vi solr.in.sh
修改对应的zk配置
ZK_HOST="master:2181,node1:2181,node2:2181"
分发刚才解压和配置包到集群其他节点
./xsync /home/bigdata/shell/solr/solr-7.7.3
启动
出于安全考虑,不推荐使用
root
用户启动
solr
,此处使用
solr
用户,在所有节点执行以
下命令启动
solr
集群
其他机器也启动
./solr start
访问8983端口
安装Atlas
tar -zxvf apache-atlas-2.1.0-server.tar.gz
解压以后的目录
Atlas集成框架
Atlas 集成 hbase
作用是数据的存储
atlas.graph.storage.hostname=master:2181,node1:2181,node2:2181
添加Hbase配置文件的位置
export HBASE_CONF_DIR=/home/bigdata/hbase/hbase-2.4.9/conf
Atlas 集成 Solr
atlas.graph.index.search.solr.zookeeper-url=master:2181,node1:2181,node2:2181
创建 solr collection
./solr create -c vertex_index -d /home/bigdata/atlas/atlas/conf/solr -shards 3 -replicationFactor 2
./solr create -c edge_index -d /home/bigdata/atlas/atlas/conf/solr -shards 3 -replicationFactor 2
./solr create -c fulltext_index -d /home/bigdata/atlas/atlas/conf/solr -shards 3 -replicationFactor 2
效果如下(作用就是记录元数据的关系)
Atlas 集成 Kafka
导数据缓冲作用
atlas.notification.embedded=false
atlas.kafka.data=/home/bigdata/kafka/kafka_2.11-2.4.1/data
atlas.kafka.zookeeper.connect=master:2181,node1:2181,node2:2181/kafka
atlas.kafka.bootstrap.servers=master:9092,master:9092,master:9092
Atlas Server 配置
atlas.rest.address=http://master:21000
# If enabled and set to true, this will run setup steps when the server starts
atlas.server.run.setup.on.start=false
######### Entity Audit Configs #########
atlas.audit.hbase.tablename=apache_atlas_entity_audit
atlas.audit.zookeeper.session.timeout.ms=1000
atlas.audit.hbase.zookeeper.quorum=master:2181,node1:2181,node2:2181
记录性能指标(选配),进入
atlas/conf/
路径,修改当前目录下的
atlas-log4j.xml
去掉注解就行
Atlas 集成 Hive
在文件最后添加支持hive的配置
######### Hive Hook Configs #######
atlas.hook.hive.synchronous=false
atlas.hook.hive.numRetries=3
atlas.hook.hive.queueSize=10000
atlas.cluster.name=primary
修改hive的配置文件
<property>
<name>hive.exec.post.hooks</name>
<value>org.apache.atlas.hive.hook.HiveHook</value>
</property>
修改完配置以后重启下hive
添加Hive的hook
拷贝解压的hive的hook到atlas下面
cp -r ./* /home/bigdata/atlas/atlas
配置hive的环境变量
将
Atlas
配置文件
/opt/module/atlas/conf/
atlas-application.properties
拷贝到
/opt/module/hive/conf
目录
cp atlas-application.properties /home/bigdata/hive/hive-3.1.2/conf
使用Atlas
./atlas_start.py
下图表示启动成功
后面访问还要等几分钟,到日志不在打印位置(我大概等了10多分钟)。
登录
admin
admin
Hive数据初始导入
下面输入我的是账号:admin 密码:admin
简单的搜索
hive血缘关系测试
Hive
元数据的增量同步,无需人为干预,只要
Hive
中的元数据发生变化(执行
DDL
语
句),
Hive Hook
就会将元数据的变动通知
Atlas
。除此之外,
Atlas
还会根据
DML
语句获取
数据之间的血缘关系。
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
路径下。
查询数据是否成功导入
select * from dwd_order_info;
select * from dwd_order_info;
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;
注意
出现不可修复的异常的时候删除atlas保存在hbase上面的元数据信息,重新启动就行。
disable 'tablename'
drop 'tablename'