缺少静态IP地址配置
自动时钟配置
crontab -e
0 1 * * * /user/sbin/ntpdate aliyun.com #01*** 之间有空格
如果 是 root@localhost
0 1 * * * /sbin/ntpdate aliyun.com
配置主机名
1.要永久设置主机名,你需要编辑/etc/hostname
文件。
echo "主机名" > /etc/hostname # 地址可能不同
2.编辑/etc/hosts
文件,确保主机名和IP地址的映射正确。
sudo vi /etc/hosts
确保文件中有类似以下内容:
127.0.0.1 localhost 127.0.1.1 myhostname
其中myhostname
是你设置的主机名。
方法二
编辑network
vi /etc/sysconfig/network
NETWORKING=yes HOSTNAME=master # 主机名
3.重启系统
为了使更改生效,建议重启系统:
sudo reboot
-
验证主机名
重启后,你可以使用以下命令验证主机名是否已正确设置:
hostname
或者:
hostnamectl
关闭防火墙
sudo systemctl disable firewalld # 关闭防护墙
配置hosts列表
编辑hosts
文件
# ip地址 用户名 例如: 192.168.127.130 master
测试:
ping 地址/用户名
JDK安装
解压 jdk
rpm -hvy jdk.rpm
jdk 路径/usr/java/jdk1.8.0_221-amd64
jdk1.8.0_221-amd64
是你jdk名称
免密登录
生成密钥
ssh-keygen -t rsa
注释: 一直回车
复制公钥
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
授权
chmod 600 .ssh/authorized_keys
传递密钥
scp .ssh/authorized_keys root@slave:/root/.ssh/ scp .ssh/authorized_keys root@slave1:/root/.ssh/ # 密码是对应账号密码
注意: 将三个系统密钥都要存储在authorized_keys
中,三台系统都有备份
测试ssh连接
ssh slave # 无需密码自动登录
Hadoop配置
解压 hadoop 文件命令
tar -zxvf hadoop-3.1.3 # hadoop 是压缩文件名
配置hadoop环境命令
vi /etc/profile # ==========文本添加内容========== export HADOOP_HOME=/root/hadoop/hadoop-3.1.3 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin # ==启用 source /etc/profile # +++++++++++++++++++++++ vi .bash_profile # ================添加文本========= export HADOOP_HOME=/root/hadoop/hadoop-3.1.3 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin # ==启用 source /etc/profile
hadoop-env.sh 配置
cd hadoop/hadoop-3.1.3/etc/hadoop/ vi hadoop-env.sh # ==========文本添加内容========== export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
yarn-env.sh 配置
vi yarn-env.sh # ==========文本添加内容========== export JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
配置worker (slave[hadoop2.x])
vi worker # ==========文本添加内容========== master slave slave1 # 注意不可以有多余的空格
配置 core-site.xml
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- HDFS文件系统的入口地址信息 --> <property> <name>fs.defaultFS</name> <value>hdfs://master:9820</value> </property> <!-- HDFS文件系统数据落地到本地磁盘的路径信息, /root/hadoop_setup/hadoopdata 该路径需要提前创建, 后面将在启动hadoop集群时统一创建 --> <property> <name>hadoop.tmp.dir</name> <value>/root/hadoop_setup/hadoopdata</value> </property> </configuration>
配置 hdfs-site.xml
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <!-- Put site-specific property overrides in this file. --> <configuration> <property> <name>dfs.namenode.http-address</name> <value>master:9870</value> </property> <property> <name>dfs.namenode.secondary.http-address</name> <value>slave:9868</value> </property> <property> <name>dfs.replication</name> <value>2</value> </property> </configuration>
配置mapred-site.xml
<?xml version="1.0"?> <?xml-stylesheet type="text/xsl" href="configuration.xsl"?> <configuration> <!-- MapReduce计算框架的资源交给YARN管理 --> <property> <name>yarn.framework.name</name> <value>yarn</value> </property> </configuration>
配置 yarn-site.xml
<?xml version="1.0"?> <configuration> <!-- 让yarn的容器支持mapreduce的洗牌,开启shuffle服务 --> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <!-- 启用resourcemanager ha --> <property> <name>yarn.resourcemanager.ha.enabled</name> <value>true</value> </property> <!-- 指定zookeeper集群的各个节点地址和端口号 --> <property> <name>yarn.resourcemanager.zk-address</name> <value>master:2181,slave:2181,slave1:2181</value> </property> <!-- 启用自动恢复 --> <property> <name>yarn.resourcemanager.recovery.enabled</name> <value>true</value> </property> <!-- 指定RM的状态信息存储在zookeeper集群 --> <property> <name>yarn.resourcemanager.store.class</name> <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value> </property> <!-- 声明两台resourcemanager的地址 --> <property> <name>yarn.resourcemanager.cluster-id</name> <value>cluster-yarn1</value> </property> <!-- 指定resourcemanager的逻辑列表 --> <property> <name>yarn.resourcemanager.ha.rm-ids</name> <value>rm1,rm2</value> </property> <!-- rm1的配置 --> <!-- 指定rm1的主机名 --> <property> <name>yarn.resourcemanager.hostname.rm1</name> <value>slave</value> </property> <!-- 指定rm1的web端地址 --> <property> <name>yarn.resourcemanager.webapp.address.rm1</name> <value>slave:8088</value> </property> <!-- 指定rm1的内部通信地址 --> <property> <name>yarn.resourcemanager.address.rm1</name> <value>slave:8032</value> </property> <!-- 指定AM向rm1申请资源的地址 --> <property> <name>yarn.resourcemanager.scheduler.address.rm1</name> <value>slave:8030</value> </property> <!-- 指定供NM连接的地址 --> <property> <name>yarn.resourcemanager.resource-tracker.address.rm1</name> <value>slave:8031</value> </property> <!-- rm2的配置 --> <!-- 指定rm2的主机名 --> <property> <name>yarn.resourcemanager.hostname.rm2</name> <value>slave1</value> </property> <property> <name>yarn.resourcemanager.webapp.address.rm2</name> <value>slave1:8088</value> </property> <property> <name>yarn.resourcemanager.address.rm2</name> <value>slave1:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address.rm2</name> <value>slave1:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address.rm2</name> <value>slave1:8031</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_MAPRED_HOME,HADOOP_YARN_HOME</value> </property> <!-- yarn容器允许分配的最大最小内存 --> <property> <name>yarn.scheduler.minimum-allocation-mb</name> <value>512</value> </property> <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>1024</value> </property> <!-- yarn容器允许管理的物理内存大小 --> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>1024</value> </property> <!-- 关闭yarn对物理内存的限制检查 --> <property> <name>yarn.nodemanager.pmem-check-enabled</name> <value>false</value> </property> <!-- 关闭yarn对虚拟内存的限制检查 --> <property> <name>yarn.nodemanager.vmem-check-enabled</name> <value>false</value> </property> </configuration>
配置 yarn 环境
vi sbin/start-yarn.sh # ==========文本添加内容========== YARN_RESOURCEMANAGER_USER=root YARN_NODEMANAGER_USER=root # ------------------------------ vi sbin/stop-yarn.sh # ==========文本添加内容========== YARN_RESOURCEMANAGER_USER=root YARN_NODEMANAGER_USER=root
配置 用户信息
vi hadoop/hadoop-3.1.3/sbin/start-dfs.sh # =========添加文本======== HDFS_NAMENODE_USER=root HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=root HDFS_SECONDARYNAMENODE_USER=root
测试hadoop
#had 后 按 tab 补全 Hadoop hadoop version
格式化
hdfs namenode -format
启动
start-dfs.sh