云计算1

1.概念

•云计算其实就更大限度的发挥网络的资源

•那为什么叫云,为什么不到互联网计算?Cloud

  大多数计算的网络拓扑图都用一块“云”来表示互联网。于是就形成了云计算的说法

狭义:是指IT基础设施的交付和使用模式,是指通过网络以按需、易扩展的方式获取所需要的资源。提供资源的网络被称为“云”。云中的资源在使用者看来是可以无限扩展的,并且可以随时获取。

广义:是指服务的交付和使用模式,是指通过网络以按需、易扩展的方式获取所需要的服务。

2.云计算的几大形式

 云计算服务类形
•基础设施即服务( IaaS)  - 提供硬件设备
•app - engine
•软件即服务( SaaS ) -   WebService
•网络服务
•平台即服务(PaaS) - hadoop(平台) , Oracle(),MS,
•管理服务提供商(MSP)
•商业服务平台
•云安全

3.hadoop的组成

Hadoop运行在Linux系统中。在windows上安装可使用cgywin模拟linux环境

l  hadoop Common – 是hadoop的核心,包括文件系统、远程调用RPC的序列化函数。

l  HDSF : 提供高吞吐量的可靠分布式文件系统是 GFS的开源实现。

  • Hadoop的文件系统。必须通过hadoop  fs 命令来读取。支持分布式。

l  MapReduce : 大型分布式数据处理模型,是Google MapReduce的开源实现。

  • 合并/计算模型。

l  其他相关组成:

  • Hbase:结构化分部式数据库。BigTable的开源实现。
  • Hive:提供摘要和查询功能的数据仓库。
  • Cassandra:由Facebook开发分布式数据仓库。目前已经捐献给apache。且apache已经将Cassandra应用到了各种云计算系统中。

4.安装

1)安装cygwin,注意选择ssh,ssl
2)安装hadoop4win
3)启动和停止hadoop必须要遵循节点的顺序。

       启动时按以下顺序启动:(停止时按相反的顺序停止)

       Namenode

       Datanode

       Secondarynamenode

       Jobtracker

       Tasktracker

检查启动是否成功:jps

4)Hadoop启动以后,访问50030端口可以访问jobtracker。

       访问50070端口可以访问hdfs文件系统。

       http://localhost:50030 - Jobtracker

       http://localhost:50070 - hdfs

 

5.Hdfs

Hdfs是hadoop Distributed file system的缩写,是hadoop的分布式文件系统。

Hdfs由hadoop来管理,它不同于普通的文件系统,不能直观的查找文件,必须要通过hadoop命令操作hdfs

1)hadoop下的文件操作命令(在命令前加hadoop dfs -或者hadoop fs -)

a :列出hdfs文件

~# hadoop dfs –ls /

~# hadoop fs –ls /

b.将文件上传到hdfs

以下命令,将本地目录下的a.txt上传到hdfs下的wj目录下,并重命名为b.txt

hadoop fs –put a.txt /wj/b.txt
也可以使用copyFromLocal命令将本目录下的文件上传到hdfs文件系统中

c:将hdfs中的文件复制到本地系统中

通过get命令,即可以操作文件也可以操作文件夹:

操作一个文件,将hdfs上的文件/wj/a.txt保存到本地,并取名为b.txt

hadoop fs -get /wj/b.txt  a.txt

d:删除文件

hadoop fs -rmr /wj/b.txt

 6.Eclipse下的HDFS操作

package cn.itcast.hadoop;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

/**
 * 上传本地文件到HDFS
 * @author fanyf
 *
 */
public class TestUploadFiles2HDFS {
    public static void main(String[] args) throws IOException {
        Configuration conf=new Configuration();
        FileSystem hdfs = FileSystem.get(conf);
        Path path1=new Path("D:/abc.txt");
        Path path2=new Path("/user/abc.txt");
        //上传
        hdfs.copyFromLocalFile(path1, path2);
        System.err.println("文件上传成功至:"+conf.get("fs.default.name"));
        //列出服务器上目前拥有的文件
        FileStatus[] fs = hdfs.listStatus(path2);
        for(FileStatus f:fs){
            System.err.println(f.getPath());
        }
        hdfs.close();
    }
}
package cn.itcast.hadoop;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FSDataOutputStream;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

/**创建文件或者目录
 * @param fanyf
 */
public class TestCreateFileOnHDFS {

    public static void main(String[] args) throws IOException {
        Configuration conf = new Configuration();
        FileSystem hdfs = FileSystem.get(conf);
        FSDataOutputStream out=hdfs.create(new Path("/user/test/a.txt"));
        hdfs.mkdirs(new Path("/user/test/a/b/c"));
        out.write("hello hadoop!".getBytes());
        out.close();
        hdfs.close();
        
    }

}
package cn.itcast.hadoop;

import java.io.IOException;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;

/**
 * 重命名或者移动文件
 * @author fanyf
 *
 */
public class TestReNameOnHDFS {

    public static void main(String[] args) throws IOException {
        Configuration conf = new Configuration();
        FileSystem hdfs = FileSystem.get(conf);
        //hdfs.rename(new Path("/user/abc.txt"), new Path("/user/b.txt"));
        hdfs.rename(new Path("/user/b.txt"), new Path("/user/test/b.txt"));
        hdfs.close();
    }

}

 

 

 

posted @ 2014-07-06 23:37  柱柱  阅读(182)  评论(0编辑  收藏  举报