搭建单机dg

一台linux下oracle DG搭建

standby:

物理Standby  ····· 与primary 库结构一模一样,提供灾备,减少IO/CPU 占用  (灾难恢复高可用性)

逻辑standby  ·····  与primary 库结构不同(可以创建除primary库存在的索引..) (灾难恢复高可用性/业务需求#ddl/dml)

物理standby 特点

灾难恢复及高可用性:物理standby 提供了一个健全而且极高效的灾难恢复及高可用性的解决方案。更加易于管理的switchover/failover 角色转换及最更短的计划内或计划外停机时间。

数据保护:应用物理standby 数据库,Dg 能够确保即使面对无法预料的灾害也能够不丢失数据。前面也提到物理standby 是基于块对块的复制,因此对象、语句统统无关,primary 数据库上有什么,物理standby 也会有什么。

分担primary 数据库压力:通过将一些备份任务、仅查询的需求转移到物理standby,可以有效节省primary 数据库的cpu以及i/o 资源。

提升性能:物理standby 所使用的redo 应用技术使用最底层的恢复机制,这种机制能够绕过sql 级代码层,因此效率最高。

逻辑standby 的特点:

除了上述物理standby 中提到的类似灾难恢复,高可用性及数据保护等之外,还有下列一些特点:

有效的利用standby 的硬件资源:

除灾难恢复外,逻辑standby 数据库还可用于其它业务需求。比如通过在standby 数据库创建额外的索引、物化视图等提高查询性能并满足特定业务需要。又比如创建新的schema(primary 数据库并不存在)然后在这些schema 中执行ddl 或者dml 操作等。

分担primary 数据库压力:

逻辑standby 数据库可以在更新表的时候仍然保持打开状态,此时这些表可同时用于只读访问。这使得逻辑standby 数据库能够同时用于数据保护和报表操作,从而将主数据库从那些报表和查询任务中解脱出来,节约宝贵的CPU 和I/O 资源。

平滑升级:

比如跨版本升级啦,打小补丁啦等等,应该说应用的空间很大,而带来的风险却很小(前提是如果你拥有足够的技术实力。另外虽然物理standby 也能够实现一些升级操作,但如果跨平台的话恐怕就力不从心,所以此项就不做为物理standby 的特点列出了),我个人认为这是一种值的推荐

的在线的滚动的平滑的升级方式

Data Guard保护模式(Data Guard ProtectionModes)

1.最大保护模式:

1).这种模式提供了最高级别的数据保护能力

2).重做日志在至少一个物理从库数据库后,主库的事务才能够提交

3).主库找不到合适的从库写入时,主库会自动关闭,防止无保护的数据出现

4).优点:该模式可以保证从库没有数据丢失

5).缺点:主库的自动关闭会影响到主库的可用性,同时需要从库恢复后才能提交,对网络等客观条件要求非常的高,主库的性能会受到非常大的影响。

2.最大可用性模式:

1).这种模式提供了仅次于“最大保护模式”的数据保护能力

2).重做日志在至少一个物理从库数据库后,主库的事务才能够提交

3).主库找不到合适的从库写入时,主库不会关闭,而是临时降低到“最大性能模式”模式,直到问题得到处理

4).优点:该模式可以在没有问题出现的情况下保证从库没有数据丢失,是一种折中的方法

5).缺点:在正常运行的过程中缺点是主库的性能收到诸多因素的影响

3.最大性能模式:

1).默认模式,提供主数据库的最高可用性

2).保证主库运行过程中不受从库的影响,主库事务正常提交,不因从库的任何问题影响到主库的运行

4).优点:避免了从库对主数据库的性能和可用性影响

5).缺点:如果与主库提交的事务相关的恢复数据没有发送到从库,这些事务数据将被丢失,不能保证数据无损失

也可以理解为:

最大性能:standby库要是坏了或者网络问题与primary连接不好,primary会继续工作,俩者网络没有问候会自动的将redolog传到standby,执行应用redolog会将网络不正常期间的redolog应用

