将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,所以个人而言有很多令人高兴的元素,很好地完成了升级。
虽然主要版本号增加了两个,但外观上几乎没有变化,这样可以升级而不用担心用户的负担,这一点也是令人高兴的地方。