1.查看并且关闭、警用防火墙
systemctl status firewalld
systemctl stop firewalld
systemctl disable firewalld
PS:我这边因为之前禁用过,所以上面两个命令没有执行效果,但是能看到查看状态显示dead
2.修改主机名和主机列表并且查看是否修改主机名成功
hostnamectl set-hostname hadoop1(将主机名修改为Hadoop1)
hostname (查看主机名)
PS:执行过程就省略了,直接看结果
3. 编辑配置文件
vi /etc/hosts
虚拟机ip地址 主机名(在hosts文件内添加)
我这边是三台hadoop集群,所有有三个,你们如果单机的话写一个就好
4. 配置免密登录
ssh-keygen -t rsa -P ""(按两次回车)
5. 免密复制授权密钥
cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys
6.解压hadoop安装包
在根目录下创建一个software文件夹,存放压缩包
mkdir software
将压缩包解压到/opt/
tar -zxvf xxxxx -C /opt
将名字更改为hadoop
mv xxxx hadoop
7. 修改配置文件
/opt/hadoop/etc/hadoop/
该目录下存放hadoop相关配置文件
vi hadoop-env.sh
添加
export JAVA_HOME=/opt/jdk8(配置jdk依赖)
因为hadoop是java进程,所以hadoop是需要依赖java的,hadoop-env.sh文件可以理解为主要就是为了达到这一目的
vi core-site.xml
该配置文件作用有指定namenode的位置,文件系统依赖的基础配置
<property>
<name>fs.defaultFS</name>
<value>hdfs://主机ip</value>
</property>
<!-- hdsf 的临时文件的目录,初始化错误需要使用,多次初始化也需要找该文件>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp</value>
</property>
<!--其他机器的root用户访问>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<!--其他root组下的用户都可以访问>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
vi hdfs-site.xml
配置namenode 和 datanode存放文件的具体路径 配置的副本数量最小3,否则会影响数据的可靠性
<!-- 设置数据块应该被复制的分数(和集群数量相等,目前只有一个值1)>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<!-- namenode备用节点,目前只有一个填主机的IP地址 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>主机ip:50090</value>
</property>
将文件 mapred-site.xml.template 改名问mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
Mapreduce.framework.name 决定mapreduce作业是提交到YARN集群还是到本地作业执行器本地执行
<!-- mapreduce的工作模式:yarn -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<!-- mapreduce的工作地址 -->
<property>
<name>mapreduce.jobhistory.address</name>
<value>192.168.226.101:10020</value>
</property>
<!-- web页面访问历史服务端口的配置 -->
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<!-- 可以补上 -->
<value>主机ip:19888</value>
</property>
vi yarn-site.xml
Yarn-resourcemanager.hostname:资源管理器所在节点的主机名
<!-- reducer获取数据方式 -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<!-- 指定YARN的ResourceManager的地址,值为主机名 -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop1</value>
</property>
<!-- 日志聚集功能使用 -->
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<!-- 日志保留时间设置7天 -->
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>604800</value>
</property>
```![在这里插入图片描述](https://img-blog.csdnimg.cn/98ddad7ada004d42b7c6aa1b61a88824.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAWF9MaXVBbw==,size_20,color_FFFFFF,t_70,g_se,x_16)
vi slaves
将内容改为主机名hadoop1
我这里是三台所有有三个主机名
8. 修改环境变量
vi /etc/profile
export JAVA_HOME=/opt/jdk8
export CLASSPATH=.:$JAVA_HOME/rt.jar:$JAVA_HOME/tools.jar:$JAVA_HOME/dt.jar
export JRE_HOME=$JAVA_HOME/jre
export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$HBASE_HOME/bin:$HIVE_HOME/bin
export HADOOP_HOME=/opt/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib"
我这里组件较多,你们看下效果就ok。
刷新配置
source /etc/profile
9. 格式化HDFS
hadoop namenode -format
(如果执行多次,格式化多次会报错,解决方法是删除opt/hadoop/tmp内的文件)
10. 启动关闭
start-all.sh
stop-all.sh
11.查看进程
jps
我这里因为是三台集群,所以进程少了一个。看好主机名
此处应该有6个进程。
Jps
NodeManager
NameNode
DataNode
ResourceManager
SeconderNameNode
11. 浏览器访问
主机地址:50070
部署成功