## Hadoop安装
(初次学习经验不足之处望留言指教)
环境工具(VMware、MobaXterm、CentOS7、JDK8、Hadoop2.9.2)
所需工具环境都在此链接中可以进行提取
链接:https://pan.baidu.com/s/1VCXtS6fm6YvHMtBFrgNx6Q
提取码:xpgu
一、 VMware的安装
在上述链接中有详细的安装流程
在这里补充一下安装系统镜像后设置IP的办法(我这里用的是自动获取动态IP)配置完成后安装MobaXterm工具对虚拟机进行操作
创建session 写入获取到的 ip地址就ok了
二、JDK的安装
1.配置主机名
我们可以讲JDK放到我们的usr目录下进行安装
2.拖到usr后进行安装
[root@localhost usr]# rpm -ivh jdk-8u171-linux-x64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:jdk1.8-2000:1.8.0_171-fcs ################################# [100%]
Unpacking JAR files...
tools.jar...
plugin.jar...
javaws.jar...
deploy.jar...
rt.jar...
jsse.jar...
charsets.jar...
localedata.jar...
[root@localhost usr]#
默认情况乱下,JDK安装在/usr/java 路径下
3.配置环境变量
**这里我们是把环境变量配置到自己的用户设置中
[root@localhost ~]# vi .bashrc
#按i 出现insert 进行编辑
JAVA_HOME=/usr/java/latest
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.
export JAVA_HOME
export PATH
export CLASSPATH
#复制以上代码后 按esc shift+zz保存退出
#使用source命令重新加载变量
[root@localhost ~]# source .bashrc
4.配置主机名
[root@localhost ~]# vi /etc/hostname
#进入后将里面的代码删掉换成如下
CentOS
#修改完成后主机名需要reboot重启
[root@localhost ~]#reboot
5.配置主机名与IP的映射关系
(1)查看ip
[root@CentOS ~]# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:1b:63:cd brd ff:ff:ff:ff:ff:ff
inet 192.168.154.137/24 brd 192.168.154.255 scope global noprefixroute dynamic ens33
valid_lft 1780sec preferred_lft 1780sec
inet6 fe80::fc9c:25a3:3d54:b9e6/64 scope link noprefixroute
valid_lft forever preferred_lft forever
```powershell
(2)设置主机名与ip映射关系
[root@CentOS ~]# vi /etc/hosts
#在最下面添加上查看到的ip 和主机名
192.168.154.137 CentOS
6.配置SSH免密码登陆(Linux系统间的登陆方式)
(1)生成认证所需要的公私钥对
[root@CentOS ~]# ssh-keygen -t rsa
#输入上面的命令后会出现一些代码我们这里一直按回车就可以
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:xQZsB1qmLTmdShXT9XWNDV9F8hWmgLe8o1gK7NY8m58 root@CentOS
The key's randomart image is:
+---[RSA 2048]----+
| .O+.o. oB@|
| Xo*o...+=*|
| B.+.* ... o|
| . + o o |
| . . S . |
| o . o |
| . + + . . |
| o *... |
| . o+E |
+----[SHA256]-----+
[root@CentOS ~]#
(2)添加信任列表,继而实现免密码认证
[root@CentOS ~]# ssh-copy-id CentOS
#输入以上命令后会出现选择yes/no 我们是第一次设置 这里输入yes按回车即可
(3)测试是否设置ssh免密码成功
[root@CentOS ~]# ssh root@CentOS
#如果无需密码输入说明ssh连接成功
Last failed login: Fri Sep 25 14:19:39 CST 2020 from centos on ssh:notty There was 1 failed login attempt since the last successful login. Last login: Fri Sep 25 11:58:52 2020 from 192.168.73.1
#如果想要退出登陆 输入 exit命令即可
#我们在做一些连接时 注意!!!注意!!!注意!!!一定要把防火墙关闭
#关闭服务
[root@CentOS ~]# systemctl stop firewalld.service
#关闭开机自启
[root@CentOS ~]# systemctl disable firewalld.service
# 查看防火墙状态
[root@CentOS ~]# firewall-cmd --state
not running
到这里我们的JDK以及基本的环境就算是安装完成了
二、安装Hadoop
在上面的网盘连接中我准备了一个hadoop-2.9.2.tar.gz
这个版本也是小编正在学习的一个版本,若有更好的建议请各位读者私信或留言
1.将hadoop-2.9.2.tar.gz直接拉到root下
2.解压hadoop-2.9.2.tar.gz
#将hadoop-2.9.2.tar.gz 解压到C盘符的usr下
[root@CentOS ~]# tar -zxf hadoop-2.9.2.tar.gz -C /usr/
#执行上面的命令后会卡十几秒这个时候耐心等待就好了
3.配置环境变量 HADOOP_HOME
[root@CentOS ~]# vi .bashrc
#配置成这样就可以了
JAVA_HOME=/usr/java/latest
PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
CLASSPATH=.
HADOOP_HOME=/usr/hadoop-2.9.2/
export JAVA_HOME
export PATH
export CLASSPATH
export HADOOP_HOME
# 重新加载HADOOP_HOME环境变量
[root@CentOS ~]# source .bashrc
4.配置文件
(1)配置core-site.xml
[root@CentOS ~]# cd /usr/hadoop-2.9.2/
[root@CentOS hadoop-2.9.2]# vi etc/hadoop/core-site.xml
#进入文件后进行编辑
<configuration>
<!--nn访问入口-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://CentOS:9000</value>
</property>
<!--hdfs工作基础目录-->
<property> <name>hadoop.tmp.dir</name>
<value>/usr/hadoop-2.9.2/hadoop-${user.name}</value>
</property>
</configuration>
(2)配置hdfs-site.xml
[root@CentOS ~]# cd /usr/hadoop-2.9.2/
[root@CentOS hadoop-2.9.2]# vi etc/hadoop/hdfs-site.xml
#进入文件后进行编辑
<configuration>
<!--block副本因子-->
<property> <name>dfs.replication</name>
<value>1</value>
</property>
<!--配置Sencondary namenode所在物理主机-->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>CentOS:50090</value>
</property>
</configuration>
(3)配置slaves文本文件
[root@CentOS ~]#vi /usr/hadoop-2.9.2/etc/hadoop/slaves
#将里面的localhost换成CentOS
这里我们就基本上完成了Hadoop的安装与配置
最后我们还剩一点点我们要启动HDFS系统对HDFS系统做一次格式化
*
三、启动HDFS系统(为其做格式化)
(1)在第一次启动HDFS系统的时候,需要对系统做一次格式化,主要为后续的启动做准备,这里需要注意只有再第一次启动的时候才需要这么做,以后再次启动HDFS的时候可以忽略这一步骤!
[root@CentOS~]#hdfs namenode -format
#执行命令以后会出现一些INFO的日志文件我们看到下方出现 successfully表示我们成功了
在创建HDFS中NameNode服务启动时候需要加载的镜像文件。
(2)启动HDFS服务
启动脚本放置再sbin目录下,因为我们已经将sbin目录设置到 PATH中了,所以可以直接使用start-dfs.sh脚本启动HDFS, 如果想关闭HDFS系统可以使用stop-dfs.sh
[root@CentOS ~]# start-dfs.sh
#启动时如果出现了yes/no的选项 我们写入yes
启动成功以后,用户可以使用JDK自带的jps 指令查看java进 程,正常可以看到DataNode、NameNode、 SecondaryNameNode三个服务。
[root@CentOS hadoop-2.9.2]# jps
8912 DataNode
8769 NameNode
9276 SecondaryNameNode
9903 Jps
最后用户可以访问NameNode服务内嵌的WEB页面,查看HDFS 的运行状态,默认该服务的监听端口是50070 ,访问效果如下:
Trash回收站
HDFS为了规避由于用户的误操作,导致的数据删除丢失,用户可以在构建HDFS的时候,配置HDFS的垃圾回收功能。所谓的垃圾回收,本质上是在用户删除文件的时候,系统并不会立即删除文件,仅仅是将文件移动到垃圾回收的目录。然后更具配置的时间,一旦超过该时间,系统会删除该文件,用户需要在到期之前,将回收站的文件移除垃圾站,即可避免删除。开启垃圾回收,需要在core-site.xml中添加如下配置,然后重启hdfs即可
<!--垃圾回收,5 minites-->
<property>
<name>fs.trash.interval</name>
<value>5</value>
</property>
到这里我们的HADOOP就按照完成了