Hadoop2.8.5 安装过程

本文详细介绍如何在CentOS7环境下搭建Hadoop2.8.5集群,包括虚拟机配置、SSH免密码登录、JDK与Hadoop安装、配置文件详解及启动测试,适合初学者快速上手。

1 下载hadoop

安装版本:CentOS7 Hadoop2.8.5 JDK1.8
说明:Hadoop从版本2开始加入了Yarn这个资源管理器,Yarn并不需要单独安装。只要在机器上安装了JDK就可以直接安装Hadoop,单纯安装Hadoop并不依赖Zookeeper之类的其他东西。
下载Hadoop:http://www-eu.apache.org/dist/hadoop/common/hadoop-2.8.5/ hadoop-2.8.5.tar.gz
在这里插入图片描述

2 安装3个虚拟机并实现ssh免密码登录

2.1安装3个机器
这里用的Linux系统是CentOS7,安装方法参考:
安装6个机器,机器名称分别叫master、slaver1、slaver2、slaver3、slaver4、slaver5。
说明:为了免去后面一系列授权的麻烦,这里直接使用root账户登录和操作了。

修改各节点的IP,我的机器名和ip的对应关系是:

vim /etc/sysconfig/network-scripts/ifcfg-ens33 

配置如下图:master的IP地址设置,其中网关和DNS每个节点都一样
在这里插入图片描述
修改其中的IPADDR,各自的IP地址分别为

mastaer 192.168.144.130
slaver1 192.168.144.131
slaver2 192.168.144.132
slaver3 192.168.144.133
slaver4 192.168.144.134
slaver5 192.168.144.135

保存退出后重启网络服务

systemctl restart network

使用ifconfig命令,查看这6个机器的IP。
在这里插入图片描述

2.2 修改主机名
永久修改

hostnamectl set-hostname master

或者编辑配置文件/etc/hostname,在此文件中输入要修改的主机名

vim /etc/hostname

如图为master的/etc/hostname文件内容
在这里插入图片描述

2.3修改/etc/hosts文件

vim /etc/hosts

打开之后的内容是:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

然后在后面添加

192.168.144.130 master
192.168.144.131 slaver1
192.168.144.132 slaver2
192.168.144.133 slaver3
192.168.144.134 slaver4
192.168.144.135 slaver5

每个节点都一样的配置,如下为master的/etc/hosts配置
在这里插入图片描述
2.4 关闭防火墙

查看状态:
systemctl status firewalld

停止:

 systemctl disable firewalld

禁用:

 systemctl stop firewalld

在开机时禁用一个服务:

systemctl disable firewalld.service

关闭以后查看状态:
在这里插入图片描述

2.5 ssh免密登陆
每个机器上都生成密码对

ssh-keygen –t rsa

生成其无密码密钥对,一路回车键,生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录

接下来要做的事情是在6台机器的/root/.ssh/目录下都存入一个内容相同的文件,文件名称叫authorized_keys,文件内容是我们刚才为6台机器生成的公钥。

为了方便,我下面的步骤是现在master上生成authorized_keys文件,然后把6台机器刚才生成的公钥加入到这个master的authorized_keys文件里,然后在将这个authorized_keys文件复制到其他节点上。

touch  /root/.ssh/authorized_keys

把id_rsa.pub追加到授权的key里面去:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

再将其余节点的key加进去,之后是这样的:
在这里插入图片描述
修改文件"authorized_keys"权限,这步骤很重要,很多莫名其妙的错误有可能就是权限的问题

chmod 600 ~/.ssh/authorized_keys

master/root/.ssh/目录下已经有authorized_keys这个文件了,该文件的内容也已经OK了,接下来要将该文件复制到其他节点的/root/.ssh/

scp ~/.ssh/authorized_keys slave1:~/.ssh/ 
scp ~/.ssh/authorized_keys slave2:~/.ssh/
scp ~/.ssh/authorized_keys slave3:~/.ssh/
scp ~/.ssh/authorized_keys slave4:~/.ssh/
scp ~/.ssh/authorized_keys slave5:~/.ssh/

测试一下各个节点之间是否可以互相免密登录

ssh slaver1
ssh slaver2

在这里插入图片描述

3 安装jdk和hadoop

3.1 安装JDK
在每一个节点上都安装jdk1.8,要将Centos7自带的jdk卸载掉,重新安装(最好安装1.8版本,最初安装最新版JDK_11,但是后续安装spark报错,又换成了JDK1.8)。
3.2 安装hadoop
(1)上载文件并解压缩
上传hadoop-2.8.5.tar.gz到目录/usr/local/hadoop/下,并解压,删除安装包:

