1

我正在尝试使用本教程在我的 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,但由于程序做得太多,我不知道在哪里修复它。

4

3 回答 3

1

如果我们尝试使用捆绑的 postgresql db 在 Amazon Linux 下安装 Ambari 服务器,您应该会在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

于 2015-12-09T09:03:25.283 回答
1

不幸的是,还不能评论问题,所以在这里提出建议:请发布命令输出:

rpm -qa | grep ambari-server

cat /etc/*release

也很高兴知道哪个 postgres 版本可用

rpm -qa | grep postgres

我猜它与python版本有关,但现在只是猜测......

于 2015-07-15T02:04:33.467 回答
1

您可能已postgres安装在其他位置。它正在寻找的文件是pg_hba.conf 你为 ambari 选择了默认的 postgres db,它可能会在下面寻找它/var/lib/pgsql/data/

查看跟踪,它正在尝试重命名文件,但不确定该文件究竟是什么。
要真正知道哪个文件和位置,只需编辑 python 脚本:/usr/lib64/python2.6/fileinput.py

在代码上方添加一行以打印它正在寻找的文件:

print self._filename, ':', self._backupfilename                 
os.rename(self._filename, self._backupfilename)

注意:我遇到了类似的情况,它指向/var/lib/pgsql/data不存在的 (真实位置在 下/data/pghadoop)。所以我所做的是创建一个指向我真实位置的符号链接,即ln -s /data/pghadoop/ /var/lib/pgsql/data.

于 2015-09-23T17:32:43.877 回答