当前位置: 首页 > 面试题库 >

在Hadoop中使用Apache Airflow配置MySql时遇到的问题

夹谷沛
2023-03-14
问题内容

我试图在具有以下配置/版本的三个节点的dev Hadoop集群上安装和配置apache airflow:

Operating System: Red Hat Enterprise Linux Server 7.7
python 3.7.3
anaconda 2
spark 2.45

a)sudo yum install gcc gcc-c++ -y
b)sudo yum install libffi-devel mariadb-devel cyrus-sasl-devel -y
c)pip install 'apache-airflow[all]'
d)airflow initdb  -- airflow.cfgfile was created with SQLlite

然后我按照下面的命令集使用mysql配置它

a) rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm 
b) sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/mysql-community.repo 
c) yum --enablerepo=mysql80-community install mysql-community-server 
d) systemctl start mysqld.service

在mysql之下完成以下操作

a) CREATE DATABASE airflow CHARACTER SET utf8 COLLATE utf8_unicode_ci; 
b) create user 'airflow'@'localhost' identified by 'Airflow123'; 
c) grant all privileges on * . * to 'airflow'@'localhost';

这是我airflow.cfg文件中的一些详细信息

broker_url = sqla+mysql://airflow:airflow@localhost:3306/airflow
result_backend = db+mysql://airflow:airflow@localhost:3306/airflow
sql_alchemy_conn = mysql://airflow:Airflow123@localhost:3306/airflow
executor = CeleryExecutor

我在执行airflow initdb命令时遇到错误

ImportError: /home/xyz/anaconda2/envs/python3.7.2/lib/python3.7/site-packages/_mysql.cpython-37m-x86_64-linux-gnu.so: symbol mysql_real_escape_string_quote, 
version libmysqlclient_18 not defined in file libmysqlclient.so.18 with link time reference

已将.bashrc文件设置为:

export AIRFLOW_HOME=~/airflow

这是我创建的目录:

[xyz@innolx5984 airflow]$ pwd
/home/xyz/airflow

当我查找该文件“ libmysqlclient”时,我发现了很多实例。

[xyz@innolx5984 airflow]$ find /home/xyz/ -name "*libmysqlclient*"
/home/xyz/anaconda2/pkgs/mysql-connector-c-6.1.11-h597af5e_1/lib/libmysqlclient.so
/home/xyz/anaconda2/pkgs/mysql-connector-c-6.1.11-h597af5e_1/lib/libmysqlclient.a
/home/xyz/anaconda2/pkgs/mysql-connector-c-6.1.11-h597af5e_1/lib/libmysqlclient.so.18
/home/xyz/anaconda2/pkgs/mysql-connector-c-6.1.11-h597af5e_1/lib/libmysqlclient.so.18.4.0
/home/xyz/anaconda2/lib/libmysqlclient.a
/home/xyz/anaconda2/lib/libmysqlclient.so
/home/xyz/anaconda2/lib/libmysqlclient.so.18
/home/xyz/anaconda2/lib/libmysqlclient.so.18.4.0

仅添加更多细节以防万一。