最大保护:standby 挂了,primary shutdown ,等着都修复好了  primary再用

最大可用:standby 挂了,primary 不shutdown 但是等着standby 修复好了再用

搭建的大体思路

1、Primary 开归档,force logging强制生成日志;
2、配置standby的口令文件,拷贝到standby;
3、配置tns、listener参数文件;
4、关闭主库 ,拷贝数据文件到standby;
5、在primary 创建standby  .ctl文件到standby;
6、创建primary库的pfile文件,配置pfile文件,并拷贝到standby库,修改standby的pfile;
7、standby启动到mount/alter database mount standby database,应用redo log ,physics standby 在read only时(这面先取消应用redo log ,在open read only)

步骤流程:

(SID)test ········· primary   主库

(SID)standby ········· standby   备库

SQL> set sqlprompt primary>

primary>archive log list;  查看归档

1、开启primary归档

primary>shutdown immediate

primary>Startup mount

primary>Alter database (no)archivelog;

primary>archive log list;

primary>archive log list

Database log mode        Archive Mode
Automatic archival        Enabled
Archive destination        /data/ora_test_bak
Oldest online log sequence     15
Next log sequence to archive   17
Current log sequence        17

2、开启primary的force logging

primary>Alter database (no) force logging;

primary> select force_logging from v$database;

FOR
---
YES

3、配置监听tnsname.ora和listener.ora

------------配置tnsnames.ora

# tnsnames.ora Network Configuration File: /data/app/oracle/product/10.1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

TEST =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = s_1_35)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = test)
    )
  )

STANDBY =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = s_1_35)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = standby)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

------------配置listener.ora

# listener.ora Network Configuration File: /data/app/oracle/product/10.1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /data/app/oracle/product/10.1)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = s_1_35)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
  )

------关闭,重启监听

lsnrctl stop       关闭监听

lsnrctl start      开启监听

------验证解析情况:

tnsping orcl1

tnsping orcl2

4、修改primary的pfile文件

