Windows&Mac下开发环境配置(让hadoop在window里搭建)
配置目标
需要构建windows的开发环境:
1、需要在windows安装jdk
2、需要在windows安装maven
3、需要在windows安装idea
4、需要在windows配置hadoop的环境变量
知识要点
jdk、windows本地hadoop安装目录要求:不包含中文、不包含空格
5. hdfs的java API开发环境准备
1. 修改hosts文件
1. windows本
修改hosts文件
所在位置C:\Windows\System32\drivers\etc\hosts
将虚拟机中/etc/hosts文件以下内容,添加到windows的hosts文件末尾(根据自己的实际情况,修改ip地址)
192.168.51.100 node01.kaikeba.com node01
192.168.51.110 node02.kaikeba.com node02
192.168.51.120 node03.kaikeba.com node03
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-GHWM1AoM-1616053556786)(assets/image-20200515111732740.png)]
2. mac本
直接修改mac的/etc/hosts文件,添加如上内容即可
2. 安装jdk
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oMAJQh3a-1616053556790)(assets/image-20201029185819294.png)]
1. windows本
-
windows安装jdk 8
我这里用的是jdk-8u241-windows-x64.exe,也可以从oracle官网下载
-
双击安装
注意:jdk不要安装到有空格、有中文的目录
-
配置环境变量
右键
我的电脑
-》选择属性
-》高级系统设置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HEwB5sZw-1616053556791)(assets\1583202865534.png)]
- 高级-》环境变量
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tclR9Rm7-1616053556793)(assets\1583202902909.png)]
- 在“系统变量”中“新建”变量JAVA_HOME,值为自己的jdk具体路径,如C:\Java\jdk1.8.0_172(无中文、无空格)
![image-20200924141853713](assets/image-20200924141853713.png)
- PATH中添加值
%JAVA_HOME%\bin
![image-20200924142219034](assets/image-20200924142219034.png)
-
CLASSPATH值为
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar
-
jdk和jre
- JRE顾名思义是java运行时环境,包含了java虚拟机,java基础类库。是使用java语言编写的程序运行所需要的软件环境,是提供给想运行java程序的用户使用的。
- JDK顾名思义是java开发工具包,是程序员使用java语言编写java程序所需的开发工具包,是提供给程序员使用的。JDK包含了JRE,同时还包含了编译java源码的编译器javac,还包含了很多java程序调试和分析的工具:jconsole,jvisualvm等工具软件,还包含了java程序编写所需的文档和demo例子程序。
2. mac本
- mac也要安装jdk 8
3. windows中的hadoop环境配置
- windows操作系统需要配置一下hadoop环境
- mac不需要配置
- 因为windows涉及到了跨平台;大数据集群在linux操作系统中
- 而mac本质是unix操作系统
- 解压资料当中的
hadoop-3.1.4.tar.gz
这个压缩文件到一个没有中文、没有空格的目录下,类似下图路径
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sn8pRS6C-1616053556795)(assets/image-20201029191329717.png)]
- 将下图的bin目录的内容,拷贝到上图的
hadoop-3.1.4
的bin目录中
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nvrrZ0vz-1616053556796)(Windows&Mac本地开发环境配置.assets/image-20201130105030112.png)]
- 然后在windows当中配置hadoop的环境变量
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-okBql1aj-1616053556797)(assets/image-20201029192713427.png)]
- bin、sbin目录添加到path中
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-VefXHABX-1616053556797)(assets/image-20200515121242150.png)]
- 然后将下图中的hadoop.dll文件拷贝到C:\Windows\System32
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ToUBCmkU-1616053556798)(assets/image-20201029192849868.png)]
- 将hadoop集群的一下5个配置文件
core-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml、workers
,拷贝到windows下hadoop的C:\hadoop-3.1.4\etc\hadoop
目录下 - cmd中运行
hadoop
,出现如下效果
如果出现错误:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hqym2VWn-1616053556798)(assets/image-20201029194448691.png)]
那么,将C:\hadoop-3.1.4\bin
目录中的所有cmd文件用notepad++打开,进行文档格式转换
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lWXnXC5s-1616053556799)(assets/image-20201029194628987.png)]
方式如下:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nlGACf9O-1616053556799)(assets/image-20201029194800014.png)]
4个cmd文件都修改后,保存;再在cmd中运行hadoop
命令
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UtESq3I3-1616053556800)(assets/image-20201029194927668.png)]
- 虚拟机中hdfs集群启动前提下,cmd中运行
hdfs dfs -ls /
,查询出hdfs集群根目录的内容(每人的结果可能不一样,只要有文件列表即可)
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8fVsk17R-1616053556800)(assets/image-20201029195026309.png)]
- 注意:如果没有配置好windows的hadoop的环境变量,在windows下用IDEA编程时,会报以下错误
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cgoTw6LD-1616053556801)(assets/image-20200416162136344.png)]
- windows中,各版本的hadoop的winutils下载地址
4. mac中的开发环境准备(可跳过)
- mac下做hadoop编程,只需如下几步即可
- mac下安装jdk1.8
- 安装maven
- 安装idea
- 使用虚拟化软件,创建3节点的hadoop集群
- 若想在mac下操作hadoop集群,比如运行hadoop命令
- 那么将某虚拟机上如node01上的的hadoop文件夹
/kkb/install/hadoop-3.1.4
打包后下载到mac,并解压;比如我解压到我的mac的用户目录下/Users/bruce/hadoop-3.1.4
- 然后进入mac中,解压出来的hadoop目录的etc/hadoop目录,修改hadoop-env.sh的JAVA_HOME的值为mac的jdk路径,根据自己的实际情况进行修改,我的jdk路径上/System/Volumes/Data/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
- 修改mac用户主目录下的.bash_profile文件,添加JAVA_HOME、HADOOP_HOME环境变量
- 那么将某虚拟机上如node01上的的hadoop文件夹
export JAVA_HOME=/System/Volumes/Data/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home
export PATH=$PATH:$JAVA_HOME/bin
export HADOOP_HOME=/Users/bruce/hadoop-3.1.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
- 然后
source .bash_profile
;运行mapreduce的pi例子
bruce@localhost ~ % hadoop jar /Users/bruce/hadoop-3.1.4/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.4.jar pi 3 3
- 若报错:
org.apache.hadoop.security.AccessControlException: Permission denied: user=bruce, access=EXECUTE, inode="/tmp":hadoop:supergroup:drwxrwx---
- 权限问题引起的问题:
- 在虚拟机中使用hadoop用户,修改hdfs的/tmp目录的权限
[hadoop@node01 ~]$ whoami
hadoop
[hadoop@node01 ~]$ hdfs dfs -chmod -R 777 /tmp/
- 然后,可以在mac中运行pi例子了
5. 安装maven
-
maven是什么?
-
Apache Maven是一个软件项目管理和理解工具。基于项目对象模型(POM)的概念,Maven可以从一个中心信息管理项目的构建,报告和文档。
-
官网:http://maven.apache.org/
-
1. windows安装
- windows 安装maven;
- 解压安装包
apache-maven-3.6.1-bin.zip
到安装目录即可(也可以去官网下载maven) - 配置环境变量;增加MAVEN_HOME环境变量
- 解压安装包
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wgrr0w4a-1616053556801)(assets/image-20200515114644764.png)]
- PATH环境变量中增加
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k5MeZ8Tw-1616053556802)(assets/image-20200515122750211.png)]
- cmd中运行
mvn -v
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-l23GjaTr-1616053556802)(assets/image-20200515114818034.png)]
2. mac安装
- mac下安装(基于unix内核开发的操作系统)
- 解压maven压缩包
- 配置环境变量
3. maven仓库
-
创建maven工程后
- maven会自动的去本地仓库查看时候有所需的jar包
- 如果没有的话,默认去中央仓库,将jar包下载到本地;
- 以后如果再次使用此jar时,就直接使用本地仓库的jar即可
- 此过程是maven自动完成的
-
仓库
-
本地仓库:
MAVEN_HOME/conf/settings.xml文件中,localRepository用于配置本地仓库目录
默认是用户目录下的.m2/repository目录
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Jd9x65hJ-1616053556803)(assets\1583204026610.png)]
-
私服仓库:就是我们自己搭建的一个远程仓库
-
中央仓库:是官方或者第三方提供的仓库
- https://mvnrepository.com/
- cdh的 https://repository.cloudera.com/artifactory/cloudera-repos/
-
4. settings文件
- maven的配置文件settings.xml在maven的conf目录中
- 声明文件规范
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
- 本地仓库路径
<localRepository>/path/to/local/repo</localRepository>
- Maven是否需要和用户交互以获得输入。如果Maven需要和用户交互以获得输入,则设置成true,反之则应为false。默认为true
<interactiveMode>true</interactiveMode>
- 表示Maven是否需要在离线模式下运行。如果构建系统需要在离线模式下运行,则为true,默认为false。当由于网络设置原因或者安全因素,构建服务器不能连接远程仓库的时候,该配置就十分有用
<offline>false</offline>
- 当插件的组织Id(groupId)没有显式提供时,供搜寻插件组织Id(groupId)的列表。该元素包含一个pluginGroup元素列表,每个子元素包含了一个组织Id(groupId)。
pluginGroups
- 为仓库列表配置的下载镜像列表
mirrors
5. pom文件
<modelVersion>4.0.0</modelVersion> 项目的模板版本
<groupId>com.kaikeba</groupId> 可以用这个来标识公司
<artifactId>TestFlume</artifactId> 可以标识工程的作用
<packaging>jar</packaging> 指定打包类型
<version>1.0-SNAPSHOT</version> 制定项目版本
<dependencies>...</dependencies> 项目的依赖关系
<build></build> 构建项目的信息
总项目/ pom.xml 总项目的pom配置文件
子项目1/ pom.xml 子项目1的pom文件
子项目2/ pom.xml 子项目2的pom文件
6. maven简单的命令
mvn clean
mvn clean package
如果依赖自动下载有问题,需要自己手动去仓库下载jar包,然后使用如下命令添加依赖包进仓库,要用 mvn install这个命令将jar包打进仓库
mvn install:install-file -Dfile=D:\junit-3.8.2.jar -DgroupId=junit -DartifactId=junit -Dversion=3.8.2 -Dpackaging=jar
6. 安装idea
- windows&mac的安装都比较简单,和其他软件安装一样,只需按照提示选择选项下一步即可
- IDEA有两个版本商业版和社区版
- 学习的话,社区版能满足学习要求,使用社区版即可。
- idea官网:https://www.jetbrains.com/
- 根据自己的操作系统,选择合适的idea版本
- idea下载地址https://www.jetbrains.com/idea/download/#section=windows;
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ry8QopZI-1616053556804)(assets/image-20200515115119042.png)]
1. idea使用简介
第一次打开的界面
Create New Project
创建一个新项目。Import Project
导入一个已有项目。Open
打开一个已有项目,可以直接打开 Eclipse 项目,但是由于两者 IDE 下的项目配置不一样,所以项目还是需要配置的。Check out from Version Control
可以通过服务器上的项目地址 Checkout Github 上面项目或是其他 Git 托管服务器上的项目。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zlyBhqbQ-1616053556804)(assets\1583120030652.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-MNozmFC7-1616053556804)(assets\1583129575953.png)]
接下来我们可以创建工程(project),练习java的基础的话我们可以选择java工程,课程中我们都是用maven工程,使用maven来管理我们的项目,这里我们注意要选择一下JDK版本
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dkM6L9gC-1616053556805)(assets\1583139571686.png)]
接下来取工程名字,选择存放位置
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qMxYINr0-1616053556805)(assets\1583139680636.png)]
下图从左至右是工程结构,工程的pom文件,以及maven选项
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KPzyNOo8-1616053556806)(assets\1583142648796.png)]
到这里我们就创建好一个工程,可以开始写我们的代码了
IDEA的常用快捷键
Ctrl+Alt+v :补全返回值
Ctrl+E:显示最近编辑的文件列表
Ctrl+F12:显示当前文件的结构
Ctrl+P:显示方法的参数信息
Ctrl+Alt+T:可以将代码包在一块内,例如try/catch
Ctrl+H:显示类结构图
Alt+回车:导入包自动修正
Ctrl+/:单行注释
Ctrl+Shift+/:块注释
方法或者类注释:输入/**
2. idea配置maven
- 按图操作
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rD3iSlrU-1616053556806)(assets/image-20200527155316123.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-42TVm7iC-1616053556807)(assets/image-20200527155822380.png)]
-
上图中:
-
③找到自己安装的maven目录
-
④将自己maven的settings.xml文件拷贝到此目录
- 由于接下来的maven编程中,有些jar包只能从cdh的仓库下载,有些从aliyun下载更快,两个镜像都需要,所以可以在settings.xml中的mirrors节点增加如下内容:
<mirror> <id>nexus-aliyun</id> <mirrorOf>*,!cloudera</mirrorOf> <name>Nexus aliyun</name> <url>http://maven.aliyun.com/nexus/content/groups/public</url> </mirror>
- idea会尝试从aliyun仓库下载jar包,如果下载不下来,再尝试从cdh的仓库下载
-
⑤默认目录即可
-