tar hadoop-2.8.5.tar.gz
rm -rf hadoop-2.8.5.tar.gz

(2) 新建几个目录

cd /usr/local/hadoop/hadoop-2.8.5/
mkdir tmp
mkdir hdfs
mkdir hdfs/name
mkdir hdfs/data

(3) 修改etc/hadoop中的一系列配置文件

cd /usr/local/hadoop/hadoop-2.8.5/etc/hadoop
vim hadoop-env.sh

修改JAVA安装路径

export JAVA_HOME=/usr/local/jdk/jdk1.8.0_181

在这里插入图片描述

  • 修改core-site.xml
<configuration>
<!--配置hdfs文件系统的命名空间-->
  <property>
  <name>fs.defaultFS</name>
 <value>hdfs://master:9000</value>
  </property>
<!-- 配置操作hdfs的存冲大小 -->
  <property>
  <name>io.file.buffer.size</name>
 <value>4096</value>
  </property>
<!-- 配置临时数据存储目录 -->
  <property>
  <name>hadoop.tmp.dir</name>
  <value>/usr/local/hadoop/hadoop-2.8.5/tmp</value>
  </property>
</configuration>

在这里插入图片描述

  • 修改hdfs-site.xml
<configuration>

<!--配置副本数-->
  <property>
  <name>dfs.replication</name>
  <value>3</value>
  </property>
<!--hdfs的元数据存储位置-->
  <property>
  <name>dfs.namenode.name.dir</name>
  <value>/usr/local/hadoop/hadoop-2.8.5/hdfs/name</value>
 </property>
<!--hdfs的数据存储位置-->
 <property>
  <name>dfs.datanode.data.dir</name>
  <value>/usr/local/hadoop/hadoop-2.8.5/hdfs/data</value>
 </property>
<!--hdfs的namenode的web ui 地址-->
 <property>
  <name>dfs.http.address</name>
 <value>master:50070</value>
  </property>
<!--hdfs的snn的web ui 地址-->
  <property>
 <name>dfs.secondary.http.address</name>
  <value>master:50090</value>
  </property>
<!--是否开启web操作hdfs-->
 <property>
  <name>dfs.webhdfs.enabled</name>
 <value>true</value>
  </property>
<!--是否启用hdfs权限(acl)-->
  <property>
  <name>dfs.permissions</name>
  <value>false</value>
  </property>
</configuration>

  • 新建并且修改mapred-site.xml
cp   mapred-site.xml.template     mapred-site.xml
vim mapred-site.xml
<configuration>
<!--指定maoreduce运行框架-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
<!--历史服务的通信地址-->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
<!--历史服务的web ui地址-->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>

  • 修改slaves文件
vim slaves

内容为:

master
slaver1
slaver2
slaver3
slaver4
slaver5

  • 修改yarn-site.xml文件
vim yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->
<!--指定resourcemanager所启动的服务器主机名-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
<!--指定mapreduce的shuffle-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
<!--指定resourcemanager的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
<!--指定scheduler的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
<!--指定resource-tracker的内部通讯地址-->
 <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>
<!--指定resourcemanager.admin的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
<!--指定resourcemanager.webapp的ui监控地址-->
<property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
</configuration>

3.3 分发配置
每一个节点都要进行Hadoop的安装,在master上安装好以后分发给其他节点

cd /usr/local
scp hadoop slaver1:/usr/local/
scp hadoop slaver2:/usr/local/
scp hadoop slaver3:/usr/local/
scp hadoop slaver4:/usr/local/
scp hadoop slaver5:/usr/local/

并分别配置每个节点的/etc/profile文件

4 启动hadoop

4.1 在namenode上执行初始化
因为master是namenode,其余都是datanode,所以只需要对master进行初始化操作,也就是对hdfs进行格式化。
进入到master这台机器的/usr/local/hadoop/hadoop-2.8.5/bin目录

./hdfs  namenode  -format

格式化成功后,可以在看到在/usr/local/hadoop/hadoop-2.8.5/hdfs/name/目录多了一个current目录,而且该目录内有一系列文件

4.2 在namenode上执行启动命令
进入到hserver1这台机器的/usr/local/hadoop/hadoop-2.8.5/sbin目录,
执行初始化脚本,也就是执行命令:

 ./start-all.sh

5 测试hadoop