test.__db_cache_size=411041792
test.__java_pool_size=4194304
test.__large_pool_size=4194304
test.__shared_pool_size=180355072
test.__streams_pool_size=0
*.audit_file_dest=‘/data/app/oracle/admin/test/adump‘
*.background_dump_dest=‘/data/app/oracle/admin/test/bdump‘
*.compatible=‘10.2.0.1.0‘
*.control_files=‘/data/app/oracle/oradata/test/control01.ctl‘,‘/data/app/oracle/oradata/test/control02.ctl‘,‘/
data/app/oracle/oradata/test/control03.ctl‘
*.core_dump_dest=‘/data/app/oracle/admin/test/cdump‘
*.db_block_size=8192
*.db_domain=‘‘
*.db_file_multiblock_read_count=16
*.db_name=‘test‘
*.db_recovery_file_dest=‘/data/app/oracle/flash_recovery_area‘
*.db_recovery_file_dest_size=2147483648
*.dispatchers=‘(PROTOCOL=TCP) (SERVICE=testXDB)‘
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=201326592
*.processes=150
*.remote_login_passwordfile=‘EXCLUSIVE‘
*.sga_target=605028352
*.undo_management=‘AUTO‘
*.undo_tablespace=‘UNDOTBS1‘
*.user_dump_dest=‘/data/app/oracle/admin/test/udump‘
############增加以下内容
*.db_file_name_convert=‘/data/app/oracle/oradata/test‘,‘/data/app/oracle/oradata/standby‘
*.fal_client=‘TEST‘ ---tnsname 中的服务名
*.fal_server=‘STANDBY‘
-----主、备库unique_name 一致(使用unique_name)
*.log_archive_config=‘dg_config=(test,standby)‘
*.log_archive_dest_1=‘location=/data/ora_test_bak valid_for=(all_logfiles,all_roles db_unique_name=test‘
-----------SERVICE= 指的是service服务名 ,
*.log_archive_dest_2=‘SERVICE=standby LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=stand
by‘
*.log_file_name_convert=‘/data/ora_test_bak‘,‘/data/app/oracle/oradata/standby/archive‘

5、拷贝primary的pfile文件到standby,修改standby的pfile,

standby.__db_cache_size=411041792 ----修改test为standby
standby.__java_pool_size=4194304
standby.__large_pool_size=4194304
standby.__shared_pool_size=180355072
standby.__streams_pool_size=0
*.audit_file_dest=‘/data/app/oracle/oradata/standby/adump‘
*.background_dump_dest=‘/data/app/oracle/oradata/standby/bdump‘
*.compatible=‘10.2.0.1.0‘
*.control_files=‘/data/app/oracle/oradata/standby/control02.ctl‘
*.core_dump_dest=‘/data/app/oracle/oradata/standby/cdump‘
*.db_block_size=8192
*.db_domain=‘‘
*.db_file_multiblock_read_count=16
*.db_recovery_file_dest=‘/data/app/oracle/oradata/standby/flash_recovery_area‘
*.db_recovery_file_dest_size=2147483648
*.dispatchers=‘(PROTOCOL=TCP) (SERVICE=testXDB)‘
*.job_queue_processes=10
*.open_cursors=300
*.pga_aggregate_target=201326592
*.processes=150
*.remote_login_passwordfile=‘EXCLUSIVE‘
*.sga_target=605028352
*.undo_management=‘AUTO‘
*.undo_tablespace=‘UNDOTBS1‘
*.user_dump_dest=‘/data/app/oracle/oradata/standby/udump‘
--------增加修改下面的内容
db_unique_name=‘standby‘
*.db_name=‘test‘ --必须与主库一致
*.db_file_name_convert=‘/data/app/oracle/oradata/standby‘,‘/data/app/oracle/oradata/test‘
*.fal_client=‘standby‘
*.fal_server=‘test‘
*.log_archive_config=‘dg_config=(test,standby)‘
*.log_archive_dest_1=‘location=/data/app/oracle/oradata/standby/archive valid_for=(all_logfiles,all_roles db_u
nique_name=standby‘
*.log_archive_dest_2=‘SERVICE=test LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=test‘
*.log_file_name_convert=‘/data/app/oracle/oradata/standby/archive‘,‘/data/ora_test_bak‘

6.创建standby 库对应的目录(根据pfile指定的目录)

mkdir -p /data/app/oracle/oradata/standby

mkdir -p /data/app/oracle/oradata/standby/flash_recovery_area

mkdir -p /data/app/oracle/oradata/standby/udump

mkdir  -p /data/app/oracle/oradata/standby/adump

mkdir -p /data/app/oracle/oradata/standby/bdump

mkdir -p /data/app/oracle/oradata/standby/cdump

mkdir -p /data/app/oracle/oradata/standby/archive

7、创建密码文件

[[email protected] dbs]$ orapwd file=orapwprimary password=oracle entries=10 force=y

[[email protected] dbs]$ cp orapwtest orapwstandby

8、创建standby控制文件,控制文件路径与standby的参数文件中指定的控制文件路径一致

alter database create standby controlfile as ‘E:\app\Administrator\oradata\orcl2\CONSTB. CTL‘;

9、关闭primary库,拷贝数据文件到standby

primary> shutdown immediate

primary> cp /data/app/oracle/oradata/test/*.dbf /data/app/oracle/oradata/standby

10、启动standby到mount状态

standby> startup mount pfile=‘/data/app/oracle/product/10.1/dbs/initstandby.ora‘;

11、Primary 库 启动到mount 看下参数文件是否生效

primary> Select DBID,NAME,DATABASE_ROLE,DB_UNIQUE_NAME, OPEN_MODE,LOG_MODE,SWITCHOVER_STATUS,CURRENT_SCN  from v$database;

DBID NAME      DATABASE_ROLE    DB_UNIQUE_NAME       OPEN_MODE
---------- --------- ---------------- ------------------------------ ----------
LOG_MODE     SWITCHOVER_STATUS   CURRENT_SCN
------------ -------------------- -----------
2145798395 TEST      PRIMARY       test        READ WRITE
ARCHIVELOG   SESSIONS ACTIVE    2.3995E+10

standby> Select DBID,NAME,DATABASE_ROLE,DB_UNIQUE_NAME, OPEN_MODE,LOG_MODE,SWITCHOVER_STATUS,CURRENT_SCN  from v$database;

DBID NAME      DATABASE_ROLE    DB_UNIQUE_NAME       OPEN_MODE
---------- --------- ---------------- ------------------------------ ----------
LOG_MODE     SWITCHOVER_STATUS   CURRENT_SCN
------------ -------------------- -----------
2145798395 TEST      PHYSICAL STANDBY standby        MOUNTED
ARCHIVELOG   RECOVERY NEEDED    2.3995E+10

注:unique_name/archivelog路径都正确,switchover_status=not allowed (当前数据库不是带有备用数据库的主数据库)
TO STANDBY 正确

开始Standby 库  应用redo log、

在改成应用之前注意下~  standby现在的数据文件是primary的,控制文件还没有改位置,

如果没改.dbf文件位置的话,standby 库应用redo log的时候归档是能传输的,但是不应用(相当于standby read only)

Standby 应用redo log  primary 切换,switchover_status è recovery needed 就是说明归档传输但没有应用(没改位置)

12、控制文件记录primary的数据文件和日志文件路径,更改为standby的文件路径

standby> alter database rename file ‘/data/app/oracle/oradata/test/SYSAUX01.DBF‘ to ‘/data/app/oracle/oradata/test/SYSAUX01.DBF‘;                ·····所有文件

standby> alter database recover managed standby database disconnect from session;   ··应用redo log

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; -----取消日志应用

standby> select DBID,NAME,DATABASE_ROLE,DB_UNIQUE_NAME, OPEN_MODE,LOG_MODE,SWITCHOVER_STATUS,CURRENT_SCN  from v$database;看下状态      ····to primary    应该成功(也证明了可以切换到primary库中)

standby> alter system set standby_file_management=manual/auto;       ------配置standby模式为手动/自动管理

13、测试  primary 归档的传输:

Alter system switch logfile;  切换归档测试

14、测试primary数据更改同步

primary>create table test.test(id number(1));

primary>insert into test.test values(1);commit;

primary>alter system switch logfile;

这个时候在standby 备库上查看数据同步没有

首先关闭应用redo log,这时primary归档还是传到standby,但不应用,再起startup 在应用redo log 的时候才去应用

Standby> alter database recover managed standby database finish force ;    ···关闭应用redo log

Standby> alter database open read only;只读形式打开

看下test.test表数据

测试能实时同步之后,standby 库要重启开启应用redo log;  保证standby库应用redo log

创建切归档日志组

alter  database add standby logfile(‘/u01/oradata/steve/standlog01.tdo‘ ) size 10m;

----主库上切到最大可用模式(看需求)
sq>alter database set standby database to maximize  availability

主备切换:

先将主库切换成备库,将原主库启动到物理库的状态,之后在备库切换到主库(要是单一的只切换备库到主库的话,主库要是正在用的情况下,切完,马上就停用了)

主—备—物理备

select switchover_status from v$database;    ···TO STANDBY

Alter database commit to switchover to physical standby with session shutdown;  ··主—备

shutdown immediate

startup nomount

alter database mount standby database;

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;   ··备—物理备库

Standby 切换到primary库

Standby>  SELECT SWITCHOVER_STATUS FROM V$DATABASE;           ····TO PRIMARY/ NOT ALLOWED

Standby > archive log list;

数据库日志模式            存档模式

自动存档             启用

存档终点            E:\app\ARC_ORCL2\

最早的联机日志序列     82

下一个存档日志序列   0

当前日志序列           84

Standby > alter database commit to switchover to primary;    ··· 切换命令

Standby > archive log list;

数据库日志模式            存档模式

自动存档             启用

存档终点            E:\app\ARC_ORCL2\

最早的联机日志序列     1

下一个存档日志序列   1

当前日志序列           1    ···归档是1

Standby > select DATABASE_ROLE from v$database;

DATABASE_ROLE

----------------

PRIMARY                 ······为主库

Standby > alter database open;····查看数据

数据库已更改。

Standby > conn test/test

已连接。

Standby >  select OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS from v$database;

OPEN_MODE            PROTECTION_MODE      PROTECTION_LEVEL          SWITCHOVER_STATUS

-------------------- -------------------- ------------------------------------------

READ WRITE           MAXIMUM PERFORMANCE  MAXIMUM PERFORMANCE       RESOLVABLE GAP

Standby > select * from test.test;

1

Standby > insert into test.test values(5);

已创建 1 行。

Standby > commit;

提交完成。

Standby > alter system switch logfile;

系统已更改。

Standby > archive log list;

数据库日志模式            存档模式

自动存档             启用

存档终点            E:\app\ARC_ORCL2\

最早的联机日志序列     1

下一个存档日志序列   1

当前日志序列           2

备库查看RFS接收日志情况和MRP应用日志同步主库情况

SQL>select PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS from v$managed_standby

保护模式:

ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PROTECTION;   最大保护

ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;  最大性能

ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE AVAILABILITY; 最高可用

从最大性能--- 最高可用性

1、首先查看当前的保护模式---primary 数据库操作

SQL> select protection_mode,protection_level from v$database;

PROTECTION_MODE PROTECTION_LEVEL

-------------------- --------------------

MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE

2、修改初始化参数--primary 数据库操作

SQL> alter system set log_archive_dest_2=‘SERVICE=orcl2

2 OPTIONAL LGWR SYNC AFFIRM VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)

3 DB_UNIQUE_NAME=orcl2;

系统已更改。

3、设置新的数据保护模式并重启数据库--primary 数据库操作

SQL> alter database set standby database to maximize availability;

各个库间的切换

Alter database commit to switchover to physical standby with session shutdown; ··主—物理备

ALTER DATABASE COMMIT TO SWITCHOVER TO LOGICAL STANDBY;                        ··主--逻辑备

alter database commit to switchover to physical standby;                       ··主--物理备

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;       ··备—物理备

alter database recover to logical standby orcl2;                               ··物理备—逻

alter database commit to switchover to primary;                                ··物理备--主

ALTER DATABASE PREPARE TO SWITCHOVER TO PRIMARY ;                              ··逻辑备--主

时间: 2024-10-16 00:32:46

搭建单机dg的相关文章

零基础学习Mahout之一:搭建单机环境

一.Mahout是什么? Mahout是Apache的一个开源项目(http://mahout.apache.org/),提供了机器学习领域的若干经典算法,以便开发人员快速构建机器学习和数据挖掘方面的应用. Mahout是基于Hadoop的.从名称上看也很有意思,Hadoop是一个大象的名字,而Mahout则是象夫.看象人,可见二者联系之紧密.(这让我自然联想到Sun和Eclipse...) 我此时是一个完全没用过Mahout的门外汉,对Hadoop也没有实际使用经验,算是真正的零基础.我的目标

【web】 亿级Web系统搭建——单机到分布式集群

当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构层面搭建多个层次的缓存机制.在不同的压力阶段,我们会遇到不同的问题,通过搭建不同的服务和架构来解决. Web负载均衡 Web负载均衡(Load Balancing),简单地说就是给我们的服务器集群分配“工作任务”,而采用恰当的分配方式,对于保护处于后端的Web服务器来说,非常重要. 负载均衡的策略有很

很不错的文章---【问底】徐汉彬:亿级Web系统搭建——单机到分布式集群

原文:很不错的文章---[问底]徐汉彬:亿级Web系统搭建--单机到分布式集群 [导读]徐汉彬曾在阿里巴巴和腾讯从事4年多的技术研发工作,负责过日请求量过亿的Web系统升级与重构,目前在小满科技创业,从事SaaS服务技术建设. 大规模流量的网站架构,从来都是慢慢“成长”而来.而这个过程中,会遇到很多问题,在不断解决问题的过程中,Web系统变得越来越大.并且,新的挑战又往往出现在旧的解决方案之上.希望这篇文章能够为技术人员提供一定的参考和帮助. 以下为原文 当一个Web系统从日访问量10万逐步增长

在Windows 2008 R2上搭建RAC+DG

前期规划: 节点1: tc1 192.168.56.101 内存:2G 节点2: tc2 192.168.56.102 内存:2G 物理备库:tcdg192.168.56.108内存:1G 操作系统:Windows 2008 R2 Enterprise ******* RAC部分 ******* 一.准备工作 1.修改提升权限提示方式为"不提示,直接提升"(默认为"非Windows二进制文件的同意提示") cmd> secpol.msc->本地策略-&g

hbase_学习_01_HBase环境搭建(单机)

一.前言 本文承接上一篇:hadoop_学习_02_Hadoop环境搭建(单机)  ,主要是搭建HBase的单机环境 二.环境准备 在虚拟机中: 操作系统 : linux CentOS 6.8 jdk:1.7 hadoop:2.8.3 hbase:1.4.2 三.hbase下载 1.hbase下载地址 http://mirror.bit.edu.cn/apache/hbase/1.4.2/hbase-1.4.2-bin.tar.gz 2.下载hbase wget http://mirror.bi

Oracle 19c使用dbca来搭建物理DG

Using DBCA to Create a Data Guard Standby The Database Configuration Assistant (DBCA) can also be used as a simple command-line method to create an Oracle Data Guard physical standby database. The DBCA command qualifier used to create the physical st

用pyenv和virtualenv搭建单机多版本python虚拟开发环境

作为主流开发语言, 用python 开发的程序越来越多. 方便的是大多linux系统里面都默认集成了python, 开发可以随时随地开始. 但有时候这也成为了一个短板, 比如说有时候我们需要开发和调试一些需要安装在默认python路径里的程序, 反复地修改和安装会使系统目录越来越乱,这对于一些有洁癖的程序员来说是不可接受的. 还有时候我们需要在不同的python版本上开发, 而系统一般只会自带一到两种python版本, 切换起来更是麻烦. 本文将介绍如何利用pyenv 和virtualenv 在

大数据学习系列之二 ----- HBase环境搭建(单机)

引言 在上一篇中搭建了Hadoop的单机环境,这一篇则搭建HBase的单机环境 环境准备 1,服务器选择 阿里云服务器:入门型(按量付费) 操作系统:linux CentOS 6.8 Cpu:1核 内存:1G 硬盘:40G 2,配置选择 JDK:1.8 (jdk-8u144-linux-x64.tar.gz) Hadoop:2.8.2 (hadoop-2.8.2.tar.gz) HBase:1.6.2 (hbase-1.2.6-bin.tar.gz) 3,下载地址 官网地址: JDK: http

零基础学习Mahout之-----搭建单机环境

一.Mahout是什么? Mahout是Apache的一个开源项目(http://mahout.apache.org/),提供了机器学习领域的若干经典算法,以便开发人员快速构建机器学习和数据挖掘方面的应用. Mahout是基于Hadoop的.从名称上看也很有意思,Hadoop是一个大象的名字,而Mahout则是象夫.看象人,可见二者联系之紧密.(这让我自然联想到Sun和Eclipse...) 我此时是一个完全没用过Mahout的门外汉,对Hadoop也没有实际使用经验,算是真正的零基础.我的目标