• Linux系统
  • jdk1.8.0、Hadoop2.7.4安装包

创建文件夹

1
2
mkdir -p /export/servers /export/data /export/software 
#包位置、数据位置、安装包位置

进入 /export/software 导入jdk、hadoop安装包

解压jdk、hadoop安装包

1
tar -zxvf 安装包名 -C /export/servers

修改jdk、hadoop名字

1
2
mv jdk-tab jdk
mv hadoop-tab hadoop

配置jdk、hadoop环境

1
2
3
4
5
vi /etc/profile  #找不到命令解决方法:export PATH=/usr/sbin

export JAVA_HOME=/export/servers/jdk
export HADOOP_HOME=/export/servers/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

记得. /etc/porfile刷新配置文件

检查java、Hadoop是否配置成功

1
2
java -version
hadoop version

永久关闭防火墙或者放行端口

永久关闭防火墙

1
2
systemctl stop firewalld
systemctl disable firewalld

放行端口

1
2
3
4
firewall-cmd --zone=public --add-port=50070/tcp --permanent  #放行50070端口
firewall-cmd --reload #重新载入 返回 success 代表成功
# 查看 返回 yes 代表开启成功
firewall-cmd --zone=public --query-port=50070/tcp

配置hosts文件

1
2
vi /etc/hosts
ip地址 主机名

ssh免密协议

1
2
3
ssh-keygen -t rsa #不记得可用ssh-keygen --help 回车4次
ssh-copy-id ip地址或主机名 #输入主机密码
ssh ip地址或主机名 #查看是否免密进入成功

配置Hadoop的5个文件

localhost 是主机名 可以修改,注意前面和后面不能修改

1
cd /export/servers/hadoop/etc/hadoop/ #进入目录

vi hadoop-env.sh

1
2
# 找到JAVA_HOME并且配置你的路径
JAVA_HOME=/export/servers/jdk #配置java路径

vi core-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
<configuration>
<!--指定Hadoop所使用的文件系统,HDFS的NameNode地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<!--指定Hadoop运行时产生临时文件的存储目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/export/servers/hadoop/tmp</value>
</property>
</configuration>

vi hdfs-site.xml

1 这里的主机是1台主机,搭建高可用的hadoop请看其他教程

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<configuration>
<!--指定HDFS副本的数量-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!--Secondary namenode所在主机的IP和端口-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>localhost:50090</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/export/servers/hadoop/dir</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/export/servers/hadoop/data</value>
</property>
</configuration>

cp mapred-site.xml.template mapred-site.xml

先复制再编辑

vi mapred-site.xml

1
2
3
4
5
6
7
<configuration>
<!--指定MapReduce运行时的框架,在Yarn上运行-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>

vi yarn-site.xml

1
2
3
4
5
6
7
8
9
10
11
12
13
<configuration>
<!-- Site specific YARN configuration properties -->
<!--指定Yarn的ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value>
</property>
<!--Reducer获取数据的方式-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>

格式化Hadoop

cd /export/servers/hadoop/bin

要到Hadoop的bin目录下格式化

1
hdfs namenode -format

启动Hadoop服务

1
2
start-all.sh #开启
stop-all.sh #关闭

jps

查看有以下程序

①DataNode hdfs-site.xml
②NameNode hdfs-site.xml core-site.xml
③SecondaryNameNode hdfs-site.xml
④ResourceManager yarn-site.xml
⑤NodeManager yarn-site.xml
⑥Jps

访问HDFS UI

浏览器

IP:50070

遇到的问题

hadoop上传文件 没有到主机的路由

①检查防火墙有没有关闭

②ping服务看看有么有问题

③关闭SELinux

1
2
3
4
5
6
7
修改配置文件需要重启机器:

修改/etc/selinux/config文件

将SELINUX=enforcing改为SELINUX=disabled

重启虚拟机

无法访问50070 web网页

①检查配置文件,检查五个服务是否正常启动

②检查防火墙或者安全组有没有放行50070端口

1
2
3
netstat -lntu
# 检查防火墙有没有关闭
systemctl distable firewalld

③在hdfs-site.xml

1
2
3
4
<property>
<name>dfs.http.address</name>
<value>0.0.0.0:50070</value>
</property>

该文章Mec所著,如有错误请联系作者邮箱更改