配置免密登录:
修改主机名称:hostnamectl set-hostname master(slave1或slave2)
查看主机名称:cat /etc/hostname
切换用户:su root
查看ip:ip addr
在master添加三台虚拟机ip地址:vi/etc/hosts
三台虚拟机都生成密钥:ssh-keygen -t rsa(一路回车)
master传输密钥:ssh-copy-id master(slave1和slave2)
slave1传输密钥:ssh-copy-id master(slave1和slave2)
slave2传输密钥:ssh-copy-id master(slave1和slave2)
然后:ssh master(slave1或slave2)登录即成功
logout退出登录
安装jdk配置JAVA环境:
卸载自带Open JDK:rpm -qa | grep java
删除相关文件:rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.131-11.b12.e17.x86_d4(删除所有中间带openjdk的)
当前目录解压:tar -zxvf jdk-8u231-linux-x64.tar(1).gz
或者路径解压:tar -zxvf jdk-8u231-linux-x64.tar(1).gz -C /home/user/Downloads/
重命名:mv jdk1.8.0_231 jdk
添加环境变量:vi /etc/profile
在文件末尾添加:
export JAVA_HOME=/home/user/Downloads/jdk(更改为实际路径)
export PATH=$PATH:$JAVA_HOME/bin
使环境变量生效:source /etc/profile
查看Java是否可用:echo $JAVA_HOME
安装成功版本测试:Java -version
传输文件:scp -r jdk root@slave1:/home/user/Downloads/
scp -r jdk root@slave2:/home/user/Downloads/
传输环境配置:scp /etc/profile root@slave1:/etc/
scp /etc/profile root@slave2:/etc/
在被传输的两台虚拟机上生效并测试:source /etc/profile Java -version
配置hadoop完全式分布:
解压:tar -zxvf hadoop-3.1.3.tar.gz
重命名:mv hadoop-3.1.3 hadoop
配置环境变量:vi /etc/profile
在文件末尾添加:
export HADOOP_HOME=/home/user/Downloads/hadoop(实际路径)
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
在HADOOP_HOME下的etc的hadoop修改配置文件:vi core-site.xml
<configuration> <property> <name>hadoop.tmp.dir</name> <value>file:/home/user/Downloads/hadoop/tmp</value> </property><property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
配置hdfs-site.xml:
<configuration><property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/home/user/Downloads/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/home/user/Downloads/hadoop/tmp/dfs/data</value>
</property>
</configuration>
配置文件mapred-site.xml:
<configuration><property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>master:19888</value>
</property>
</configuration>
配置文件yarn-site.xml:
<configuration><property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
配置文件hadoop-env.sh:
export JAVA_HOME=/home/user/Downloads/jdk
export HADOOP_CONF_DIR=/home/user/Downloads/hadoop/etc/hadoop
接着添加
export HDFS_DATANODE_USER=root
export HDFS_DATANODE_SECURE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
配置文件workers:
#localhost
master
slave1
slave2
(一共6个配置文件)
在hadoop_home下创建文件夹:
mkdir tmp
mkdir tmp/dfs
mkdir tmp/dfs/name
mkdir tmp/dfs/data
mkdir tmp/dfs/namesecondary
添加tmp权限:chmod -R 777 tmp
把tmp文件传到slave1和slave2里面:
scp -r tmp root@slave1:/home/user/Downloads/hadoop/
将配置文件传到slave1和slave2里面
scp -r /home/user/Downloads/hadoop/etc/hadoop root@slave1:/home/user/Downloads/hadoop/etc/
scp -r /home/user/Downloads/hadoop/etc/hadoop root@slave2:/home/user/Downloads/hadoop/etc/
在master主机格式化:hdfs namenode -format
启动hadoop集群:star-all.sh
查看:jps
补(报错):
@1:
出现以下报错时:
通过以下方式解决:
unset HADOOP_HDFS_HOME命令用于删除环境变量中设置的HADOOP_HDFS_HOME。
env:查看所有环境变量(前面加了expect都是环境变量)
@2
出现以下报错时:
在hadoop-env.sh中添加
export HDFS_DATANODE_USER=root
export HDFS_NAMENODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root
@3
当启动集群之后datanode不出现而logs(日志)显示为privileged-root-datanode-master.out
说明datanode被隐藏了,权限有问题
hadoop-env.sh中的export HDFS_DATANODE_SECURE_USER=root这行删除或注释
关闭集群,删除缓冲,重新格式化+开启集群
版权归原作者 亐㔓&遇见 所有, 如有侵权,请联系我们删除。