All Posts

spark 配置及使用

spark配置 spark的配置文件放在conf目录下,默认会有类似xx.template的模板文件,去掉后缀.template就可以作为spark相应的配置文件。 spark 在阿里云上的配置 在一般的云服务器上一般会有两个ip地址,比如阿里云主机上,eth0默认是内部网络ip(用于阿里云主机之间通信),eth1才是外网可访问的ip地址。 spark会默认会使用8080端口作为UI端口号,并且绑定在0.0.0.0上,也就意味着外部网络可以通过 http://eth1_ip:8080访问spark UI界面, 如果要改变端口号,在conf/spark-env.sh文件中加入下面内容即可 export SPARK_MASTER_WEBUI_PORT=8090 如果当前指定的端口号被别的应用程序占用,spark自动会继续加1往下找到一个可用的端口号。 Spark的log级别设置 默认情况下,spark会在屏幕打印INFO级别以上的log,这些信息对于调试来说很重要,但是当spark程序正常运行时,可能不需要这么多信息,这个时候,可以通过修改 conf/log4j.properties: 在文件中找到该行: log4j.rootCategory=INFO, console 将其修改成 log4j.rootCategory=WARN, console

gevent安装

gevent的安装过程: 1. 安装greenlet依赖 sudo pip install greenlet 2. 安装gevent sudo pip install gevent 安装过程中,碰到下面错误: gevent/gevent.core.c:9:22: fatal error: pyconfig.h: No such file or directory #include "pyconfig.h" ^ compilation terminated. error: command 'x86_64-linux-gnu-gcc' failed with exit status 1 ---------------------------------------- Cleaning up... Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/gevent/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-11RdgV-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_root/gevent Storing debug log for failure in /root/.

python 相对路径文件的操作

python项目中,如果pyton代码需要访问某个外部文件,该文件位于代码文件的某个相对路径位置,我们可以在代码中使用相对路径来访问该文件。 比如图中的代码结构: sample.py文件中,如果要访问配置文件server.ini文件,就可以用 “../conf/server.ini”来进行访问。 但是经常的问题是,该python文件又被别的目录的python文件import引用, 此时相对路径就会出错。这是因为此时相对路径是基于当前运行脚本的路径来计算的, 如果被引用的python文件和调用文件不在同一个目录,则相对路径就会失效。 比如,我们的例子中, sample.py文件内容如下: import ConfigParser import os def read_conf(): file_path = '../conf/server.ini' config = ConfigParser.ConfigParser() config.read(file_path) return config.get('conf', 'value') if __name__ == '__main__': print read_conf() main.py内容如下: from utils.sample import read_conf print read_conf() 比如上图中,如果main.py调用read_conf时就会发现server.ini文件找不到。问题就处在运行main.py时,当前路径是main.py所在的文件夹,而sample.py中使用的相对 路径基于该文件夹就会找错位置。解决办法是在sample.py中使用文件绝对路径来访问server.ini文件, 但是我们又要根据脚本存放的当前位置来获得运行时的路径。这个时候 我们就需要用到python中的 __file__变量, 该内置变量存放了本python文件的当前路径信息,根据该变量,我们可以os.path.dirname(__file__)得到相应文件 的绝对路径。 在sample.py中file_path变量做如下修改: file_path = '../conf/server.ini' --> file_path = os.path.join(os.path.dirname(__file__) + '/../conf/server.ini') 注意 路径前加 ‘/’,否则文件路径会不完整。 参考资料: http://stackoverflow.com/questions/918154/relative-paths-in-python http://stackoverflow.com/questions/1270951/python-how-to-refer-to-relative-paths-of-resources-when-working-with-code-repo ​

mongodb从excel中导入数据

mongoimport工具可以从指定的CSV, TSV 或者 JSON数据中导入到mongoDB。 而excel表格可以直接另存为csv格式。 $ mongoimport connected to: 127.0.0.1 no collection specified! Import CSV, TSV or JSON data into MongoDB. options: -h [ --host ] arg mongo host to connect to ( <set name>/s1,s2 for sets) -u [ --username ] arg username -p [ --password ] arg password -d [ --db ] arg database to use -c [ --collection ] arg collection to use (some commands) -f [ --fields ] arg comma separated list of field names e.

如何创建swap分区

在安装运行某些软件的时候,有时会碰到一些内存不足的情况,这个时候一个办法就是使用swap分区来虚拟出额外的内存空间。 我们主要使用了swapon这个命令: root@iZ23om0selfZ:~# swapon -h Usage: swapon \[options] \[<spec>] Options: -a, --all enable all swaps from /etc/fstab -d, --discard discard freed pages before they are reused -e, --ifexists silently skip devices that do not exis -f, --fixpgsz reinitialize the swap space if necessary -h, --help display help and exit -p, --priority <prio> specify the priority of the swap device. -s, --summary display summary about used swap devices and exit -v, --verbose verbose mode -V, --version display version and exit The <spec> parameter: -L <label> LABEL of device to be used -U <uuid> UUID of device to be used LABEL=<label> LABEL of device to be used UUID=<uuid> UUID of device to be used <device> name of device to be used <file> name of file to be used 具体方法如下: 1.

emacs使用及配置

自己的emacs配置: https://github.com/ZackZK/emacs-config