创建 oozie 数据库架构时出错
Posted
技术标签:
【中文标题】创建 oozie 数据库架构时出错【英文标题】:error creating oozie database schema 【发布时间】:2013-05-10 13:04:52 【问题描述】:我正在尝试在 RHEL5 上使用 RPM 设置 oozie (cdh4)。当我使用sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create -run
运行命令在 mysql 数据库中设置模式时,它给了我一个错误,指出“没有这样的文件或目录”。您可以查看相同here 的日志。
如果我尝试运行命令以使用sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create -sqlfile oozie-create.sql
创建脚本,它会给我一个错误,指出“无法连接到数据库”。您可以查看相同here 的日志。
我关注cdh4 installation site for oozie。
请帮我找出可能的错误。提前致谢。
【问题讨论】:
是否所有 Temp 目录都存在 (/var/lib/oozie
),oozie 用户是否有权写入/执行该文件夹?
嗨@Chris!感谢您在这里尝试帮助我。 Here 是我在您提到的目录中的文件列表。您提到的目录及其内容属于 oozie 用户和组,我正在尝试使用相同的用户运行它,如上述指南中所述。
【参考方案1】:
您在尝试创建 init sql 文件时似乎遇到了某种权限问题。产生错误的 oozie cdh4 的代码是 this:
String sqlFile = (commandLine.hasOption(SQL_FILE_OPT))
? commandLine.getOptionValue(SQL_FILE_OPT)
: File.createTempFile("ooziedb-", ".sql").getAbsolutePath();
所以你可以尝试传入 SQL_FILE_OPT 并命名一个你知道存在的路径,并且用户 oozie 也可以编写。您已经在第二个命令行中完成了,但我会完全限定 sql 文件的路径,并将其放在您知道可以写入的 oozie 的位置(/tmp,实际上应该是 File.createTempFile( ..) 创建文件)。
sudo -u oozie touch /tmp/oozie-create.sql
sudo -u oozie /usr/lib/oozie/bin/ooziedb.sh create \
-sqlfile /tmp/oozie-create.sql
【讨论】:
嗨@Chris!我也尝试过这种方式,但仍然没有运气。我以某种方式相信我的 java home 存在一些问题,但是当我执行 echo 时,它指向了正确的路径。有什么方法可以通过将路径作为参数传递来显式覆盖路径?【参考方案2】:就我而言,我的 db oozie 是空的,所以我删除了 db,然后重新创建它! $ mysql -u root -p 输入密码:******
mysql> 创建数据库 oozie; 查询正常,1 行受影响(0.03 秒)
mysql> 将 oozie.* 上的所有权限授予由 'oozie' 标识的 'oozie'@'localhost'; 查询正常,0 行受影响(0.03 秒)
mysql> 将 oozie.* 上的所有权限授予由 'oozie' 标识的 'oozie'@'%'; 查询正常,0 行受影响(0.03 秒)
mysql> 退出 再见
然后
验证数据库连接 完毕 检查数据库架构不存在 完毕 检查 OOZIE_SYS 表不存在 完毕 创建 SQL 架构 完毕 创建 OOZIE_SYS 表 完毕 设置 MySQL MEDIUMTEXT 标志 完成
已为 Oozie 版本“3.3.2-cdh4.7.0”创建了 Oozie DB
【讨论】:
以上是关于创建 oozie 数据库架构时出错的主要内容,如果未能解决你的问题,请参考以下文章