Spark standalone 模式控制应用使用的cpu和内存

环境:Spark 1.3.0

由于搭建的spark 是standalone模式,因而应用使用的内存和cpu数应由spark-env.sh的环境变量或应用程序的控制参数spark.executor.memory和spark.cores.max,不然应用将占用所有cpu数并使用其它应用无法获取cpu数,并且spark-submit中的控制参数(total-executor-cores, executor-memory无效。

环境变量:

SPARK_WORKER_MEMORY=”50g”
SPARK_WORKER_CORES=22

应用程序:

new SparkConf().set(“spark.executor.memory”, “5g”).set(“spark.cores.max”, “5”)

Postfix无法使用同一域名的邮件名来发送

环境:CentOS6.4, Postfix

最近搭建一个邮件服务器用于其它服务来访问,但使用过程中发现无法使用同一域名的邮件名来发送(例如user1@360.cn无法发送给user2@360.cn的邮件帐户),查看邮件日志并无报错记录:

sudo tail -n 100 /var/log/maillog

一直无解,只好换另一个域名的邮件帐号来发送(例user1@126.cn)

Mesos安装使用

环境:CentOS 6.4,  apache Mesos

Mesos采用与Linux kernerl相同的机制,只是运行在不同的抽象层次上。Mesos kernel利用资源管理和调度的API在整个数据中心或云环境中运行和提供引用(例如,Hadoop,Spark,Kafaka,Elastic Search)。即Apache Mesos在整个数据中心根据资源利用率和资源占用情况,在整个数据中心内进行任务的调度 。

安装如下:

1. 添加repository

sudo rpm -Uvh http://repos.mesosphere.com/el/6/noarch/RPMS/mesosphere-el-repo-6-2.noarch.rpm

2. 安装 mesos和marathon

yum -y install mesos marathon

3. 重启系统

sudo reboot

4. 查看服务

ps ax | grep mesos

1026 ? Ssl 5:37 java -Djava.library.path=/usr/local/lib:/usr/lib:/usr/lib64 -Djava.util.logging.SimpleFormatter.format=%2$s%5$s%6$s%n -Xmx512m -cp /usr/bin/marathon mesosphere.marathon.Main –zk zk://localhost:2181/marathon –master zk://localhost:2181/mesos
5579 ? Ssl 1:36 /usr/sbin/mesos-master –zk=zk://localhost:2181/mesos –port=5050 –log_dir=/var/log/mesos –quorum=1 –work_dir=/var/lib/mesos
5588 ? Ssl 3:26 /usr/sbin/mesos-slave –master=zk://localhost:2181/mesos –log_dir=/var/log/mesos
5611 ? S 0:00 logger -p user.info -t mesos-slave[5588]
5612 ? S 0:00 logger -p user.err -t mesos-slave[5588]
5629 ? S 0:00 logger -p user.info -t mesos-master[5579]
5630 ? S 0:02 logger -p user.err -t mesos-master[5579]
8317 pts/1 S+ 0:00 grep mesos

5. 启用mesos的WebUI:

http://localhost:5050

 

在图表界面启用服务

marathon的WebUI:

http://localhost:8080

 

在命令行中启用任务:

mesos-execute –master=”localhost:5050″ –name=”test-exec” –command=”echo ‘scale=10000; 4*a(1)’ | bc -l -q”

Linux安装postfix邮件服务器

环境:CentOS 6.4,  Postfix

由于需要借助邮件服务器来发送报表和出错信息,因而搭建一台邮件服务器成为必然。

步骤如下:

1.安装软件包
yum install postfix system-switch-mail

2.更改默认MTA为Postfix
/usr/sbin/alternatives –set mta /usr/sbin/sendmail.postfix

3.检查下是否将MTA改为Postfix了:
alternatives –display mta

4.配置Postfix主配置文件/etc/postfix/main.cf
指定postfix监听的网络端口为所有
inet_interfaces = all
指定运行postfix服务的邮件主机名称(FQDN名,通过hostname -f查到)
myhostname = quickstart.cloudera
指定运行Postfix服务的邮件主机的域名(无域名请注释)
#mydomain = xxx.xxx
指定由本台邮件主机寄出的每封邮件的邮件头中mail from的地址
myorigin = $mydomain
指定可接收邮件的主机名或域名,只有当发来的邮件的收件人地址与该参数值相匹配时,Postfix才会将该邮件接收下来。
mydestination = $myhostname, localhost.$mydomain, localhost, mail.$mydomain, $mydomain
设置可转发(Relay)哪些IP网段的邮件
mynetworks = 127.0.0.0/8, 192.168.10.0/24
设置可转发(Relay)哪些网域的邮件
relay_domains = $mydestination

5.重启Postfix服务
service postfix restart

6.测试邮件服务
telnet localhost 25

 

修改postfix的端口

修改 /etc/postfix/master.cf
注释掉这行
smtp inet n – n – – smtpd

然后加上中一样 2500 表示端口号
2500 inet n – n – – smtpd

将kafka的数据导入至ElasticSearch

环境:ElasticSearch 1.4.4, elasticsearch-river-kafka-1.2.1-plugin, kafka 0.8.1

安装ElasticSearch的kafka插件
.bin/plugin -install kafka-river -url https://github.com/mariamhakobyan/elasticsearch-river-kafka/releases/download/v1.2.1/elasticsearch-river-kafka-1.2.1-plugin.zip

增加元数据
curl -XPUT ‘localhost:9200/_river/kafka-river/_meta’ -d ‘
{
“type” : “kafka”,
“kafka” : {
“zookeeper.connect” : “xxx.xxx.xxx.xxx:2181,xxx.xxx.xxx.xxx:2181,xxx.xxx.xxx.xxx:2181”,
“zookeeper.connection.timeout.ms” : 10000,
“topic” : “flume-topic1”,
“message.type” : “json”
},
“index” : {
“index” : “kafka-index”,
“type” : “status”,
“bulk.size” : 3,
“concurrent.requests” : 1,
“action.type” : “index”,
“flush.interval” : “12h”
}
}’

重启ElasticSearch的服务

查看元数据状态
curl -XGET ‘http://localhost:9200/_river/kafka-river/_search?pretty’
curl -XGET ‘http://localhost:9200/_river/kafka-index/_search?pretty’
curl -XDELETE ‘localhost:9200/_river/kafka-river/’

在kafka生成json数据
bin/kafka-console-producer.sh –topic flume-topic1 –broker-list xxx.xxx.xxx.xxx:9092,xxx.xxx.xxx.xxx:9092,xxx.xxx.xxx.xxx:9092
{“id”:”123″, “name”:”hq”}
{“id”:”123″, “name”:”hq”}
{“id”:”123″, “name”:”hq”}
{“id”:”123″, “name”:”hq”}

查看最终数据
curl -XGET ‘http://localhost:9200/kafka-index/_search?pretty’