今天主要学习了以下几个方面的内容:
1、多线程的介绍,串行与并行,sleep、wait以及加lock操作
2、JDBC,maven导包,连接步骤:1、选择要连接的数据库种类2、通过主机IP端口号用户名密码创建连接3、选择要进行操作的数据库4、创建出一个命令窗口 写SQL语句5、执行SQL语句
3、定义属性的时候一定要用包装类(integer)。
4、获取数据库的时候只能用列名。
5、判断是否为空指针,然后再关闭服务
6、ArrayList的介绍,与数组的区别。
7、Java操作HDFS的输入输出。(创建一个配置对象,在配置对象中设置namenode,创建FileSystem,创建输入流,字节流转字符流)
其中比较重要的是Java对HDFS的读取和写入操作:
1、首先在Eclipse上建立maven项目,在Maven Dependencies中加入相应的依赖,主要是:
<dependencies> <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.7.3</version> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-client --> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.7.3</version> </dependency> <dependency> <groupId>jdk.tools</groupId> <artifactId>jdk.tools</artifactId> <version>1.8</version> <scope>system</scope> <systemPath>C:Program FilesJavajdk1.8.0_60/lib/tools.jar</systemPath> </dependency> </dependencies>
其中,第一个和第二个依赖是hadoop的依赖,最后一个是系统本地必须要添加的依赖,不添加的就会报错。
在src/test/java目录下建立操作HDFS的类,类中写入三个方法:read(),write()和append()。
public static void read(){ Configuration conf = new Configuration();//创建一个配置对象 conf.set("fs.defaultFS", "hdfs://192.168.131.142:9000");//在配置对象中设置namenode try { FileSystem fs = FileSystem.get(conf);//FileSystem FSDataInputStream inputstream = fs.open(new Path("/hadoop/abc.txt"));//打开HDFS上hadoop文件夹下的abc.txt文件 InputStreamReader isr = new InputStreamReader(inputstream);//创建输入流 BufferedReader br = new BufferedReader(isr);//按行读取 String str = br.readLine(); while(str!=null) { System.out.println(str); str = br.readLine(); } br.close(); isr.close(); fs.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
public static void write(){ Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://192.168.131.142:9000"); try { FileSystem fs = FileSystem.get(conf); FSDataOutputStream outputstream = fs.create(new Path("/hadoop/abc.txt")); outputstream.writeBytes("Congraduations!"); outputstream.close(); fs.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
public static void append(){//不会覆盖原先的内容,在原来的内容后边加入内容 Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://192.168.131.142:9000"); try { FileSystem fs = FileSystem.get(conf); FSDataOutputStream outputstream = fs.append(new Path("/hadoop/abc.txt")); outputstream.writeBytes("it's a good day!"); fs.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } }
在main方法中执行相应的方法。