1. 不要使用update操作,这个对数据库影响极大。用delete和insert操作来替换,
2. 对于源数据的字符类型,不能确认的类型一律采用varchar类型
量化自我和极简主义的窝藏点
1. 不要使用update操作,这个对数据库影响极大。用delete和insert操作来替换,
2. 对于源数据的字符类型,不能确认的类型一律采用varchar类型
环境: Ubuntu 14.04
在使用js库的时候老是有些包无法下载使用(又被墙了),最近发现淘宝开发一个NPM镜像。
地址如下:http://npm.taobao.org/
安装如下:
npm config set ca “”
sudo npm install -g cnpm –registry=https://registry.npm.taobao.org
安装包 leaflet-storage
sudo cnpm install napa
sudo cnpm install leaflet-storage
/usr/bin/env: node: No such file or directory
解决如下:sudo ln /usr/bin/nodejs /usr/bin/node
环境: Ubuntu 14.04
一直想用做图片方面的存储,之前有用过Riak CS,但布署,安装和管理挺麻烦的。后来知道ceph,了解它的途径是使用它了。先说下安装步骤:
wget -q -O- ‘https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc’ | sudo apt-key add –
echo deb http://ceph.com/debian-giant/ trusty main | sudo tee /etc/apt/sources.list.d/ceph.list
更新系统
sudo apt-get -q update
安装ceph布署工具
sudo apt-get install ceph-deploy
查询主机名
hostname
主机名为ubuntu
初始化节点信息
sudo ceph-deploy new ubuntu
安装ceph软件
sudo ceph-deploy install ubuntu
创建mon集群
sudo ceph-deploy mon create
启动mon进程
sudo ceph-deploy mon create-initial
安装OSD
sudo mkdir -p /data/osd
sudo ceph-deploy osd prepare ubuntu:/data/osd
sudo ceph-deploy osd activate ubuntu:/data/osd
查看ceph状态
sudo ceph health
增加一个元数据服务器
sudo ceph-deploy mds create ubuntu
查看进程
jerry@ubuntu:~$ ps ax | grep ceph
8863 ? Ssl 0:00 /usr/bin/ceph-mon –cluster=ceph -i ubuntu -f
9357 ? Ssl 0:01 /usr/bin/ceph-osd –cluster=ceph -i 0 -f
9496 ? Ssl 0:00 /usr/bin/ceph-mds –cluster=ceph -i ubuntu -f
9517 pts/0 S+ 0:00 grep –color=auto ceph
有三个ceph服务
查看状态
sudo ceph -s
使用ceph
启动ceph-rest-api
sudo ceph-rest-api -n client.admin &
通过浏览器查看 http://192.168.56.101:5000/
环境: CentOS 6.4, Myriad
Myriad是一个支持yarn的mesos框架 ,用于整合yarn和mesos资源管理。
编译如下:
git clone https://github.com/mesos/myriad.git
由于gradle被墙了(真不知道为什么要墙住这个软件,万恶的gfw),只好从 http://get.jenv.mvnsearch.org/download/gradle/gradle-2.4.zip 下载,将其放在myriad/gradle/wrapper目录下。修改gradle-wrapper.properties配置文件,
vi myriad/gradle/wrapper/gradle-wrapper.properties
#Wed Jun 10 10:58:12 CDT 2015
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
#distributionUrl=https\\\\://services.gradle.org/distributions/gradle-2.4-bin.zip
distributionUrl=gradle-2.4.zip
注释掉原有的distributionURL,并新增。
最后编译文件
cd myriad
./gradlew build
配置和启用myriad
复制相应库到目录下
sudo cp myriad/myriad-executor/build/libs/myriad-executor-runnable-0.0.1.jar /usr/local/libexec/mesos
sudo cp myrida/myriad-scheduler/build/libs/*.jar /usr/lib/hadoop-yarn/
编辑环境变量
sudo vi /etc/hadoop/conf/hadoop-env.sh
export MESOS_NATIVE_JAVA_LIBRARY=/usr/local/lib/libmesos.so
sudo vi /etc/hadoop/conf/yarn-site.xml
<property>
<name>yarn.nodemanager.resource.cpu-vcores</name>
<value>${nodemanager.resource.cpu-vcores}</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>${nodemanager.resource.memory-mb}</value>
</property>
<!–These options enable dynamic port assignment by mesos –>
<property>
<name>yarn.nodemanager.address</name>
<value>${myriad.yarn.nodemanager.address}</value>
</property>
<property>
<name>yarn.nodemanager.webapp.address</name>
<value>${myriad.yarn.nodemanager.webapp.address}</value>
</property>
<property>
<name>yarn.nodemanager.webapp.https.address</name>
<value>${myriad.yarn.nodemanager.webapp.address}</value>
</property>
<property>
<name>yarn.nodemanager.localizer.address</name>
<value>${myriad.yarn.nodemanager.localizer.address}</value>
</property>
<!– Configure Myriad Scheduler here –>
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>com.ebay.myriad.scheduler.yarn.MyriadFairScheduler</value>
<description>One can configure other scehdulers as well from following list: com.ebay.myriad.scheduler.yarn.MyriadCapacityScheduler, com.ebay.myriad.scheduler.yarn.MyriadFifoScheduler</description>
</property>
<property>
<description>A comma separated list of services where service name should only contain a-zA-Z0-9_ and can not start with numbers</description>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle,myriad_executor</value>
<!– If using MapR distribution
<value>mapreduce_shuffle,mapr_direct_shuffle,myriad_executor</value> –>
</property>
<property>
<name>yarn.nodemanager.aux-services.myriad_executor.class</name>
<value>com.ebay.myriad.executor.MyriadExecutorAuxService</value>
</property>
sudo vi /etc/hadoop/conf/mapred-site.xml
<!–This option enables dynamic port assignment by mesos –>
<property>
<name>mapreduce.shuffle.port</name>
<value>${myriad.mapreduce.shuffle.port}</value>
</property>
重启resource manager服务
sudo /etc/init.d/hadoop-yarn-resourcemanager restart
sudo /etc/init.d/hadoop-yarn-resourcemanager status
有两个函数
kafka.api.OffsetRequest.LatestTime
OffsetFetchRequest
0.8.2以前都是从zookeeper中读offset,从0.8.2之后从kafka中读取offset
环境: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”)
有种方法:
方法1:
ps ax | grep “postgres” | cut -f2 -d” ” | xargs kill
方法2:
ps ax | grep “postgres” | awk ‘{print $1}’ | xargs kill
环境:CentOS6.4, Postfix
最近搭建一个邮件服务器用于其它服务来访问,但使用过程中发现无法使用同一域名的邮件名来发送(例如user1@360.cn无法发送给user2@360.cn的邮件帐户),查看邮件日志并无报错记录:
sudo tail -n 100 /var/log/maillog
一直无解,只好换另一个域名的邮件帐号来发送(例user1@126.cn)
环境: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”
环境: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