将Redash 1.0.1升级至3.0.0版本

环境

使用Redash公式的AMI启动了v1.0.1的Redash,目前没有对配置值进行修改。

    • 現環境

redash-1-0-1-b2833-us-east-1 (ami-9ea12788)
Ubuntu 16.04.2 LTS (Xenial Xerus)
Redash 1.0.1+b2833

アップグレードしたバージョン

Redash 3.0.0+b3134

升级步骤

如何升级Redash · Redash 帮助中心

只需执行一个命令,因为它是在v1.0.0版本之后才写入公式。

cd /opt/redash/current
sudo bin/upgrade

尽管说只需要一个选项,以下是在升级和升级后遇到各种错误时的解决方法,但被宣称只需要一个命令即可完成。

◇ Redash周围的错误

属性错误:’模块’对象没有属性’SSL_ST_INIT’。

当运行升级脚本时出现的错误。
由于pyOpenSSL版本较低,需要升级。

sudo pip install pyOpenSSL==16.2.0

执行失败:sudo /etc/init.d/redash_supervisord restart

upgradeスクリプトの終わり際に出たエラー。
アップグレード自体は終わっているので再起動すればよいらしい。

在AMI上升级时出现“redash_supervisord: command not found”错误。

Athena在数据源的选项中找不到。

如果项目中缺少所需的库,则它不会显示在选项中,因此需要添加它。

sudo pip install -r requirements.txt
sudo pip install -r requirements_all_ds.txt

顺便说一句,在这里安装pyOpenSSL,因此在升级之前执行此操作可以减少遇到问题的次数。

◇ 关于Redis的错误

Redis启动时发生错误。
对Redis进行各种调优。

参考:Redis缓存服务器的性能提升技巧-我们的科技和方法

当前最大打开文件数为4096。为弥补ulimit低的问题,maxclients已经减少到4064。如果您需要更高的maxclients,请增加’ulimit -n’。

相关错误如下所示,使用3行进行了描述。
看起来是ulimit和maxclients的问题,需要分别修正。

# You requested maxclients of 10000 requiring at least 10032 max file descriptors.
# Redis can't set maximum open files to 10032 because of OS error: Operation not permitted.
# Current maximum open files is 4096. maxclients has been reduced to 4064 to compensate for low ulimit. If you need higher maxclients in
crease 'ulimit -n'.
*       soft    nofile  65535
*       hard    nofile  65535
root    soft    nofile  65535
root    soft    nofile  65535
fs.file-max = 65535
[Service]
Type=forking
ExecStart=/usr/bin/redis-server /etc/redis/redis.conf
PIDFile=/var/run/redis/redis-server.pid
TimeoutStopSec=0
Restart=always
User=redis
Group=redis
LimitNOFILE=65535
maxclients 60000

警告:无法强制执行 TCP 队列设置为 511,因为 /proc/sys/net/core/somaxconn 的值被设置为较低的 128。

sysctl -w net.core.somaxconn=65535

警告:overcommit_memory设置为0!在内存不足的情况下,后台保存可能失败。要解决这个问题,请在/etc/sysctl.conf文件中添加“vm.overcommit_memory = 1”,然后重启或运行命令“sysctl vm.overcommit_memory=1”使其生效。

vm.overcommit_memory = 1

警告:你的内核已启用透明大页(THP)支持。这会导致Redis出现延迟和内存使用问题。为了解决此问题,请以root权限运行命令’echo never > /sys/kernel/mm/transparent_hugepage/enabled’,并将其添加到/etc/rc.local文件中以保留设置在系统重启后仍然有效。在禁用THP后,必须重新启动Redis。

echo never > /sys/kernel/mm/transparent_hugepage/enabled

◇ 结尾处

当您完成了错误处理并重新启动实例(也可以重新启动每个进程),应该会启动升级后的Redash。
不知何故,初次启动需要很长时间,而且有时访问会超时,但只要耐心等待,它应该会显示出来。

redash/CHANGELOG.md 在主枝上的 getredash/redash

因为v3.0.0版本没有使用代理,可以将Athena作为数据源,还支持LDAP,所以个人而言有很多令人高兴的元素,很好地完成了升级。
虽然主要版本号增加了两个,但外观上几乎没有变化,这样可以升级而不用担心用户的负担,这一点也是令人高兴的地方。

bannerAds