图片 3

myeclipse中文乱码,Appweb配置详解

关于appweb配置详解

Hadoop就是解决了大数据(大到一台计算机无法进行存储,一台计算机无法在要求的时间内进行处理)的可靠存储和处理。

myeclipse乱码,myeclipse中文乱码

一.将整个project设置编码UTF-8(UTF-8可以最大的支持国际化) 
windows->Preferences->general->Workspace->Text file encoding->Other框中的Text file encoding改为UTF-8。 
二.对java源文件编码设置为UTF-8. 
windows->Preferences->general->Context Types->Text,选择Java Source File,在下面的Default encoding输入框中输入UTF-8,点Update,则设置Java文件编码为UTF-8

 

1、工作空间编码 

         

2.*.java源文件的编码格式

图片 1

 

一.将整个project设置编码UTF-8(UTF-8可以最大的支持国际化)
windows-Preferences-general-Workspace-Textfileencoding-Other框…

通常我们使用appweb.conf作为其默认的配置文件,当然也可以通过编程的方式调用API接口来进行配置。我将站在一个使用者的角度,对appweb.conf配置进行分析

HDFS,在由普通PC组成的集群上提供高可靠的文件存储,通过将块保存多个副本的办法解决服务器或硬盘坏掉的问题。

我们在运行时可以指定定制的配置文件:

MapReduce,通过简单的Mapper和Reducer的抽象提供一个编程模型,可以在一个由几十台上百台的PC组成的不可靠集群上并发
地,分布式地处理大量的数据集,而把并发、分布式(如机器间通信)和故障恢复等计算细节隐藏起来。而Mapper和Reducer的抽象,又是各种各样的
复杂数据处理都可以分解为的基本元素。这样,复杂的数据处理可以分解为由多个Job(包含一个Mapper和一个Reducer)组成的有向无环图
(DAG),然后每个Mapper和Reducer放到Hadoop集群上执行,就可以得出结果。

appweb –config myConfigFile.conf

用MapReduce统计一个文本文件中单词出现的频率的示例WordCount请参见:WordCount

appweb的配置与apache配置兼容,方便使用apache的管理者。

  • Hadoop
    Wiki,如果对MapReduce不恨熟悉,通过该示例对MapReduce进行一些了解对理解下文有帮助。在MapReduce中,Shuffle是
    一个非常重要的过程,正是有了看不见的Shuffle过程,才可以使在MapReduce之上写数据处理的开发者完全感知不到分布式和并发的存在。

appweb.conf中每一行一条指令,比较高效,指令的顺序没有关系,另外也不区分大小写,以“#”表示注释

广义的Shuffle是指图中在Map和Reuce之间的一系列过程。

一个简单的配置:
    Home “.”
    ErrorLog error.log
    ServerName
    Documents “/var/web”
    Listen 7777
    LoadModule fileHandler mod_file
    AddHandler fileHandler html
配置文件一般由几块组成:
    全局指令
    路由模块
    虚拟主机模块
路由模块   
    <Route “/myapp/”>
        SetHandler esp
    </Route>
虚拟主机模块
    NameVirtualHost 206.148.96.56   
    <VirtualHost 206.148.97.56>
        Documents /var/www/mycorp
        ServerName www.myServer.com
        …
    </VirtualHost>   
我们来详解一下VirtualHost
简单的说:它能让你以一台电脑创建多个网站。
NameVirtualHost指令能让你用一个IP绑定多个域名
NameVirtualHost 206.148.97.56
<VirtualHost 206.148.97.56>
    ServerName www.acme.com
    Documents /var/www/acme
    …
</VirtualHost>
<VirtualHost 206.148.97.56>
    ServerName www.coyote.com
    Documents /var/www/coyote
    …
