打开idea
选择插件在Marketplace里面输入Big Data Tools,点击install
之后在右边就显示出了Big Data Tools
点击左上角+,即可添加
先选择HDFS
之后就会出来这样的界面
最上面的name随便写,这个是在idea里面看的
如果你安装的是Windows的Hadoop, 那么选第一个,如果你安装的是Linux的,那么选第二个
选完之后,下面就会出现两个框框
第一个里面写的是地址,写哪个地址了?看下面
浏览器输出http://192.168.206.200:50070(注意输入你的地址)
看下面红色框框里面的,就写那个
如果你是集群的话,端口号可能是8020,到底是多少你要看你http://192.168.206.200:50070里面写的多少
我是root,所以我写root
这样就弄好了
但是,但是,但是,但是,但是,你可能还不对
如果报错HADOOP_HOME没有找到,那么你还需要添加环境变量
把linux上的hadoop下载到window上, 然后将并里面的文件替换了, 具体替换加QQ群302493982, 群文件里面有, 找到对应版本的bin文件, 直接全部覆盖到原目录上
再将hadoop.dll复制一份放到c盘window文件夹下
加环境变量,以及path
注意,注意,注意,注意,注意,一定要加一个HADOOP_USER_NAME,值是多少,要和Linux上的用户名一样,我是root,要是不配,之后idea写代码会报错用户没有权限
这样就可以了,但是还是连不上,这是个bug,你去linux上上传一个hdfs文件就能连上了
hadoop dfs -mkdir /aaa
或者重启一下, 直接关机, 全部重启, 再开开就好了
然后就能连上了,醉了,太麻烦了
要装yarn,要装yarn,要装yarn,要是不装死活连不上,
注意端口号是8088,yarn的端口号
这个好连,只填那个就能用了
下面那一堆是隧道技术之类用的,不用管,
必须要运行一个spark程序,注意要提交到spark不能提交到yarn里面,这样就能连接了,打开浏览器看是那个端口,然后连就行了
端口号是4040(有时候是4041或其他), 不是8080
并且要在spark有运行的任务的时候才能连上
运行示例:
进入到spark-2.2.2-bin-without-hadoop/examples/jars内 运行
spark-submit --master spark://node09:7077 --deploy-mode cluster --executor-memory 700m --executor-cores 2 --class org.apache.spark.examples.SparkPi spark-examples_2.11-2.2.2.jar 1000
新建maven项目
破文件:pox.xml
<dependencies>
<dependency>
<groupId>org.apache.hadoopgroupId>
<artifactId>hadoop-commonartifactId>
<version>2.10.0version>
dependency>
<dependency>
<groupId>org.apache.hadoopgroupId>
<artifactId>hadoop-hdfsartifactId>
<version>2.10.0version>
dependency>
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.13version>
dependency>
dependencies>
注意你要加入配置文件
新建两个目录,conf是你配hadoop的时候的目录,你可能下面是local我是ha,注意,注意,注意,要在ha(或者local)上变成资源文件,不要在conf或者main上变
还要弄两个文件,从你集群上下载
core-site.xml
hdfs-site.xml
写java
main里面写:
Configuration configuration;
FileSystem fileSystem;
@Before
public void conn() throws IOException {
//1.配置
configuration = new Configuration(true);
//2.文件系统
fileSystem = FileSystem.get(configuration);
}
@After
public void close() throws IOException {
fileSystem.close();
}
然后就能单元测试了,不用连接乱七八糟,直接写就行
@Test
public void mkdir() throws IOException {
Path path = new Path("/hello");
if (fileSystem.exists(path)) {
fileSystem.delete(path, true);
}
fileSystem.mkdirs(path);
}