31

JobConf代表一个Map/Reduce作业的配置。

JobConf是用户向Hadoop框架描述一个Map/Reduce作业如何执行的主要接口。框架会按照JobConf描述的信息忠实地去尝试完成这个作业,然而:

•一些参数可能会被管理者标记为 final,这意味它们不能被更改。
•一些作业的参数可以被直截了当地进行设置(例如: setNumReduceTasks(int)),而另一些参数则与框架或者作业的其他参数之间微妙地相互影响,并且设置起来比较复杂(例如: setNumMapTasks(int))。
通常,JobConf会指明Mapper、Combiner(如果有的话)、 Partitioner、Reducer、InputFormat和 OutputFormat的具体实现。JobConf还能指定一组输入文件 (setInputPaths(JobConf, Path…) /addInputPath(JobConf, Path)) 和(setInputPaths(JobConf, String) /addInputPaths(JobConf, String)) 以及输出文件应该写在哪儿 (setOutputPath(Path))。

JobConf可选择地对作业设置一些高级选项,例如:设置Comparator; 放到DistributedCache上的文件;中间结果或者作业输出结果是否需要压缩以及怎么压缩; 利用用户提供的脚本(setMapDebugScript(String)/setReduceDebugScript(String)) 进行调试;作业是否允许预防性(speculative)任务的执行 (setMapSpeculativeExecution(boolean))/(setReduceSpeculativeExecution(boolean)) ;每个任务最大的尝试次数 (setMaxMapAttempts(int)/setMaxReduceAttempts(int)) ;一个作业能容忍的任务失败的百分比 (setMaxMapTaskFailuresPercent(int)/setMaxReduceTaskFailuresPercent(int)) ;等等。

当然,用户能使用 set(String, String)/get(String, String) 来设置或者取得应用程序需要的任意参数。然而,DistributedCache的使用是面向大规模只读数据的。

Tags:

作者:Jock

26

Apache中URL的Rewrite
现在讲究面向搜索引擎的开发。当我们使用jsp时,搜索引擎的收藏效果不是很好,所以我们可以转义这样的URL。比如:我们可以借助rewrite使用/blog/user/0.html来访问/blog/user/blog_show.jsp?userid=0使搜索引擎更容易搜集到我们的网站信息。具体配置很简单,介绍如下

首先:还是打开%Apache2%\conf文件夹,找到http.conf文件,搜索rewrite找到#LoadModule rewrite_module modules/mod_rewrite.so,将它前面的#去掉。
然后在你要使用的VirtualHost中加入

RewriteEngine   on
#打开rewrite引擎
RewriteLog       logs/rewrite.log
#rewrite日志,可选配置,建议使用
RewriteLogLevel 3
#rewrite日志等级,默认为0不记录,所以只要使用日志,就要配置,3就全记录了,可以更大但没有什么意义。
RewriteRule     /blog/user/(.+)\.html$ /blog/user/blog_show.jsp?userid=$1  [PT ]
#转义的规则,使用正则表达式(我也不熟,自己去研究吧),我上面的例子是将/blog/user/*.html的URL转义成/blog/user.blog_show.jsp?userid=*。
注意后面的 PT 这是保证你这样转义之后Apache能将它转给Tomcat否则Apache会自己处理这个链接,造成什么也得不到。
注意 PT ,[R]的区别,使用 PT 在客户地址栏的显示还是*.html,如果将 PT 换成[R]则地址栏也会显示成.jsp

Tags: ,

作者:Jock

29

一、struts2。

跟webwork配置基本一致,主要是struts2.properties和struts.xml 2个配置文件,我的struts2.properties如下配置:

struts2.properties 更多详细内容 »

Tags: , , ,

作者:Jock

29

1.安装rsync。
rsync的编译安装非常简单,只需要以下简单的几步:
[root@www rsync-2.4.6]# ./configure
[root@www rsync-2.4.6]# make
[root@www rsync-2.4.6]# make install
但是需要注意的是必须在服务器A和B上都安装rsync,其中A服务器上是以服务器模式运行rsync,而B上则以客户端方式运行rsync。这样在web服务器A上运行rsync守护进程(/usr/bin/rsync –daemon),在B上定时运行客户程序来备份web服务器A上需要备份的内容。

2.配置服务器端/etc/rsyncd.conf,例如:
uid = nobody
gid = nobody
max connections = 30
timeout = 1800
#use chroot = yes
hosts allow =192.168.41.133 192.168.41.127 192.168.41.128 192.168.41.178 61.135.132.17 192.168.41.163 192.168.41.164 192.168.41.126 192.168.132.26
# hosts above  abc4
syslog facility = local7
pid file = /etc/rsyncd.pid


