主机设置
三台主机关闭防火墙
#关闭服务
systemctl stop firewalld
#关闭开机自启动
systemctl disable firewalld
给每台主机修改主机名
分别修改为master、slave1、slave2
hostnamectl set-hostname 主机名
配置三台主机地址映射
vi /etc/hosts
设置免密登录
cd /root/.ssh
如果提示no such directory ,表示/root/.ssh路径不存在,所以需要先创建文件夹
mkdir /root/.ssh
生成秘钥对
ssh-keygen -t rsa #rsa算法
出现冒号停着等待输入时,输入回车,次数一共3次。最终出现RSA的image(密钥的图像)
拷贝三台主机公钥
ssh-copy-id root@主机名
问题:
1、ssh-copy-id: ssh master 需要密码登录,每台电脑都做三次。
当前在master:
ssh-copy-id root@master;ssh-copy-id root@slave1;ssh-copy-id root@slave2。
当前在slave1:
ssh-copy-id root@master;ssh-copy-id root@slave1;ssh-copy-id root@slave2。
当前在slave2:
ssh-copy-id root@master;ssh-copy-id root@slave1;ssh-copy-id root@slave2。
2、ssh-copy-id :
no route to slave2
检查:网络是否是通的。route路由。绝对是slave2的ip地址出现问题。
免密登录**
ssh 主机名
如何检验:
在master:
ssh master 自己要验证
ssh slave1 ssh slave2
安装JDK
1、不会用mobax上传压缩包;
2、上传压缩包后,找不到我上传的文件在哪里
3、解压后在哪里?我自己的路径跟教程的路径不一致怎么办?
/opt/package 存放压缩包
/opt/program 解压目录
解压安装
解压安装包到opt目录下
tar -zxvf jdk-8u162-linux-x64.tar.gz -C /opt/program
执行命令的前提是:必须要在jdk-8u162-linux-x64.tar.gz压缩包的目录下/opt/package
-C解压到指定的路径:/opt/
解压完后,需要在/opt/找解压后的文件。
修改目录名
mv jdk1.8.0_162 jdk1.8
配置jdk的环境变量
vim /etc/profile
export JAVA_HOME=/opt/module/jdk
export PATH=$PATH:$JAVA_HOME/bin
保存配置
source /etc/profile
测试安装成功
java -version
分发JDK
scp -r /opt/module/jdk/ root@slave1:/opt/module/
scp -r /opt/module/jdk/ root@slave2:/opt/module/
scp -r /etc/profile root@slave1:/etc
scp -r /etc/profile root@slave2:/etc
安装配置 Hadoop
hadoop官方下载:Apache Hadoop
解压安装
**解压安装包到opt目录下**
tar -zxvf hadoop-3.1.3.tar.gz -C /opt
**添加hadoop环境变量**
vim /etc/profile
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
注意:另外两台主机也要进行相应的环境变量设置
vi和vim是两个不同的软件,vi
yum install 用不了。在线下载,没有联网
ping www.baidu.com
vim : yum install vim
集群出现问题。哪台节点少进程就看哪台的log
hadoop/logs/hadoop-root-datanode-master.log
tail -n 200 hadoop-root-datanode-master.log
找关键字ERROR来百度
保存配置环境
source /etc/profile
在Hadoop目录下创建logs目录
mkdir logs
测试安装成功
hadoop version
Hadoop环境配置文件 - hadoop-env.sh
cd $HADOOP_HOME/etc/hadoop
vim hadoop-env.sh
export JAVA_HOME=/opt/module/jdk
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配置文件core-site.xml
cd $HADOOP_HOME/etc/hadoop
vim core-site.xml
写入如下内容
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-3.1.3/tmp</value>
</property>
<property>
<name>hadoop.proxyuser.root.hosts</name>
<value>*</value>
</property>
<property>
<name>hadoop.proxyuser.root.groups</name>
<value>*</value>
</property>
HDFS 配置文件hdfs-site.xml
vim hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/module/hadoop-3.1.3/tmp/name</value>
<final>true</final>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/module/hadoop-3.1.3/tmp/data</value>
<final>true</final>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.permissions.enabled</name>
<value>false</value>
</property>
YARN 配置文件yarn-site.xml
vim yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
<property>
<name>yarn.nodemanager.pmem-check-enabled</name>
<value>false</value>
</property>
MapReduce 配置文件vim mapred-site.xml
vim mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
配置worekers
vim workers
master
slave1
slave2
分发配置好的Hadoop
scp -r $HADOOP_HOME root@slave1:/opt
scp -r $HADOOP_HOME root@slave2:/opt
进行初始化
hdfs namenode -format
使用启动命令启动hadoop
start-all.sh
主节点进程:
从节点进程: