我正在尝试使用本教程在我的ec2示例上设置hadoop。当我遇到以下错误时,我正在尝试设置ambari服务器:
[root@ip-xxx-xxx-xxx-xxx ec2-user]# ambari-server setup
Using python /usr/bin/python2.6
Setup ambari-server
Checking SELinux...
WARNING: Could not run /usr/sbin/sestatus: OK
Ambari-server daemon is configured to run under user 'root'. Change this setting [y/n] (n)?
Adjusting ambari-server permissions and ownership...
Checking iptables...
Checking JDK...
JCE Policy archive already exists, using /var/lib/ambari-server/resources/jce_policy-6.zip
Completing setup...
Configuring database...
Enter advanced database configuration [y/n] (n)?
Default properties detected. Using built-in database.
Checking PostgreSQL...
Configuring local database...
Connecting to the database. Attempt 1...
Configuring PostgreSQL...
Traceback (most recent call last):
File "/usr/sbin/ambari-server.py", line 4242, in <module>
main()
File "/usr/sbin/ambari-server.py", line 4061, in main
setup(options)
File "/usr/sbin/ambari-server.py", line 2129, in setup
retcode = configure_postgres()
File "/usr/sbin/ambari-server.py", line 863, in configure_postgres
configure_pg_hba_postgres_user()
File "/usr/sbin/ambari-server.py", line 841, in configure_pg_hba_postgres_user
for line in fileinput.input(PG_HBA_CONF_FILE, inplace=1):
File "/usr/lib64/python2.6/fileinput.py", line 253, in next
line = self.readline()
File "/usr/lib64/python2.6/fileinput.py", line 322, in readline
os.rename(self._filename, self._backupfilename)
OSError: [Errno 2] No such file or directory
我查过了很明显 os.rename
只是重命名一个文件,当这个错误发生时,它是因为我试图重命名的某个文件不存在。但是我不知道它想重命名什么文件和 readline
函数具有 self
作为其参数,因此问题可能不会在函数中开始。我知道一小部分python,但由于程序做的太多了,我不知道在哪里修复它。
3条答案
按热度按时间qojgxg4l1#
如果我们试图在amazonlinux下安装ambari服务器及其捆绑的postgresqldb,您应该会在
ambari-server
设置。第一个根本原因是启动脚本postgresql假定默认数据路径位于:
/var/lib/pgsql92/data
但是,我们看不到以下情况:/var/lib/pgsql92/data
相反,我们应该看到下面的内容:/var/lib/pgsql9
以下是解决方法:修复ambari绑定postgresql的默认数据路径:
sudo ln -s /var/lib/pgsql9 /var/lib/pgsql
编辑postgresql脚本# sudo vim /etc/init.d/postgresql
--评论它:#PGSUFFIX=92
--更改如下:PGDATA=/var/lib/pgsql${PGSUFFIX}/data
PGLOG=/var/lib/pgsql${PGSUFFIX}/pgstartup.log
收件人:PGDATA=/var/lib/pgsql/data
PGLOG=/var/lib/pgsql/pgstartup.log
djmepvbi2#
不幸的是,现在还不能评论问题,所以在这里提出建议:请发布命令输出:
rpm -qa | grep ambari-server
cat /etc/*release
此外,这将是很好的知道哪个postgres版本是可用的rpm -qa | grep postgres
我猜这和python版本有关,但现在只能猜测。。。xv8emn3q3#
很可能你有
postgres
安装在其他地方。它要找的文件是pg_hba.conf
您为ambari选择了默认的postgres db,它可能会在下面查找它/var/lib/pgsql/data/
查看跟踪,它试图重命名该文件,但不确定该文件到底是什么。要真正确定哪个文件和位置,只需编辑python脚本:
/usr/lib64/python2.6/fileinput.py
在代码上方添加一行以打印它要查找的文件:注意:我遇到了类似的情况,它指向
/var/lib/pgsql/data
,不存在(实际位置在/data/pghadoop
). 所以我所做的是创建一个符号链接到我的真实位置,即。ln -s /data/pghadoop/ /var/lib/pgsql/data.