[xyz@innolx5984 airflow]$ mysql_config
Usage: /home/xyz/an
aconda2/bin/mysql_config [OPTIONS]
Options:
        --cflags         [-I/home/xyz/anaconda2/include ]
        --cxxflags       [-I/home/xyz/anaconda2/include ]
        --include        [-I/home/xyz/anaconda2/include]
        --libs           [-L/home/xyz/anaconda2/lib -lmysqlclient ]
        --libs_r         [-L/home/xyz/anaconda2/lib -lmysqlclient ]
        --plugindir      [/home/xyz`/anaconda2/lib/plugin]
        --socket         [/tmp/mysql.sock]
        --port           [0]
        --version        [6.1.11]
        --variable=VAR   VAR is one of:
                pkgincludedir [/home/xyz/anaconda2/include]
                pkglibdir     [/home/xyz/anaconda2/lib]
                plugindir     [/home/xyz/anaconda2/lib/plugin]

    Looking for some help and suggestion to resolve this

问题。我不太确定是否朝正确的方向前进。


问题答案:

请按照以下步骤使用Anaconda3将Apache Airflow与MySQL一起安装

1) 安装先决条件

yum install gcc gcc-c++ -y
yum install libffi-devel mariadb-devel cyrus-sasl-devel -y
dnf install redhat-rpm-config

2) 安装Anaconda3(Python 3.7.6随附)

yum install libXcomposite libXcursor libXi libXtst libXrandr alsa-lib mesa-libEGL libXdamage mesa-libGL libXScrnSaver
wget https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh
chmod +x Anaconda3-2020.02-Linux-x86_64.sh 
./Anaconda3-2020.02-Linux-x86_64.sh

确保conda initialize在安装过程中出现提示时执行此操作。这将确保在后续步骤中使用正确版本的python和pip。

3) 安装Apache Airflow

pip install apache-airflow[mysql,celery]

您可以根据需要添加其他子包。我只包含了Airflow使用MySQL数据库作为后端所需的内容。

4) 初始化气流

export AIRFLOW_HOME=~/airflow
airflow initdb

从这里开始,我模仿了您配置MySQL Server所遵循的步骤

5) 安装MySQL服务器

rpm -Uvh https://repo.mysql.com/mysql80-community-release-el7-3.noarch.rpm 
sed -i 's/enabled=1/enabled=0/' /etc/yum.repos.d/mysql-community.repo 
yum --enablerepo=mysql80-community install mysql-server 
systemctl start mysqld.service

6) 登录到MySQL并为Airflow配置数据库

mysql> CREATE DATABASE airflow CHARACTER SET utf8 COLLATE utf8_unicode_ci; 
mysql> CREATE user 'airflow'@'localhost' identified by 'Airflow123'; 
mysql> GRANT ALL privileges on *.* to 'airflow'@'localhost';

7) 更新Airflow配置文件(〜/ airflow / airflow.cfg)

sql_alchemy_conn = mysql://airflow:Airflow123@localhost:3306/airflow
executor = CeleryExecutor

8) 初始化气流

airflow initdb


 类似资料:
  • 本文向大家介绍在IDEA中安装scala、maven、hadoop遇到的问题小结,包括了在IDEA中安装scala、maven、hadoop遇到的问题小结的使用技巧和注意事项,需要的朋友参考一下 小白在通过IDEA使用scala、maven、hadoop遇到的问题 问题一:idea new 新文件没有scala;File->setting->Plugins,然后搜索scala插件安装。安装完成后重

  • 编辑:我刚刚意识到,即使是一个带有应用程序条的简单屏幕,也会发生这种情况 错误:任务“:app:checkdebugaarmadata”的执行失败 无法解析配置“:app:debugRuntimeClasspath”的所有文件。无法解析com。谷歌。firebase:firebase firestore:22.1.2。所需人员:项目:应用程序 无法解析com。谷歌。firebase:firebas

  • 我在Kubernetes环境中设置cadence时遇到了问题,详情如下 CADENCE_SERVER_IMAGE_VERSION:0.19.2 所有Cadence组件都在单个pod中运行 似乎Ringpop配置需要无头服务,但无头不适用于Istio 如果我只有一个Pod,那么一切都很好,但是一旦我创建了2个Pod,它们就开始争夺任务列表和碎片,这就是我的问题所在Ringpop配置:

  • 我使用的是JAX-RS注解,但我遇到了@BeanParam的问题。我用的是Wildfly-Swarm和maven。以下几行是我错误的一部分:

  • 主要内容:下载Hadoop,从命令提示符下载Hadoop,安装Hadoop,验证Hadoop安装,在Hadoop上安装SolrSolr可以和Hadoop一起使用。 由于Hadoop是用于处理大量数据,Solr帮助我们从这么大数据源中找到所需的信息。在本节中,我们将了解如何在系统上安装Hadoop。 下载Hadoop 下面给出了如何将Hadoop下载到系统中的步骤。 第1步 - 打开Hadoop主页 - www.hadoop.apache.org/。 单击链接版本,如下面的屏幕截图中突出显示。 它

  • 当我尝试运行SBT时,我得到以下消息: