Hadoop综合编程
一、hadoop编程
1、工具:
idea:社区版和终极版(注册,参见https://blog.****.net/qq_35246620/article/details/79050895)
maven:跟linux安装差不多
(1)解压apache-maven-3.3.9.jar
(2)找到conf目录下settings.xml文件
(3)打开并修改settings.xml
(4)创建文件夹D:\software\apache-maven-3.3.9\repository
(5)idea配置maven路径
二、idea安装插件
三、创建工程
1、安装scala
2、创建maven工程
3、next
4、newprojece
5、创建project名字和地址
成功
6、删除App、AppTest、MySpec
7、将pom.xml文件中标红内容删除
8、将老师项目的pom.xml的<dependencies></dependencies>和<build></build>复制到自己创建的maven项目中
四、通过使用maven来自动管理和更新包
1、登陆https://mvnrepository.com
2、找到自己需要的包
3、点击所需的版本
4、复制dependency里的内容到自己的pom.xml里
注意:一定在dependencies里
五、hadoop编程
1、修改package
2、将老师给的java文件(3个类)放在此包下
3、创建一个HDFS的类
快捷键:psvm
4、定义一个配置文件
根据配置:
Configuration conf = new Configuration(); conf.set("fs.defaultFS", "hdfs://192.168.137.130:9000/");
5、定义一个文件系统
6、查看FileSystem有多少属性
7、由于有两种方式传参,因此可以直接传conf
8、创建一个文件夹
9、分析mkdirs方法
返回boolean类型
10、运行
注意:
(1)要打开hdfs
(2)要配置dfs无限制
(3)要离开安全模式
六、上传文件
用这个copyFromLocalFile方法上传文件
注意:
用"C:/Users/dell/Desktop/hellohadoop.txt"这个格式传参给Path
六、下载文件
在不清楚具体下载方法的情况的思路:
1、在服务器输入hdfs dfs 查看命令帮助
2、与copyFromLocal相对应,我们找的是copyToLocal
3、报错
4、需要在window解压部署hadoop
* 1. windows 解压hadoop2.8.1
* 2. 设置环境变量
* HADOOP_HOME=E:\BIGDATA\hadoop-2.8.1
* PATH=%HADOOP_HOME/bin;xxxxxxx
* 3.winutils.exe hadoop.dll 放到bin文件夹
* 4.重启笔记本 生效
5、成功
6、其他
七、研究wordcount
1、删除原来的老师给的wordcount,新建自己的wordcount2,仿照官网的类名
2、将官网的内容复制到wordcount2(http://hadoop.apache.org/docs/r2.8.4/hadoop-mapreduce-client/hadoop-mapreduce-client-core/MapReduceTutorial.html)
3 、run
需要传输入/输出两个参数
4、先不在yarn平台配置,本地程序参数里面配置测试
5、在window新建目录
输入:C:\Users\dell\Desktop\hadoop\input\HBinztast.log
输出:C:\Users\dell\Desktop\hadoop\output\(注意:不要建output文件夹,会出错)
报错:
Exception in thread "main" java.lang.UnsatisfiedLinkError: org.apache.hadoop.io.nativeio.NativeIO$Windows.access0(Ljava/lang/String;I)
6、百度解决
https://www.cnblogs.com/duking1991/p/6111490.html
7、解压hadoop-2.8.1-src源码
8、找到NaticeIO.java所在位置
9、新建一个包,并存放NativeIO.java:
org.apache.hadoop.io.nativeio
10、修改606源码,return true;
注意:如果报错只有可读权限,那将找到这个文件夹,将只读权限去掉即可
11、run
八、maven打包给linux运行
1、打包
2、上传到linux服务器
rz
3、提交到yarn
yarn jar /opt/software/d3-1.0-SNAPSHOT.jar com.ruozedata.hadoop.WordCount2 /wordcount/input /wordcount/output5
注意:这里不是yarn jar xxx.jar wordcount 而是用自己包的名和具体的方法,所以是
yarn jar /opt/software/d3-1.0-SNAPSHOT.jar com.ruozedata.hadoop.WordCount2 /wordcount/input /wordcount/output5