慈溪企业排名网站,长沙微商城网站建设,企业网站建设协议,网页设计课程心得体会500字大纲 1 Superset部署1.1 启动AWS EC21.2 下载Superset Docker文件1.3 修改Dockerfile1.4 配置管理员1.5 结果展示1.6 检查数据库驱动1.7 常见错误处理 2 Glue#xff08;可选参考#xff09;3 IAM与安全组3.1 使用AWS Athena3.2 使用AWS RedShift或AWS RDS3.2.1 查看AWS Reds… 大纲 1 Superset部署1.1 启动AWS EC21.2 下载Superset Docker文件1.3 修改Dockerfile1.4 配置管理员1.5 结果展示1.6 检查数据库驱动1.7 常见错误处理 2 Glue可选参考3 IAM与安全组3.1 使用AWS Athena3.2 使用AWS RedShift或AWS RDS3.2.1 查看AWS Redshift集群VPC安全组3.2.2 设置Superset所在AWS EC2实例的安全组3.2.3 添加入站规则 4 Superset配置数据源并创建Dashboard4.1 连接AWS Athena4.2 连接AWS Redshift 5 Superset教程 本文将讲解如何在AWS EC2中部署Apache Superset并通过AWS Glue连接AWS S3、AWS RDS、AWS RedShift中的数据进行可视化展现。 1 Superset部署
1.1 启动AWS EC2
启动一台Amazon Linux EC2并安装启动docker环境需要机型为t.xlarge及以上EBS盘20GB以上。
sudo yum update -y# install python3 gcc
sudo yum install -y python3 libpq-dev python3-dev
sudo yum install -y gcc gcc-c# add following into ~/.bashrc
echo export PATH/usr/local/bin:$PATH ~/.bashrc
echo alias pythonpython3 ~/.bashrc
echo alias pippip3 ~/.bashrc
source ~/.bashrc
python --version# install docker
sudo yum -y install docker
sudo usermod -a -G docker ec2-user
sudo systemctl start docker
sudo systemctl status docker
sudo systemctl enable docker
sudo chmod 666 /var/run/docker.sock
docker ps# install docker-compose
sudo curl -L https://github.com/docker/compose/releases/download/1.25.4/docker-compose-$(uname -s)-$(uname -m) -o /usr/local/bin/docker-compose
sudo chmod x /usr/local/bin/docker-compose
sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
docker-compose --version1.2 下载Superset Docker文件
sudo yum install -y git curl
git clone https://github.com/apache/incubator-superset/1.3 修改Dockerfile
cd incubator-superset
vi Dockerfile在末尾添加
RUN pip install PyAthenaJDBC \ #这个是athena连接 pip install PyAthena \ #这个是athena连接 pip install psycopg2 \ pip install sqlalchemy-redshift # 这个是redshift连接构建
docker-compose build
docker-compose up1.4 配置管理员
需要配置管理员用户权限在docker/docker-init.sh中默认创建用户admin密码也是admin但权限并没有更新通过以下命令更新权限。
#进入docker
docker-compose exec superset bash
superset init1.5 结果展示
配置成功后Superset默认使用8088端口使用http://EC2 公有IP:8088访问默认用户名和密码均为admin 可在Dockerfile、docker中命令、管理页面更改。
1.6 检查数据库驱动
查看数据库驱动是否安装成功。 若没有 #进入docker
docker-compose exec superset bash
#安装 athena 和redshift驱动
pip install PyAthenaJDBC \ pip install PyAthena \ pip install psycopg2 \ pip install sqlalchemy-redshift1.7 常见错误处理
build中如果出现error
ERROR: Couldnt connect to Docker daemon at httpdocker://localunixsocket - is it running?原因
docker 没有启动
sudo systemctl start docker用户不再docker用户组里面
sudo gpasswd -a ${USER} docker如果是第二个请退出shell 再次登陆
2 Glue可选参考
创建Glue 见《基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析一——创建Glue》数据清洗、转换 见《基于AWS Serverless的Glue服务进行ETL(提取、转换和加载)数据分析二——数据清洗、转换》
3 IAM与安全组
部署Superset的AWS EC2附加的IAM角色需要有AWS Athena查询和Glue Catalog的权限为方便起见可以赋予AthenaFullAccess和GlueFullAccess。但实际情况请按照最小权限原则来保障安全。
3.1 使用AWS Athena
如果在 Amazon Athena中运行查询时出现 “Access Denied”拒绝访问错误。
Your query has the following errors:Access denied when writing output to url: s3://my-athena-result-bucket/Unsaved/2021/05/07/example_query_ID.csv . Please ensure you are allowed to access the S3 bucket. If you are encrypting query results with KMS key, please ensure you are allowed to access your KMS key向 IAM 用户授予所需的权限。以下 IAM 策略允许源数据存储桶和查询结果存储桶的最低权限
{Version: 2012-10-17,Statement: [{Effect: Allow,Action: [s3:ListBucket],Resource: [arn:aws:s3:::【数据源的s3名称】]},{Effect: Allow,Action: [s3:GetObject],Resource: [arn:aws:s3:::【数据源的s3名称】/*]},{Effect: Allow,Action: [s3:GetBucketLocation,s3:GetObject,s3:ListBucket,s3:ListBucketMultipartUploads,s3:AbortMultipartUpload,s3:PutObject,s3:ListMultipartUploadParts],Resource: [arn:aws:s3:::【存储Athena查询结果的s3名称】,arn:aws:s3:::【存储Athena查询结果的s3名称】/*]}]
}请务必在此示例策略中替换【】中的内容。
3.2 使用AWS RedShift或AWS RDS
此处以AWS RedShift集群为例。
3.2.1 查看AWS Redshift集群VPC安全组 3.2.2 设置Superset所在AWS EC2实例的安全组 3.2.3 添加入站规则 4 Superset配置数据源并创建Dashboard
此处提供了AWS Athena与AWS RedShift的连接教程其他JDBC语法请看官方文档。
4.1 连接AWS Athena
awsathenarest://athena.{region}.amazonaws.com.cn/Glue数据库表?s3_staging_dir用来存储查询结果的S3地址测试连接
4.2 连接AWS Redshift
redshiftpsycopg2://userName:DBPasswordAWS End Point:port/Database Name创建连接
5 Superset教程
简单教学superset官方文档