访问 http://192.168.144.130:50070/
记:hdfs文件存储位置
/usr/local/hadoop/hadoop-2.8.5/hdfs/data/current/BP-1236883458-192.168.144.130-1538123110928/current/finalized/subdir0/subdir0
在这里插入图片描述

在 Windows 系统上安装 Hadoop 2.8.5 需要进行一系列配置,因为 Hadoop 原生支持的是 Linux 系统。以下是在 Windows 上安装和配置 Hadoop 2.8.5 的详细步骤: ### 1. 安装 Java 环境 Hadoop 是基于 Java 构建的,因此需要先安装 Java Development Kit (JDK)。 - 下载安装 JDK 1.8(推荐版本)。 - 设置环境变量: - `JAVA_HOME`:指向 JDK 安装目录,例如 `C:\Program Files\Java\jdk1.8.0_XXX`。 - 在 `Path` 变量中添加 `%JAVA_HOME%\bin`。 ### 2. 安装 Hadoop 2.8.5 从 Apache 官网下载 Hadoop 2.8.5 的压缩包,并解压到指定目录。 - 下载地址:[https://archive.apache.org/dist/hadoop/core/hadoop-2.8.5/](https://archive.apache.org/dist/hadoop/core/hadoop-2.8.5/) - 解压到本地路径,例如 `E:\Hadoop\hadoop-2.8.5` [^4]。 ### 3. 配置 Hadoop 环境变量 设置 Hadoop 相关的环境变量以确保命令行能够识别 Hadoop 命令。 - 设置 `HADOOP_HOME`:指向 Hadoop安装目录,例如 `E:\Hadoop\hadoop-2.8.5`。 - 在 `Path` 中添加 `%HADOOP_HOME%\bin` 和 `%HADOOP_HOME%\sbin`。 - 创建 `HADOOP_CONF_DIR` 环境变量,指向 `E:\Hadoop\hadoop-2.8.5\etc\hadoop`。 ### 4. 安装 WinUtils 工具 由于 Hadoop 本身不支持 Windows,需要使用 `winutils.exe` 来运行 Hadoop 脚本。 - 下载适用于 Hadoop 2.8.5 的 `winutils.exe`,可以从 GitHub 获取:[https://github.com/steveloughran/winutils](https://github.com/steveloughran/winutils) - 将 `winutils.exe` 放入 `E:\Hadoop\hadoop-2.8.5\bin` 目录下。 - 同时将该目录添加到系统 `Path` 环境变量中。 ### 5. 修改 Hadoop 配置文件 编辑 Hadoop 的核心配置文件以适配 Windows 环境。 #### a. `core-site.xml` ```xml <configuration> <property> <name>hadoop.tmp.dir</name> <value>/E:/Hadoop/hadoop-2.8.5/workspace/tmp</value> </property> <property> <name>fs.default.name</name> <value>hdfs://localhost:9000</value> </property> </configuration> ``` #### b. `hdfs-site.xml` ```xml <configuration> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.name.dir</name> <value>/E:/Hadoop/hadoop-2.8.5/workspace/name</value> </property> </configuration> ``` #### c. `mapred-site.xml` ```xml <configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration> ``` #### d. `yarn-site.xml` ```xml <configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> </configuration> ``` ### 6. 初始化 HDFS 文件系统 在启动 Hadoop 之前,需要格式化 HDFS 文件系统。 - 打开命令提示符,执行以下命令: ```bash hadoop namenode -format ``` ### 7. 启动 Hadoop 服务 通过执行以下命令启动 Hadoop 组件。 - 启动 HDFS: ```bash start-dfs.cmd ``` - 启动 YARN: ```bash start-yarn.cmd ``` ### 8. 验证 Hadoop 是否运行成功 可以使用 `jps` 命令查看 Java 进程是否正常运行。 - 执行 `jps` 应能看到如下进程: - `NameNode` - `DataNode` - `ResourceManager` - `NodeManager` 也可以通过浏览器访问以下 URL 检查 Web UI: - HDFS 状态:[http://localhost:50070](http://localhost:50070) - YARN 状态:[http://localhost:8088](http://localhost:8088) ### 9. 测试 Hadoop 功能 创建 HDFS 目录并上传文件进行测试。 - 创建目录: ```bash hadoop fs -mkdir -p /data/test ``` - 上传文件: ```bash hadoop fs -put E:/Hadoop/input.txt /data/test/ ``` - 查看文件内容: ```bash hadoop fs -cat /data/test/input.txt ``` - 运行 WordCount 示例程序: ```bash hadoop jar E:/Hadoop/hadoop-2.8.5/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.5.jar wordcount /data/test /output ``` ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值