Hadoop安装下载
前提准备
本文中使用的是Oracle提供的java的jdk-8u401-linux-x64.tar.gz安装包
基础环境
搭建集群服务器
安装VMware Workstation Pro

新建虚拟机

选择映像文件

创建名字密码

命名hadoop01

创建完成后 右击列表的虚拟机->管理->克隆

分别创建hadoop02和hadoop03
通过SSH远程终端工具(XSHELL)连接虚拟机
进入虚拟机,打开虚拟机终端
ifconfig
将ip和MAC 地址记录下来,例如
192.168.182.130 hadoop01 00:0c:29:3a:5a:1b
192.168.182.131 hadoop02 00:0c:29:f9:8d:f5
192.168.182.132 hadoop03 00:0c:29:05:c0:21
打开Xshell 8

上面是连接命名下面是主机ip

用户名用root登录
密码是对应虚拟机密码

连接成功
现在可以用Xshell控制虚拟机
配置静态 IP
#vi /etc/sysconfig/network-scripts/ifcfg-ens33 # 根据实际设备名修改,一般不用修改
修改配置
# 需要设置的几个配置
TYPE=Ethernet
BOOTPROTO="static" # 改为静态IP,原先为:"dhcp"
NAME=ens33
DEVICE=ens33
ONBOOT=yes # 开机自动启用网卡
下方添加配置,
注意ip对应,网关
# 添加以下配置
WADDR=00:0c:29:05:c0:21
IPADDR=192.168.182.132 # 静态IP地址
GATEWAY=192.168.182.2 # 网关(与宿主机一致)
NETMASK=255.255.255.0 # 子网掩码
DNS1=8.8.8.8 # DNS服务器
重启网络服务
#systemctl restart network
验证 IP 配置
#ip addr # 确认IP已变更(看不懂也无所谓,能ping通外网即可)
#ping www.baidu.com # 测试外网连通性
修改主机名
通过hostname命令查看主机名称
#hostname
修改主机名称为hadoop01
#hostnamectl set-hostname hadoop01
断开连接再重连查看配置是否生效
#hostname
hadoop01
同理配置其它两台机器,分别设置主机名为hadoop02,hadoop03
5.4 添加域名映射
修改hosts文件,添加所有主机IP地址和主机名对应关系。
#vi /etc/hosts
#格式为:主机IP 制表符 主机名
192.168.182.130 hadoop01
192.168.182.131 hadoop02
192.168.182.132 hadoop03
修改完成后,用cat命令 查看hosts文件内容
#cat /etc/hosts
同理,把修改的内容复制到hadoop02、hadoop03的hosts文件
配置SSH免密登陆
使用命令生成服务器密钥(按四次回车,三台机器均需要操作)
#ssh-keygen
输完命令按四次回车
进入.ssh/目录,查看生成的密钥
#cd /root/.ssh/
#ll
安装openssh-clients客户端组件,这样才有ssh-copy-id命令(三台机器均需要操作)
#yum install openssh-clients*
LinuxMirrors: GNU/Linux 一键更换系统软件源脚本 (gitee.com)
命令:
#bash <(curl -sSL https://gitee.com/SuperManito/LinuxMirrors/raw/main/ChangeMirrors.sh)
hadoop01操作(操作时有提示,输入yes)
#ssh-copy-id hadoop01
#ssh-copy-id hadoop02
#ssh-copy-id hadoop03
Hadoop02操作(操作时有提示,输入yes)
#ssh-copy-id hadoop02
#ssh-copy-id hadoop01
#ssh-copy-id hadoop03
Hadoop03操作同理
使用ssh登录目标主机(发现三台结点间可以任意互通,不再需要输入密码,登录后,输入exit可退回自己的主机)
示例:进入slave1
#ssh slave1
退出slave1结点,回到master1结点
#exit
Hadoop部署
简单演示文件安装包的上传
通过yum安装插件(三台节点均操作)
#yum install lrzsz
创建文件夹software,用于存放相关下载包
#mkdir /usr/local/software
进入software文件
#cd /usr/local/software/
Jdk下载
到目录
#cd /usr/local/software/
上传
#rz
下载hadoop
#wget https://mirrors.aliyun.com/apache/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz
查看上传的文件
#ls -lrt
#ls -l /usr/local/software/
解压jdk,JDK安装配置
查看所有jdk
#rpm -qa | grep jdk
删除所有jdk
#yum remove -y java-1.8.0-openjdk-headless-1.8.0.262.b10-1.el7.x86_64 java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64 java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64 java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
删除依赖包 copy-jdk-configs
#yum remove -y copy-jdk-configs-3.3-10.el7_5.noarch
检查是否成功
#rpm -qa | grep jdk # 检查 JDK 包是否残留
#rpm -qa | grep java # 额外检查 Java 相关包(可选)
#java -version # 验证 Java 命令是否失效(正常提示“command not found”)
进入安装包目录
#cd /usr/local/software/
解压JDK安装包
#tar -zxvf jdk-8u461-linux-x64.tar.gz
添加系统环境变量(在profile文件末尾添加)
#vi /etc/profile
export JAVA_HOME=/usr/local/software/jdk1.8.0_461
export PATH=$PATH:$JAVA_HOME/bin
查看环境变量内容
#cat /etc/profile
操作以下命令让环境变量立即生效
#source /etc/profile
检验是否成功
#java -version
同理(在slave1与slave2上执行同行的操作安装JDK)
解压hadoop,HDFS安装配置
解压Hadoop安装包
#tar -zxvf hadoop-3.3.5.tar.gz
修改HDFS配置文件
(1)设置JDK安装目录
编辑文件“/usr/local/software/hadoop-3.3.5/etc/hadoop/hadoop-env.sh”,在文件末尾加上jdk的安装路径,注意jdk的安装路径可根据实际情况更改。
#vi /usr/local/software/hadoop-3.3.5/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/local/software/jdk1.8.0_461
(2)指定HDFS主节点
编辑文件“/usr/local/software/hadoop-3.3.5/etc/hadoop/core-site.xml”,将如下内容嵌入此文件里最后两行的configuration标签之间(注意修改master1名称为自己的名称)
#vi /usr/local/software/hadoop-3.3.5/etc/hadoop/core-site.xml
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/software/hadoop-3.3.5/cloud</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
</property>
(3) 指定HDFS从节点
编辑文件“/usr/local/software/hadoop-3.3.5/etc/hadoop/workers”,将slave1与slave1的hostname主机名称添加到文件中
#vi /usr/local/software/hadoop-3.3.5/etc/hadoop/workers
Hadoop02
Hadoop03
(4) 配置yarn-site.xml,添加在configuration标签之间
#vi /usr/local/software/hadoop-3.3.5/etc/hadoop/yarn-site.xml
<!-- Reducer获取数据的方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定YARN的ResourceManager的地址 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>
(5)配置 mapred-site.xml,添加在configuration标签之间
#vi /usr/local/software/hadoop-3.3.5/etc/hadoop/mapred-site.xml
<!-- 指定MR运行在Yarn上 -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>yarn.app.mapreduce.am.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.map.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
<property>
<name>mapreduce.reduce.env</name>
<value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value>
</property>
(6)配置hdfs-site.xml,添加在configuration标签之间
#vi /usr/local/software/hadoop-3.3.5/etc/hadoop/hdfs-site.xml
<!-- 指定Hadoop辅助名称节点主机配置 -->
<!-- 新增:NameNode元数据存储目录(教程遗漏,必须加) -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/software/hadoop-3.3.5/cloud/dfs/name</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop02:50090</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
<description>设置副本数</description>
</property>
<!--配置namenode的web界面-->
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop01:50070</value>
</property><!-- 新增:DataNode 数据存储目录(关键!) -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/software/hadoop-3.3.5/cloud/dfs/data</value>
</property>
(7)配置yarn-env.sh,在末尾添加
#vi /usr/local/software/hadoop-3.3.5/etc/hadoop/yarn-env.sh
export JAVA_HOME=/usr/local/software/jdk1.8.0_461
(8)配置mapred-env.sh,在末尾添加
#vi /usr/local/software/hadoop-3.3.5/etc/hadoop/mapred-env.sh
export JAVA_HOME=/usr/local/software/jdk1.8.0_461
(9) 拷贝整个hadoop解压包至其它服务器,slave1,slave2
在master1节点进入安装包目录拷到slave1
#cd /usr/local/software/
#scp -r hadoop-3.3.5 root@hadoop02:/usr/local/software/
在slave1节点进入安装包目录
#cd /usr/local/software/
在slave1节点查看文件
#ls -lrt
drwxr-xr-x. 9 root root 149 Dec 26 01:37 hadoop-3.35
在master1节点进入安装包目录拷到slave2
#cd /usr/local/software/
#scp -r hadoop-3.3.5 root@hadoop03:/usr/local/software/
在slave2节点进入安装包目录
#cd /usr/local/software/
在slave2节点查看文件
#ls -lrt
drwxr-xr-x. 9 root root 149 Dec 26 01:46 hadoop-3.3.5
集群环境格式化及启动
(1) 格式化主节点
在master1服务器上,进入到hadoop安装包的bin目录下
#cd /usr/local/software/hadoop-3.3.5/bin
进行格式化
#./hdfs namenode -format
注意看格式化日志,看到以下日志,证明格式化成功
Storage directory /usr/local/software/hadoop-3.3.5/cloud/dfs/name has been successfully formatted.
(2)用master1结点启动Hadoop
在master1结点中进入hadoop安装包的sbin目录下
#cd /usr/local/software/hadoop-3.3.5/sbin/
启动Hadoop
#./start-all.sh
发现报错,出现如下日志
Starting namenodes on [hadoop01]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting 这个
#vi /usr/local/software/hadoop-3.3.5/etc/hadoop/hadoop-env.sh
# Hadoop 全局服务用户配置(所有脚本共用,root 仅测试环境)
export HDFS_NAMENODE_USER="root"
export HDFS_DATANODE_USER="root"
export HDFS_SECONDARYNAMENODE_USER="root"
export YARN_RESOURCEMANAGER_USER="root"
export YARN_NODEMANAGER_USER="root"
修改后进入Hadoop安装的sbin目录重启Hadoop,成功
#cd /usr/local/software/hadoop-3.3.5/sbin/
#./start-all.sh
查看进程并验证HDFS环境
分别在master1、slave1、slave2三台机器上执行jps命令,查看HDFS服务是否已经启动
master1节点上有NameNode进程
#jps
5779 Jps
5353 SecondaryNameNode
5087 NameNode
进入Hadoop安装目录的bin文件下
#cd /usr/local/software/hadoop-3.3.5/bin
在HDFS文件系统上创建data文件夹
#./hadoop fs -mkdir /data
查看创建的文件夹
#./hadoop fs -ls /
为了方便后续操作,我们可以把hadoop也添加到系统环境变量
(profile文件末尾添加),注意(HADOOP_HOME=此处为hadoop的安装目录)(三台节点上都要添加)
#vi /etc/profile
export HADOOP_HOME=/usr/local/software/hadoop-3.3.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
环境变量生效
#source /etc/profile
验证环境变量是否成功?(进入任意目录,查寻HDFS上文件是否存在,若存在,即成功)
#cd /root
#hadoop fs -ls /
更多推荐



所有评论(0)