环境的安装与搭建
0.使用jdk1.8版本
1.网络环境
准备好一台linux系统虚拟机
更改网卡配置把ens33网卡改成静态开机自启动网卡
使用cd /etc/sysconfig/network-scripts
使用vim修改ifcfg-ens33文件
将其配置修改一下内容
IPADDR 为设置的ip地址
GATEWAY 设置的网关
DNS1 和ip地址一样
把BOOTPROTO改成static
onboot改成yes
2.修改hostname
vim /etc/hostname
3.修改hosts文件
vim /etc/hosts
增加以上ip映射
在windows 用管理员打开cmd notepad 文件名
4.reboot
reboot
重启系统更新配置
5.克隆
克隆俩台虚拟机
使用完整克隆
并改成修改好hostname文件和ens-33文件,ens-33文件只需修改ip
6.下载jdk和hadoop
使用tar -zxvf jdk/hadoop -c 目录
把解压文件放在指定目录下 放在/opt/下
7.更改环境配置
cd /etc/profile.d
vim my_env.sh
文件写入一下内容
``#JAVA_HOME
export JAVA_HOME=/opt/moudle/jdk-17.0.2
export PATH=
P
A
T
H
:
PATH:
PATH:JAVA_HOME/bin`
#HADOOP_HOME
export HADOOP_HOME=/opt/moudle/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
8.分布式存储
9.将模板服务器的脚本分发到其他服务器
scp -r jdk-17.0.2/ root@hadoop02:/opt/moudle/
scp -r hadoop-3.1.3/ root@hadoop02:/opt/moudle/
scp -r /etc/profile.d/my_env.sh root@hadoop02:/etc/profile.d/
scp -r /etc/profile.d/my_env.sh root@hadoop03:/etc/profile.d/
把配置文件分发给hadoop02/03
10.免密登录
ssh-keygen -t rsa生成公私钥
cd /root/.ssh
ssh-copy-id hadoop 拷贝公钥至01 02 03服务器上
集群部署规划
1.修改core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop01:8020</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/moudle/hadoop-3.1.3/data</value>
</property>
2.修改hdfs-site.xml
<property>
<name>dfs.namenode.http-address</name>
<value>hadoop01:9870</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hadoop03:9868</value>
</property>
3.修改yarn-site.xml
<!-- 指定MR走shuffle -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!-- 指定ResourceManager的地址-->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop02</value>
</property>
<!-- 环境变量的继承 -->
<property>
<name>yarn.nodemanager.env-whitelist</name>
<value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
4.修改mapred.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
5.修改workers
hadoop01
hadoop02
hadoop03
启动集群
sbin目录下启动start-dfs.sh
出现ERROR: Attempting to operate on hdfs namenode as root,
解决
在/hadoop/sbin路径下:
将start-dfs.sh,stop-dfs.sh两个文件顶部添加以下参数
#!/usr/bin/env bash
HDFS_DATANODE_USER=root
HADOOP_SECURE_DN_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
还有,start-yarn.sh,stop-yarn.sh顶部也需添加以下:
#!/usr/bin/env bash
YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root
jps查看对应的服务器hdfs是否启动
http://hadoop01:9870查看web页面
ResourceManager在02服务器上启动
http://hadoop02:8088
hadoop fs -put input/word.txt /input上传至input目录下
数据存在datanode节点
/opt/moudle/hadoop-3.1.3/data/dfs/data/current/BP-1704878013-192.168.121.145-1647260437407/current/finalized/subdir0/subdir0目录下
hadoop fs -rm -r output 删除hadoop上的输出文件夹
数据存在datanode节点
/opt/moudle/hadoop-3.1.3/data/dfs/data/current/BP-1704878013-192.168.121.145-1647260437407/current/finalized/subdir0/subdir0目录下
hadoop fs -rm -r output 删除hadoop上的输出文件夹