hadoop安装与搭建hdfs
hadoop安装与搭建hdfs
小植配置前必看
本帖的主要目的是用最平实的语言描述配置的进程,同时在每个章节为可能涉及的知识点提供相应的网站以供读者学习。最重要的还是给我自己留个配置的日记。这样Linux玩崩了也能找到回家的路。
前置准备
镜像:
软件
环境
- 准备三台虚拟机,虚拟机主机名为
master
、slave1
、slave2
安装与配置
1.解压
查看自己的虚拟机上是否已经上传好软件至software
将Hadoop
与jdk
解压至servers
中依次执行以下命令
1 | tar -zxvf hadoop-3.2.1.tar.gz /export/servers |
2.配置环境变量
执行以下命令,将jdk
与hadoop
目录路径依次添加到/etc/profile
底部
1 | vi /etc/profile |
1 | export JAVA_HOME=/export/servers/jdk1.8.0_231 |
刷新环境变量
1 | source /etc/profile |
验证,如果出现版本号就证明安装成功
1 | java -version |
环境搭建
1.查看主机名与hosts文件
查看自己的三台虚拟机主机名是否都已经更改、hosts文件是否都已经正确添加地址
1 | hostname |
如果没修改主机名请使用以下命令
1 | hostnamectl set-hostname 新的主机名 |
修改完后重启
1 | reboot |
查看与修改hosts文件
1 | vi /etc/hosts |
1 | 主机 192.168.100.128 master |
如果没有添加,则输入命令 vim /etc/hosts
进入文件,把东西写进去,键盘按i
或者o
进入编辑模式
,编辑完毕,按esc
输入:wq
保存退出
2.ssh配置
配置密钥文件(三台都要做)
生成密钥文件输入命令,生成key,都不输入密码,一直按回车,/root就会生成.ssh的文件夹
1 | ssh-keygen -t rsa |
分发密钥到其他节点
1 | ssh-copy-id master |
测试登录,依次输入以下命令,退出输入exit
1 | ssh master |
3.命令同步脚本
创建脚本存储目录
1 | cd /root/bin/ |
创建命令同步脚本文件
1 | vi xcall |
输入下列代码
1 | !/bin/bash |
保存退出:wq
赋予脚本权限chmod 777 xcall
配置文件
1 | vi /root/.bashrc |
在文件末尾追加下列代码
1 | source /etc/profile |
保存退出:wq
1 | vi /etc/profile |
在底部添加
1 | export PATH=/root/bin:$PATH |
保存退出:wq
刷新文件source /etc/profile
注意:以上操作必须在三台机器都要执行。
检验实验脚本是否可以使用
1 | xcall jps |
4.文件同步脚本
创建脚本存储目录
1 | cd /root/bin/ |
创建命令同步脚本文件
1 | vi xsync |
输入下列代码
1 | !/bin/bash |
保存退出:wq
赋予脚本权限chmod 777 xsync
使用文件同步脚本将文件同步脚本分发到另外两台机器
1 | xsync xsync |
可以到其他节点的/root/bin目录下查看文件是否分发成功
如果提示rsync: 未找到命令
,前提需要安装rsync
,最小化安装系统的可能没有自带该命令包
1 | yum install rsync |
HDFS安装与配置
1.修改HDFS配置文件
进入目录
1 | cd /export/servers/hadoop-3.2.1/etc/hadoop/ |
设置JDK安装目录,编辑文件hadoop-env.sh
,在文件末尾加上jdk的安装路径,jdk的安装路径根据实际情况更改
1 | vi hadoop-env.sh |
1 | export JAVA_HOME=/export/servers/jdk1.8.0_231 |
2.指定HDFS主节点
编辑文件core-site.xml
,将如下内容嵌入此文件里最后两行的configuration
标签之间(注意修改master名称为自己的名称,我的主机名就叫master)
1 | vi core-site.xml |
1 | <property> |
3.指定HDFS从节点
编辑文件workers
,将slave1与slave2的hostname主机名称添加到文件中,将下列代码追加到文件末尾,同时删除localhost
1 | vi workers |
1 | master |
4.配置 yarn-site.xml
1 | vi yarn-site.xml |
输入如下代码,嵌入此文件里最后两行的configuration
标签之间
1 | <!-- Reducer获取数据的方式 --> |
5.配置 mapred-site.xml
1 | vi mapred-site.xml |
添加下列代码添加在configuration
标签之间
1 | <property> |
6.配置 hdfs-site.xml
1 | vi hdfs-site.xml |
添加下列代码,添加在configuration
标签之间
1 | <property> |
7.配置 yarn-env.sh
1 | vi yarn-env.sh |
在文件末尾添加(jdk是你自己版本)
1 | export JAVA_HOME=/export/servers/jdk1.8.0_231 |
8.配置 mapred-env.sh
1 | vi mapred-env.sh |
在文件末尾添加(注意JDK的版本号)
1 | export JAVA_HOME=/export/servers/jdk1.8.0_231 |
9.拷贝文件
将整个hadoop解压包
至其它服务器slave1
、slave2
1 | xsync /export/servers/hadoop-3.2.1 |
1 | scp -r /export/servers/hadoop-3.2.1 slave1:/export/servers/hadoop-3.2.1 |
1 | scp -r /export/servers/hadoop-3.2.1 slave2:/export/servers/hadoop-3.2.1 |
集群环境格式化及启动
格式化主节点:在master服务器上,进入到hadoop安装包的bin目录下
1 | cd /export/servers/hadoop-3.2.1/bin |
进行格式化
1 | ./hdfs namenode -format |
在start-dfs.sh
和stop-dfs.sh
两个文件顶部
添加以下参数
1 | vi /export/servers/hadoop-3.2.1/sbin/start-dfs.sh |
添加下列内容
1 | HDFS_DATANODE_USER=root |
在start-yarn.sh
和stop-yarn.sh
两个文件顶部
也需添加以下内容
1 | vi /export/servers/hadoop-3.2.1/sbin/start-yarn.sh |
添加下列内容
1 | YARN_RESOURCEMANAGER_USER=root |
用master
结点启动Hadoop
:在master
结点中进入hadoop
安装包的sbin
目录下启动Hadoop
1 | /export/servers/hadoop-3.2.1/sbin/start-all.sh |
查看进程并验证HDFS环境
注意:这些东西一个都不能少
为了方便后续操作,我们可以把hadoop
也添加到系统环境变量(三台节点上都要添加)
1 | vi /etc/profile |
将下述代码追加到文件末尾
1 | export HADOOP_HOME=/export/servers/hadoop-3.2.1 |
刷新文件
1 | source /etc/profile |
退出集群
1 | stop-all.sh |