云计算1
1.概念
•云计算其实就更大限度的发挥网络的资源
大多数计算的网络拓扑图都用一块“云”来表示互联网。于是就形成了云计算的说法
狭义:是指IT基础设施的交付和使用模式,是指通过网络以按需、易扩展的方式获取所需要的资源。提供资源的网络被称为“云”。云中的资源在使用者看来是可以无限扩展的,并且可以随时获取。
广义:是指服务的交付和使用模式,是指通过网络以按需、易扩展的方式获取所需要的服务。
2.云计算的几大形式
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.安装
启动时按以下顺序启动:(停止时按相反的顺序停止)
Namenode
Datanode
Secondarynamenode
Jobtracker
Tasktracker
检查启动是否成功:jps
访问50070端口可以访问hdfs文件系统。
http://localhost:50030 - Jobtracker
http://localhost:50070 - hdfs
5.Hdfs
Hdfs是hadoop Distributed file system的缩写,是hadoop的分布式文件系统。
Hdfs由hadoop来管理,它不同于普通的文件系统,不能直观的查找文件,必须要通过hadoop命令操作hdfs1)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.txtc:将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(); } }