</VirtualHost>
Include指令
可以包含其他文件
    Include myconfig.conf
    Include conf/applications/*.conf
条件指令
    <if FILE_MODULE>
    LoadModule fileHandler mod_file
    </if>
   
appweb.conf
{
    Home “./etc”
    ErrorLog error.log
    ServerName
    Documents “./webServer”
    Listen 8080
    DirectoryIndex index.html
   
    Cache                  1hour
    ExitTimeout            10secs
    RequestParseTimeout    30secs
    InactivityTimeout      30secs
    RequestTimeout          1min
    SessionTimeout          30mins
    MemoryPolicy            restart
    LimitBuffer            32K
    LimitCache              1MB
    LimitCacheItem          512K
    LimitChunk              32K
    LimitClients            20
    LimitFiles              0
    LimitKeepAlive          400
    LimitMemory            50MB
    LimitProcesses          100
    LimitRequests          400
    LimitRequestsPerClient  200
    LimitRequestBody        40MB
    LimitRequestForm        32K
    LimitRequestHeader      128K
    LimitRequestHeaderLines 128
    LimitResponseBody      6GB
    LimitUpload            10MB
    LimitUri                64K
    LimitWorkers            50
   
    UploadAutoDelete        on
   
    SetConnector            netConnector
    AddOutputFilter        rangeFilter
    AddOutputFilter        chunkFilter
    AddInputFilter          uploadFilter
    AddHandler              fileHandler html gif jpeg jpg png pdf ico
css js “”
    <if CGI_MODULE>
    LoadModule cgiHandler libmod_cgi
    AddHandler cgiHandler exe cgi cgi-nph bat cmd pl py
    ScriptAlias /cgi-bin/ “${SERVER_ROOT}/cgi-bin/”
    Action application/x-perl /usr/bin/perl
    Action application/x-python /usr/bin/python
    Action application/x-lua /usr/bin/lua
    Action application/x-ruby /usr/bin/ruby
    Action application/x-php /usr/local/bin/php-cgi
    <else>
    AddHandler errorHandler exe cgi cgi-nph bat cmd pl py
    </if>

Hadoop的局限和不足但是,MapRecue存在以下局限,使用起来比较困难。

    <if CGI_MODULE>
    ScriptAlias /MyScripts/ “${SERVER_ROOT}/cgi-bin/”
    ScriptAlias /YourScripts/ “${DOCUMENT_ROOT}/”
    </if>
}   
   
appweb4.3.4支持的所有配置指令:
AccessLog                                Define the location and format
of the access log.
Action                                        CGI program to handle
specific content.
AddInputFilter                        Add an input filter to the
processing pipeline.
AddHandler                                Add a handler for processing
given file extensions.
AddLanguageSuffix                Add a supported language and filename
suffix to use for this language.
AddLanguageDir                        Add a per-language content
directory.
AddOutputFilter                    Add an output filter to the
processing pipeline.
AddType                                    Add a MIME type
specification.
Alias                                        Map URLs to directories.
Allow                                        Define which servers can
access content.
AuthDigestQop                        Define the quality of protection
for Digest Authentication.
AuthGroupFile                        Define the name of the user group
file for authentication.
AuthStore                                Define the authentication
method: “file” or “system”.
AuthName                                    Define the realm of users to
be permitted access to this set of documents.
AuthType                                    Define the type of
authentication to use: Basic or Digest.
AuthUserFile                            Define the file of user names.
Cache                                        Configure client and server
side caching.
Chroot                                        Define the directory for a
“chroot jail” in which Appweb will execute.
Compress                                    Control the use of
compressed content.
Condition                                Define a conditional test for a
route.
DefaultLanguage                    Set the default language to use for a
route.
Deny                                            Define which servers
cannot access content.
DirectoryIndex                        Define the default index file to
service for directory requests.
Documents                                Directory containing web
content.
EjsAlias                                    Define an Ejscript
application alias.
EjsStartup                                Define an Ejscript application
script.
EjsWorkers                                Define the maximum number of
worker threads.
ErrorDocument                        Define an error document to
serve.
ErrorLog                                    Define the location and
format of the error log.
EspApp                                        Define an ESP application
with required Routes.
EspCompile                                Define the compilation
command.
EspDb                                        ESP Database
configuration.
EspDir                                        Set the directory for ESP
MVC components.
EspEnv                                        Set an environment
variable for ESP compilation commands.
EspKeepSource                        Control the preservation of
intermediate source code.
EspLink                                    Define the link command.
EspLoad                                    Load an application.
EspResource                            Create routes for a resource.
EspResourceGroup                    Create route for a group of
resources.
EspRoute                                    Create a new route for ESP
controllers and pages.
EspRouteSet                            Define a package of routes for
ESP.
EspShowErrors                        Show server side errors back to the
client.
EspUpdate                                Control whether updated ESP
source code triggers reloading.
ExitTimeout                            Define the timeout period to wait
for requests to complete before exiting or restarting.
Header                                        Define a HTTP header test
for a route.
GroupAccount                            Define the O/S account group
used by Appweb.
Home                                            Define the directory
containing configuration files.
IgnoreEncodingErrors            Ignore UTF-8 encoding errors in
WebSockets
IndexOptions                            Define the options for directory
listings.
IndexOrder                                Define the order of processing
directory index options.
InactivityTimeout                Maximum request and connection
inactivity duration.
LimitBuffer                            Set the maximum buffer size for
pipeline stages.
LimitCache                                Set the maximum size of the
Appweb cache for responses and sessions.
LimitCacheItem                        Set the maximum size of a single
item in the Appweb cache.
LimitChunk                                Set the maximum transfer chunk
encoding size.
LimitClients                            Set the limit of simultaneous
clients.
LimitFiles                                Set the maximum number of open
files or sockets on a Unix system.
LimitKeepAlive                        Define the re-use count for a
connection.
LimitMemory                            Limit the total memory usage of
Appweb. This is a hard limit.
LimitProcesses                        Maximum number of CGI processes to
spawn.
LimitRequests                        Set the limit of simultaneous
requests.
LimitRequestsPerClient        Set the limit of simultaneous requests for
a single IP address.
LimitRequestBody                    Set the maximum size of the incoming
request body.
LimitRequestForm                    Set the maximum size of the incoming
request form data.
LimitRequestHeader                Set the maximum total request header
size.
LimitRequestHeaderLines    Set the maximum number of request header
lines.
LimitResponseBody                Set the maximum response body size.
LimitUpload                            Set the maximum file upload
size.
LimitUri                                    Set the maximum size of a
request URI.
LimitWebSocketsFrame            Limit the maximum size of a Web Sockets
Message Frame.
LimitWebSocketsMessage        Limit the maximum size of a Web Sockets
Message.
LimitWebSocketsPacket        Limit the maximum size of a Web Sockets
Message Packet.
LimitWorkers                            Limit the maximum size of a Web
Sockets Message.
Listen                                        Define the IP address and
port on which to listen.
LoadModule                                Load an Appweb module.
LoadModulePath                        Specify a list of directories to
search for modules.
LogRoutes                                Display the route table in the
error log.
Log                                            Control the tracing of
HTTP events.
MemoryPolicy                            Define the action to take when
memory is depleted.
Methods                                    The acceptable HTTP method
verbs.
NameVirtualHost                    Nominate an IP address for name-based
virtual hosting.
Options                                    Control directory listing
options.
Order                                        Specify the order in which
the allow and deny directives apply.
Param                                        Define a route step to test
request param values.
Prefix                                        Define a route prefix to
trim from the URI.
Protocol                                    Define the HTTP protocol to
use.
PutMethod                                Control use of the HTTP PUT
method.
Redirect                                    Redirect requests to a new
target.
RequestParseTimeout            Maximum time to parse a request or
response HTTP headers.
RequestTimeout                        Maximum request duration.
Require                                    Define which authenticated
users will be permitted access to content.
ResetPipeline                        Reset the input and output pipeline
for a block.
Route                                        Define a block of
directives to apply to a URL route.
RouteName                                Set the route name.
ScriptAlias                            Map a URL to a directory for CGI
processing.
SetConnector                            Set the connector stage for a
block.
SetHandler                                Set the handler to process
requests.
Source                                        Define source code for the
handler to use.
StartWorkers                            Number of worker threads to
pre-allocate and preserve.
Target                                        Define the target action
to take for a route to serve a response to the client.
ThreadStack                            Stack size for each thread.
ServerName                                Define a name for the server
to use for itself.
SessionTimeout                        Maximum session state inactivity
duration.
SSLCACertificateFile            Define the location of the client
certificate file.
SSLCertificateFile                Define the server certificate.
SSLCertificateKeyFile        Define the server’s private key.
SSLCipherSuite                        Set the cipher suite to use for
SSL.
SSLEngine                                Enable SSL processing for a
block.
SSLProtocol                            Set the SSL protocols to
enable.
SSLVerifyClient                    Verify the identity of the client
certificate.
SSLVerifyIssuer                    Verify the identity of the issuer or
the client certificate.
Target                                        Define a route target.
TraceMethod                            Control whether the HTTP Trace
method is enabled.
TypesConfig                            Specify the location of the MIME
types file.
UnloadModule                            Unload an Appweb module.
Update                                        Define an update
modification for a route.
UploadDir                                Set the directory for uploaded
files.
UploadAutoDelete                    Control if files are auto-deleted
after uploading.
UserAcount                                Define the O/S user account
used by Appweb.
VirtualHost                            Create a directory block for
virtual hosting for an IP address.

抽象层次低,需要手工编写代码来完成,使用上难以上手。

Appweb
的详细介绍
:请点这里
Appweb
的下载地址
:请点这里

只提供两个操作,Map和Reduce,表达力欠缺。

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-12/125691.htm

一个Job只有Map和Reduce两个阶段(Phase),复杂的计算需要大量的Job完成,Job之间的依赖关系是由开发者自己管理的。

图片 2

处理逻辑隐藏在代码细节中,没有整体逻辑中间结果也放在HDFS文件系统中ReduceTask需要等待所有MapTask都完成后才可以开始

时延高,只适用Batch数据处理,对于交互式数据处理,实时数据处理的支持不够

对于迭代式数据处理性能比较差

比如说,用MapReduce实现两个表的Join都是一个很有技巧性的过程,

图片 3

如下图所示:(图片来源:Real World
Hadoop)因此,在Hadoop推出之后,出现了很多相关的技术对其中的局限进行改进,如Pig,Cascading,JAQL,OOzie,Tez,Spark等。

Apache SparkApache
Spark是一个新兴的大数据处理的引擎,主要特点是提供了一个集群的分布式内存抽象,以支持需要工作集的应用。

这个抽象就是RDD(Resilient Distributed
Dataset),RDD就是一个不可变的带分区的记录集合,RDD也是Spark中的编程模型。Spark提供了RDD上的两类操作,转换和动作。转换
是用来定义一个新的RDD,包括map, flatMap, filter, union, sample, join,
groupByKey, cogroup, ReduceByKey, cros, sortByKey,
mapValues等,动作是返回一个结果,包括collect, reduce, count, save,
lookupKey。

Spark的API非常简单易用,Spark的WordCount的示例如下所示:

val spark = new SparkContext(master, appName, [sparkHome], [jars])

val file = spark.textFile(“hdfs://…”)

val counts = file.flatMap(line => line.split(” “))

.map(word => (word, 1))

.reduceByKey(_ + _)

counts.saveAsTextFile(“hdfs://…”)

其中的file是根据HDFS上的文件创建的RDD,后面的flatMap,map,reduceByKe都创建出一个新的RDD,一个简短的程序就能够执行很多个转换和动作。

在Spark中,所有RDD的转换都是是惰性求值的。RDD的转换操作会生成新的RDD,新的RDD的数据依赖于原来的RDD的数据,每个RDD
又包含多个分区。那么一段程序实际上就构造了一个由相互依赖的多个RDD组成的有向无环图(DAG)。并通过在RDD上执行动作将这个有向无环图作为一个
Job提交给Spark执行。

例如,上面的WordCount程序就会生成如下的DAGscala>
counts.toDebugStringres0: String =MapPartitionsRDD[7] at reduceByKey
at:14 (1 partitions)  ShuffledRDD[6] at reduceByKey at:14 (1
partitions)    MapPartitionsRDD[5] at reduceByKey at:14 (1
partitions)      MappedRDD[4] at map at:14 (1 partitions)       
FlatMappedRDD[3] at flatMap at:14 (1 partitions)         
MappedRDD[1] at textFile at:12 (1 partitions)           
HadoopRDD[0] at textFile at:12 (1 partitions)

Spark对于有向无环图Job进行调度,确定阶段(Stage),分区(Partition),流水线(Pipeline),任务(Task)
和缓存(Cache),进行优化,并在Spark集群上运行Job。RDD之间的依赖分为宽依赖(依赖多个分区)和窄依赖(只依赖一个分区),在确定阶段
时,需要根据宽依赖划分阶段。根据分区划分任务。

发表评论