import java.io.File ; import java.io.RandomAccessFile ; public class RandomAccessFileDemo01{ // 所有的异常直接抛出,程序中不再进行处理 public static void main(String args[]) throws Exception{ File f = new File("d:" + File.separator + "test.txt") ; // 指定要…
import java.io.* ; public class ExecDemo03{ public static void main(String args[]) throws Exception{ new Menu() ; } }; import java.io.File ; import java.io.FileInputStream ; import java.io.FileOutputStream ; import java.io.ObjectInputStream ; import…
public class CharSetDemo01{ public static void main(String args[]){ System.out.println("系统默认编码:" + System.getProperty("file.encoding")) ; // 获取当前系统编码 } }; import java.io.OutputStream ; import java.io.FileOutputStream ; import java.io.F…
import java.io.File ; import java.io.FileInputStream ; import java.io.InputStream ; import java.util.zip.ZipEntry ; import java.util.zip.ZipOutputStream ; import java.util.zip.ZipFile ; import java.io.FileOutputStream ; public class ZipFileDemo01{ pu…
import java.io.* ; public class ExecDemo01{ public static void main(String args[]) throws Exception{ int i = 0 ; int j = 0 ; BufferedReader buf = null ; // 接收键盘的输入数据 buf = new BufferedReader(new InputStreamReader(System.in)) ; String str = null ; //…
import java.io.* ; public class Copy{ public static void main(String args[]){ if(args.length!=2){ // 判断是否是两个参数 System.out.println("输入的参数不正确.") ; System.out.println("例:java Copy 源文件路径 目标文件路径") ; System.exit(1) ; // 系统退出 } File f1 = new…
import java.io.File ; import java.io.IOException ; public class FileDemo01{ public static void main(String args[]){ File f = new File("d:\\test.txt") ; // 实例化File类的对象 try{ f.createNewFile() ; // 创建文件,根据给定的路径创建 }catch(IOException e){ e.printStack…
public class ExecDemo{ public static void main(String args[]){ new Operate() ; } }; import java.io.BufferedReader ; import java.io.InputStreamReader ; import java.io.IOException ; public class InputData{ private BufferedReader buf = null ; // 接收数据 pu…
import java.io.OutputStream ; import java.io.IOException ; public class SystemDemo01{ public static void main(String args[]){ OutputStream out = System.out ; // 此时的输出流是向屏幕上输出 try{ out.write("hello world!!!".getBytes()) ; // 向屏幕上输出 }catch(IOExcep…
import java.io.* ; class Send implements Runnable{ // 线程类 private PipedOutputStream pos = null ; // 管道输出流 public Send(){ this.pos = new PipedOutputStream() ; // 实例化输出流 } public void run(){ String str = "Hello World!!!" ; // 要输出的内容 try{ this.pos.…
Matplotlib 是 Python 的绘图库. 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案. 它也可以和图形工具包一起使用,如 PyQt 和 wxPython. Windows 系统安装 Matplotlib 进入到 cmd 窗口下,执行以下命令: python -m pip install -U pip setuptools python -m pip install matplotlib Linux 系统安装 Matplotlib 可以使用 Linux 包…
import numpy as np a = np.arange(8) print ('原始数组:') print (a) print ('\n') b = a.reshape(4,2) print ('修改后的数组:') print (b) numpy.ndarray.flat 是一个数组元素迭代器 import numpy as np a = np.arange(9).reshape(3,3) print ('原始数组:') for row in a: print (row) #对数组中每个…
实验目的 熟悉hive和hbase的操作 熟悉hadoop.hbase.hive.zookeeper的关系 熟练大数据环境的搭建 学会分析日志排除问题 实验原理 1.hive整合hbase原理 前面大家已经了解了Hive和Hbase,Hive是一个mapreduce的客户端,把sql语句转化为mapreduce程序执行,同时提供了数据仓库技术.Hbase是一个非关系型数据库,数据存储的时候面向列,方便横向扩展,但是不方便进行关系查询和二级索引.有时候为了方便操作,需要用hive操作hbase进行…
实验目的 深入了解mapreduce的底层 了解IDEA的使用 学会通过本地和集群环境提交程序 实验原理 1.回忆mapreduce模型 前面进行了很多基础工作,本次实验是使用mapreduce的API进行简单的大数据业务处理. MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算.概念"Map(映射)"和"Reduce(归约)",和它们的主要思想,都是从函数式编程语言里借来的,还有从矢量编程语言里借来的特性.它极大地方便了编程人员在不会分布式…
实验目的 初步认识图计算的知识点 复习mapreduce的知识点,复习自定义排序分组的方法 学会设计mapreduce程序解决实际问题 实验原理 QQ好友推荐算法是所有推荐算法中思路最简单的,我们利用的思想就是好友的好友很有可能是自己的好友,而共同好友越多,说明两个人认识的可能性越大.其实这个想法属于图计算的内容,人际关系社交网络是很典型的图计算的内容,大家可以参考相关资料.我们今天就基于共同好友的想法实现. 1.实现思路 我们已有的数据是每个人以及他的好友,我们无法直接从这个数据得到他的好友的…
实验目的 复习hbase的shell操作和javaAPI操作 了解javaWeb项目的MVC设计 学会dao(数据库访问对象)和service层的代码编写规范 学会设计hbase表格 实验原理 前面我们已经了解hbase的shell操作.javaAPI操作,并且能够使用hive操作hbase表格(实际上是转化为mapreduce操作),本次实验我们就是利用hbase实现一个简单的学生选课案例.实现学生选课首先是要学会设计表格,然后根据设计的表格进行各种逻辑实现. 1.设计表格 hbase表格设计…
实验目的 进一步了解hbase的操作 熟悉使用IDEA进行java开发 熟悉hbase的javaAPI 实验原理 前面已经了解通过hbase的shell操作hbase,确实比较难以使用,另外通过hive也可以操作hbase,今天我们学习通过javaAPI操作hbase. 1.创建连接 我们以前在hbase简介的时候讲过,客户端操作hbase,实际上不需要和master打交道,因为寻址地址都保存在zookeeper里面,所以只需要知道zookeeper的地址就可以了.hbase创建连接的API为:…
实验目的 了解hive DDL的基本格式 了解hive和hdfs的关系 学习hive在hdfs中的保存方式 学习一些典型常用的hiveDDL 实验原理 有关hive的安装和原理我们已经了解,这次实验我们通过使用hive进行简单的测试进一步了解hive.hive DDL的意思是Hive Data Definition Language,hive数据定义语言,操作和关系型数据库的DDL类似,但是也有很多新功能.我们学习的方式就是通过打开官方网站的文档,进行操作. 1.电脑语言 数据库模式定义语言并非…
实验目的 了解集群运行的原理 学习mapred和yarn脚本原理 学习使用Hadoop命令提交mapreduce程序 学习对mapred.yarn脚本进行基本操作 实验原理 1.hadoop的shell脚本 上一节介绍了hadoop脚本的使用,这一节介绍mapreduce和yarn的shell命令,对应的脚本为hadoop安装目录下的bin目录里面的mapred文件和yarn文件.下面分别是mapred和yarn文件的部分内容: mapred if [ "$COMMAND" = &qu…
实验目的 了解bin/hadoop脚本的原理 学会使用fs shell脚本进行基本操作 学习使用hadoop shell进行简单的统计计算 实验原理 1.hadoop的shell脚本 当hadoop集群正常工作后,我们就可以使用hadoop进行我们需要的操作.我们的操作主要分为两种,第一种是使用shell命令,另一种是通过hadoop提供的javaAPI,这两种方式大家都必须掌握,今天主要是学会使用hdfs的shell脚本. 在hadoop安装目录的bin目录下有个hadoop文件,这个文件就是…
实验目的 掌握GOF设计模式的代理模式 了解掌握socket编程.java反射.动态代理 了解NIO.多线程 掌握hadoop的RPC框架使用API 实验原理 1.什么是RPC 在hadoop出现以前,我们写的程序一般都是单机版本,只能在一台机器上处理,而一台机器的处理能力总是有限的,hadoop让我们可以写出分布式程序,将多台节点联合到一起进行处理.分布式程序的各节点之间通信需要依靠网络,一种简单的思路就是部署一个Web服务器,例如tomcat,但是这样会使得整个架构太庞大冗余.通俗地讲,我们…
实验目的 了解hive的原理和安装方式 学习使用MySQL数据库 使用hive进行基本操作 实验原理 1.Hive Hive是一个数据仓库技术,包括解释器.编译器.优化器,一次将一个sql语句装化为mapreduce代码,然后对代码进行编译,最后优化执行.实质是一个客户端程序,类似jsp和servlet的关系,实际上jsp也是被转化为servlet的的.hive运行时,元数据是存储在一个关系型数据库里面的. Hive是建立在Hadoop上的数据仓库基础构架.它提供了一系列的工具,可以用来进行数据…
实验目的 复习安装jdk 学习免密码登录 掌握安装配置hdfs集群的方法 掌握hdfs集群的简单使用和检查其工作状态 实验原理 1.hdfs是什么 hadoop安装的第一部分是安装hdfs,hdfs是一个磁盘文件系统,提供的功能类似于本地文件系统一样,可以通过命令进行增删改查文件,不同的是,hdfs通过将很多机器放在一起组成一个节点,大大提高了存储文件和处理文件的能力,也简化了对文件的操作. 2.hdfs的组成 hdfs的文件系统主要包括两个部分:namenode(管理节点)和datanode(…
实验目的 了解pig的该概念和原理 了解pig的思想和用途 了解pig与hadoop的关系 实验原理 1.Pig 相比Java的MapReduce API,Pig为大型数据集的处理提供了更高层次的抽象,与MapReduce相比,Pig提供了更丰富的数据结构,一般都是多值和嵌套的数据结构.Pig还提供了一套更强大的数据变换操作,包括在MapReduce中被忽视的连接Join操作. Pig包括两部分: 用于描述数据流的语言,称为Pig Latin. 用于执行Pig Latin程序的执行环境,当前有两…
实验目的 理解mapreduce的工作原理 理解Partitioner的书写方法 理解GroupingComparator的书写方法 实验原理 我们已经学习了hadoop的大部分基础知识,剩下的就是利用hadoop解决实际的业务问题.首先我们回顾一下mapreduce的工作过程: 数据通过InputFormat中定义的RecordReader读进来,然后以键值对的形式写出去,在map中进行处理,map处理完成后以键值对的形式写出,中途经过分区.分组.排序后,将key相同的value放进一个迭代器…
实验目的 了解java的安装配置 学习配置对自己节点的免密码登陆 了解hdfs的配置和相关命令 了解yarn的配置 实验原理 1.Hadoop安装 Hadoop的安装对一个初学者来说是一个很头疼的事情,要一步安装好整个hadoop集群难度特别大,所以一个快捷的学习方法是边安装边学习,安装的时候,先搭建单节点伪分布式,然后再搭建完全分布式,最后搭建高可用的分布式集群,如果有兴趣,还可以研究怎么使用CDH搭建超大规模的集群. 安装之前,首先需要懂一个概念:hadoop有三个部分,hdfs.mapre…
实验目的 了解zookeeper的概念和原理 学会安装zookeeper集群并验证 掌握zookeeper命令使用 实验原理 1.Zookeeper介绍 ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,它包含一个简单的原语集,分布式应用程序可以基于它实现同步服务,配置维护和命名服务等.Zookeeper是hadoop的一个子项目. Zookeeper的核心是原子广播,这个机制保证了各个Server之间的同步.实现这个机制的协议叫做Zab协议.Zab协议有两种模式,它们分别是恢…
实验目的 熟悉hbase表格设计的方法 熟悉hbase的javaAPI 通过API理解掌握hbase的数据的逻辑视图 了解MVC的服务端设计方式 实验原理 上次我们已经初步设计了学生选课案例的,具体功能还不完善,但是实现方式都是在已经设计好的表格之上,调用hbase已有的API,本次我们将会实现一个稍微复杂的业务逻辑,类似新浪微博的项目.实际上新浪微博是一个特别庞大的系统,光内存数据库Redis就有几千台集群,每天的访问量和流量几乎是全国最高的网站,这样一个复杂的集群架构也特别复杂,我们只是实现…
HRegion 当表的大小超过设置值的时候,HBase会自动地将表划分为不同的区域,每个区域包含所有行的一个子集.对用户来说,每个表是一堆数据的集合,靠主键来区分.从物理上来说,一张表被拆分成了多块,每一块就是一个HRegion.我们用表名+开始/结束主键来区分每一个HRegion,一个HRegion会保存一个表里某段连续的数据,从开始主键到结束主键,一张完整的表是保存在多个HRegion上面的. HMaster 管理HRegionServer,实现其负载均衡. 管理和分配HRegion,比如在…
实验目的 复习配置hadoop初始化环境 复习配置hdfs的配置文件 学会配置hadoop的配置文件 了解yarn的原理 实验原理 1.yarn是什么 前面安装好了hdfs文件系统,我们可以根据需求进行数据的读写操作.hdfs解决了大数据的存储,接下来的问题就是根据实际的业务需求进行计算.目前大数据的计算业务主要有离线计算.实时计算.交互式查询.机器学习.图计算.例如storm是处理实时计算的,hadoop的mapreduce是处理批处理计算业务的.hive则是进行交互式查询的.这么多计算框架在…