大数据笔记(三):IDEA下使用Maven工程与HDFS进行简单交互

最近在看厦大林子雨老师的mooc,3.6讲使用Eclipse开发环境与HDFS进行交互,我比较喜欢IDEA的风格,这篇blog记录了在使用IDEA时踩过的坑。

配置Maven环境

  1. Maven是什么?
    Maven是基于项目对象模型(POM project object model),可以通过一小段描述信息(配置)来管理项目的构建,报告和文档的软件项目管理工具。(我的理解:通过pom.xml自动下载jar包并优化协作开发共享包的插件,而不用手动去导入jar包)
  2. 下载 Maven
  3. 单步执行以下命令
    $ cd Downloads    #进入下载文件夹
    $ sudo tar -zxvf apache-maven-3.6.1-bin.tar.gz -C /usr/local  #解压
    $ cd /usr/local  #进入解压后的目录
    $ sudo mv apache-maven-3.6.1 maven  #重命名
    $ sudo gedit ~/.bashrc #添加环境变量
    
  4. 环境变量中添加
    #maven
    export M2_HOME=/usr/local/maven
    export CLASSPATH=$CLASSPATH:$M2_HOME/lib
    export PATH=$PATH:$M2_HOME/bin
    
    在这里插入图片描述
    $ source ~/.bashrc  #刷新环境变量配置
    $ mvn -v #查看Maven版本
    
    如图出现版本号则安装成功在这里插入图片描述

创建Maven工程

  1. IDEA中NewProject创建Maven
    在这里插入图片描述
  2. pom.xml中填入以下内容(需要Maven加载的jar包集合)
    <dependencies>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-common</artifactId>
                <version>2.7.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-hdfs</artifactId>
                <version>2.7.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-client</artifactId>
                <version>2.7.1</version>
            </dependency>
        </dependencies>
        <build>
            <pluginManagement>
                <plugins>
                    <plugin>
                        <artifactId>maven-clean-plugin</artifactId>
                        <version>3.0.0</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-resources-plugin</artifactId>
                        <version>3.0.2</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <version>3.7.0</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <version>2.20.1</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-jar-plugin</artifactId>
                        <version>3.0.2</version>
                        <configuration>
                            <archive>
                                <manifest>
                                    <addClasspath>true</addClasspath>
                                    <classpathPrefix>lib</classpathPrefix>
                                    <mainClass>cn.itcast.hdfs.TestHdfsClient</mainClass>
                                </manifest>
                            </archive>
                        </configuration>
                    </plugin>
                    <plugin>
                        <artifactId>maven-install-plugin</artifactId>
                        <version>2.5.2</version>
                    </plugin>
                    <plugin>
                        <artifactId>maven-deploy-plugin</artifactId>
                        <version>2.8.2</version>
                    </plugin>
                </plugins>
            </pluginManagement>
        </build>
    
  3. 右下角开始导入
    在这里插入图片描述

导入HDFS配置文件

将Hadoop目录中(usr/local/hadoop/etc/hadoopcore-site.xmlhdfs-site.xml复制到工程中的resources
在这里插入图片描述

创建测试类``

该测试类的功能是测试HDFS中user/hadoop下是否存在test.txt文件,目前是不存在的

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

public class HadoopTest {
    public static void main(String[] args) {
        try {
            String filename = "hdfs://localhost:9000/user/hadoop/test.txt";
            Configuration conf = new Configuration();
            FileSystem fs = FileSystem.get(conf);
            if(fs.exists(new Path(filename))){
                System.out.println("文件存在");
            }else{
                System.out.println("文件不存在");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

测试结果:
在这里插入图片描述
上传test.txt至hdf的user/hadoop下:
在这里插入图片描述
重新运行HadoopTest:
在这里插入图片描述

结语:使用Maven能高效的管理项目中所需要的jar包,免去手动导入的麻烦。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值