2017年11月29日星期三

centos防火墙

centos增加防火墙规则:
getenforce
firewall-cmd --state
firewall-cmd --add-service mongodb
firewall-cmd --add-port 27017/tcp
firewall-cmd --add-port 27017/tcp --permanent

2017年11月17日星期五

tensorflow serving的问题

用1.2.0或者以上tensorflow版本训练导出的模型,使用serving 0.6.0版本编译出的tensorflow_model_server有问题,如果代码中有用到beam search decode时运行tensorflow_model_server加载模型会报错:Not found: Op type not registered 'GatherTree'。

但是通过apt-get install的1.3.0或者1.4.0版本的tensorflow_model_server,在我的台式机上加载几十个模型就卡死,应该是个bug。用我之前旧版本编译出来的model_server就没有这种问题。

最早的时候我用的是 636e05b2d90feb7d868e29e23861e0a530e51682 到这个commit的master分支的代码编译出来的不会出现上述两种问题,注意在编译的时候加上编译参数:bazel build -c opt --copt=-msse4.1 --copt=-msse4.2 --copt=-mavx --copt=-mavx2 --copt=-mfma --copt=-O3 tensorflow_serving/model_servers:tensorflow_model_server
否则编译出来的tensorflow_model_server计算特别慢,cpu占用也很高。

2017年11月8日星期三

linux shell中获取正在执行脚本的路径

script_path=$(cd `dirname $0`; pwd)
cd ${script_path}
显示的就是正在执行的脚本所在的文件夹的绝对路径

2017年11月2日星期四

pyspark sql使用udf后yarn模式运行卡住

https://stackoverflow.com/questions/35157322/spark-dataframe-in-python-execution-stuck-when-using-udfs

我们用的pyspark 2.1.0版本,udf还有各种各样的问题,而且性能很差,只能转成rdd再做操作?

pyspark sql user defined function

参考https://docs.databricks.com/spark/latest/spark-sql/udf-in-python.html

举例:
>>> a = [{'a': 'a', 'b': 1}, {'a': 'aa', 'b': 2}]
>>> df = spark.createDataFrame(a)
[Row(a=u'a', b=1), Row(a=u'aa', b=2)]                                         
>>> def func(str):
...   return len(str) > 1
...
>>> from pyspark.sql.functions import udf
>>> from pyspark.sql.types import BooleanType
>>> func_udf = udf(func, BooleanType())
>>> df2 = df.filter(func_udf(df['a']))
>>> df2.collect()
[Row(a=u'aa', b=2)]

2017年11月1日星期三

解决github clone速度特别慢

参考http://www.jianshu.com/p/5e74b1042b70

vim ~/.gitconfig,添加:
[http]
    proxy = socks5://127.0.0.1:8080
[https]
    proxy = socks5://127.0.0.1:8080

使用 ssh -D 127.0.0.1:8080 username@服务器名 命令开启sock5端口转发。