- 前言:搭建期间各种踩坑,本教程基本上能解决Hadoop伪分布式集群搭建以及Hadoop-eclipse-plugin插件使用的各种坑
- 欢迎带原文链接进行转载:https://www.jianshu.com/p/59fe6cdba293
搭建环境
- 系统:Centos7.5
- Hadoop版本:Hadoop-2.8.5
- JDK版本:jkd1.8
- Eclipse版本:Version: 2018-09 (4.9.0)
- Hadoop-eclipse-plugin插件版本:2.8.5
- 插件额外需要的文件:hadoopbin_for_hadoop2.8.5.zip
所有资源下载链接:https://download.csdn.net/download/qq_40702317/10780754
一:关闭系统防火墙以及开放安全组端口(云服务器必须)
- 1.关闭防火墙
Centos6下:
service iptables stop;#立即关闭防火墙,但是重启后失效。
service iptables start;#立即开启防火墙,但是重启后失效。
chkconfig iptables on;#开启防火墙,重启后生效
chkconfig iptables off;#关闭防火墙,重启后生效Centos7下:
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
- 2.开放安全组,网上教程非常多
贴心小提示:
用云服务器搭建的话,很容易遭到黑客攻击,利用Hadoop的漏洞攻击服务器,让我们的服务器给他们挖矿,建议配置安全组时,仅允许自己的ip进行访问,当然在搭建Hadoop集群时,就需要单独配置给每台服务器公网ip访问的权限
二:配置主机名
Centos6下:
vim /etc/sysconfig/network 修改文件内容
source /etc/sysconfig/network 使修改生效
- 修改内容如下:
NETWORKING=yes
HOSTNAME=hadoop01
Centos7下:
vim /etc/hostname
修改内容为主机名,修改后重启系统(可以等下面讲解的配置全部修改完成之后进行重启)
三:修改hosts
vim /etc/hosts
以云服务器为例
增加内容为:本机私网ip 主机名
- 特别注意:如果是本机映射,只能填本机私网ip,如果是其他云服务器,则填写其他云服务器的公网ip地址加主机名,不然无法启动namenode
四:配置免密登录
ssh-keygen
ssh-copy-id [user]@[host]
五:安装jdk以及Hadoop
tar -xf hadoop-2.8.5.tar.gz -C /home/software
tar -xf jdk-8u181-linux-x64.tar.gz -C /home/software
六:配置环境变量
vim /etc/profile
- 增加内容:
export JAVA_HOME=/home/software/jdk1.8.0_181
export HADOOP_HOME=/home/software/hadoop-2.8.5
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin- source /etc/profile 使配置生效
七:配置Hadoop
- ①.进入配置文件目录
cd /home/software/hadoop-2.8.5/etc/hadoop
- ②.修改Hadoop启动所需的jdk环境目录
vim hadoop-env.sh
修改内容为:export JAVA_HOME=/home/software/jdk1.8.0_181
- ③vim core-site.xml 修改内容如下
<configuration> <property> <!--用来指定hdfs的老大,namenode的地址--> <name>fs.defaultFS</name> <value>hdfs://miracle01:9000</value> </property> <property> <!--用来指定hadoop运行时产生文件的存放目录--> <!--如果不配置,默认放在/tmp目录下,这是一个临时目录,数据>可能会被系统清除--> <name>hadoop.tmp.dir</name> <value>/home/software/hadoop-2.8.5/tmp</value> </property> </configuration> 欢迎带原文链接进行转载:https://www.jianshu.com/p/59fe6cdba293
④vim hdfs-site.xml 修改内容如下
<configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.client.use.datanode.hostname</name> <value>true</value> </property> <property> <name>dfs.datanode.use.datanode.hostname</name> <value>true</value> </property> <property> <name>dfs.permissions</name> <value>false</value> </property> </configuration> 欢迎带原文链接进行转载:https://www.jianshu.com/p/59fe6cdba293
⑤vim mapred-site.xml 修改内容如下
- 注意:在/etc/hadoop的目录下,只有一个mapred-site.xml.template文件,复制一个
cp mapred-site.xml.template mapred-site.xml<configuration> <property> <!--指定mapreduce运行在yarn上--> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> 欢迎带原文链接进行转载:https://www.jianshu.com/p/59fe6cdba293
⑥vim yarn-site.xml 修改内容如下
<configuration> <property> <!--指定yarn的老大resourcemanager的地址--> <name>yarn.resourcemanager.hostname</name> <value>miracle01</value> </property> <property> <!--NodeManager获取数据的方式--> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> 欢迎带原文链接进行转载:https://www.jianshu.com/p/59fe6cdba293
⑦vim slaves 配置主从节点,因为是伪分布式,只需要配置当前主机名
miracle01
⑧reboot 重启
⑨hadoop namenode -format 格式化namenode存储路径
⑩start-all.sh 启动Hadoop
1.查看是否启动成功
- 2.如果启动失败,查看Hadoop安装目录下的logs目录中的报错信息,根据报错信息排错
3.如果启动成功,浏览器访问,出现如下界面代表成功
访问地址 : 云服务器公网ip:50070端口
七:使用Hadoop-eclipse-plugin插件
1.下载Hadoop-eclipse-plugin.jar,把jar包放到Eclipse安装目录下的plugins下,然后重启Eclipse
2.解压Hadoop-2.8.5.tar.gz到本机电脑
本人目录:D:\Java\eclipsejee201809\Needs\hadoop-2.8.5
- 3.配置本机电脑的环境变量:
HADOOP_USER_NAME=root
HADOOP_HOME=D:\Java\eclipsejee201809\Needs\hadoop-2.8.5
PATH=%HADOOP_HOME%\bin
- 4.云服务修改hdfs存储文件的权限
hadoop fs -chmod 777 /
- 5.开启Eclipse,配置插件,详细看图
- 6.导入插件额外需要的文件,解压hadoopbin_for_hadoop2.8.5.zip,导入到本机Hadoop根目录的bin目录下,有的电脑还需要把hadoop.dll放到系统盘下的C:\Windows\System32目录下
- 7.修改本机电脑的hosts文件
云服务器公网ip 云主机名
188.131.147.117 miracle01
- 巨坑解释:因为我们拿数据时,先请求到namenode中,namenode返回的是datanode的地址,但是datanode注册的地址是服务器的私网ip,我们本身电脑是无法访问私网ip的,就算是返回的是注册时使用的是主机名,在我们电脑里也没有进行映射,所以我们需要在自己电脑的hosts文件下进行映射
- 8.如果提示权限问题
在云服务器执行命令:hadoop fs -chmod 777 /
- 9.连接成功后就可以用插件进行操作了