[rsync_content]
       path=/usr/local/apache/htdocs
       comment = html
       list    = no


[rsync_keywords]
       path=/usr/local/apache/htdocs/data
       comment =       data
       read only=      no
       list    =       no

Tags: ,

作者:堕落天使

16

  1.配置根Logger,其语法为:

  log4j.rootLogger = [ level ] , appenderName, appenderName, …

  其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。

  2.配置日志信息输出目的地Appender,其语法为:

  log4j.appender.appenderName = fully.qualified.name.of.appender.class
  log4j.appender.appenderName.option1 = value1
  …
  log4j.appender.appenderName.option = valueN

  其中,Log4j提供的appender有以下几种:
  org.apache.log4j.ConsoleAppender(控制台),
  org.apache.log4j.FileAppender(文件),
  org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
  org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
  org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

  3.配置日志信息的格式(布局),其语法为:

  log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
  log4j.appender.appenderName.layout.option1 = value1
  …
  log4j.appender.appenderName.layout.option = valueN

  其中,Log4j提供的layout有以下几种:
  org.apache.log4j.HTMLLayout(以HTML表格形式布局),
  org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
  org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
  org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下
%c 输出日志信息所属的类的全名
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
%F 输出日志信息所属的类的类名
%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
%m 输出代码中指定的信息,如log(message)中的message
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r 输出自应用启动到输出该日志信息所耗费的毫秒数
%t 输出产生该日志事件的线程名 更多详细内容 »

Tags: ,

作者:堕落天使

09

有待慢慢补充一些常用的
 <welcome-file-list>
   <welcome-file>login.jsp</welcome-file>
 </welcome-file-list>
 <session-config>
   <session-timeout>30</session-timeout>
 </session-config>
 <error-page>
   <error-code>500</error-code>
   <location>/error.jsp</location>
 </error-page>
 <error-page>
   <error-code>404</error-code>
   <location>/404.jsp</location>
 </error-page>

Tags: ,

作者:堕落天使

07

<Directory   "/apache/htdocs">  
   
         Options   Indexes   FollowSymLinks   MultiViews   ExecCGI  
 把Indexes去掉  
 改成Options   FollowSymLinks   MultiViews   ExecCGI  

   
   
         AllowOverride   None  
   
         Order   allow,deny  
         Allow   from   all  
 </Directory>  

Tags: ,

作者:堕落天使

07

Resin2.X禁止访问目录列表的配置方法如下:
打开resin.conf文件
在<web-app>

</web-app>
之间加入如下配置:
<directory-servlet id='false'/>

Resin3.X禁止访问目录列表的配置方法如下:
打开resin.conf文件
< servlet servlet-name ="directory"
servlet-class ="com.caucho.servlets.DirectoryServlet" />

将此配置项注释掉:

<!–
< servlet servlet-name ="directory"
servlet-class ="com.caucho.servlets.DirectoryServlet" />
–>

Tags: ,

作者:堕落天使

十二 18

我们建立的是tes1.jsp.com test2.jsp.com 两个虚拟主机

vi /usr/java/httpd2/conf/httpd.conf
复制如下内容到httpd.conf里
NameVirtualHost 192.168.0.1  虚拟主机建立所在的IP
<VirtualHost 199.199.0.1>
   DocumentRoot /home/jsp1/  文件所在目录
   ServerName tes1.jsp.com  访问的域名
</VirtualHost>
VirtualHost 192.168.0.1>
   DocumentRoot /home/jsp2/
   ServerName test2.jsp.com
</VirtualHost>
vi /usr/java/resin/conf/resin.conf
查找如下代码并修改:

   <host id="" root-directory=".">
     <!–
        – configures an explicit root web-app matching the
        – webapp's ROOT
       –>
     <web-app id='/' document-directory="/usr/java/httpd2/htdocs"/>
   </host>
<host id='tes1.jsp.com'>
<web-app id='/' document-directory="/home/jsp1"/>
</host>
<host id='tes2.jsp.com'>
<web-app id='/' document-directory="/home/jsp2"/>
</host>
保存从启apache和resin
tes1.jsp.com  和tes2.jsp.com 虚拟主机可以运行了


可以做如下测试http://localhost/caucho-status/
可以看到测试面上有
Virtual Host: tes1.jsp.com:80
Virtual Host: tes2.jsp.com:80
证明JSP虚拟主机工作很正常

Tags: , ,

作者:Jock

Switch to our mobile site