虚拟机搭建docker集群
1.配置JAVA环境
下载JAVA压缩包使用命令进行解压
tar -zxvf 压缩包文件
解压成功后进入/etc/profile中配置JAVA环境
vi /etc/profile
export JAVA_HOME=/root/jdk1.8.0_201(JDK文件地址)
export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
export PATH=$PATH:$JAVA_HOME/bin
配置完后使用命令生效
source /etc/profile
测试JAVA环境是否配好命令
java
成功后如图所示
2.配置SSH免密登录
修改集群中机器的hostname
hostnamectl set-hostname slave1
主节点机器设为master即可
修改所有节点的host文件。把所有机器的主机名ip地址对应写入
vi /etc/hosts
192.168.154.130 master
192.168.154.131 slave1
192.168.154.128 slave2
关闭集群中的防火墙
centos
systemctl stop firewalld
Ubuntun
sudo ufw disable
集群所有节点开启ssh免密登录
每个节点生成ssh密钥
centos
ssh-keygen -t rsa
Ubutun
ssh-keygen
所有节点都需要有其他节点的密钥。配置ssh免密登录。每个节点之间互相发
ssh-copy-id slave1
还需要设置与localhost的无密连接,使用以下命令即可(主节点是指即可)
cd ~/.ssh
cat ./id_rsa.pub >> ./authorized_keys
3.安装Hadoop集群
下载hadoop压缩文件,解压文件
tar -zxvf 压缩文件 -C 指定文件夹
/root/hadoop/hadoop-3.2.1
配置hadoop环境变量
vi /etc/profile
export HADOOP_HOME=/root/hadoop/hadoop-3.2.1
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin
刷新配置
source /etc/profile
测试是否成功
Hadoop version
修改配置文件,在hadoop安装目录下etc/hadoop
core-site.xml
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/hadoop/hadoop-3.2.1/data/tmp</value>
</property>
mapred-env.sh 和hadoop-env.sh和yarn-env.sh文件末尾追加JAVA_HOME
export JAVA_HOME=/home/yxx/Documents/installer/software/jdk1.8.0_201
在hadoop-env.sh后还需追加
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
hdfs-site.xml
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
mapred-site.xml
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
yarn-site.xml
<property>
<name>yarn.resourcemanager.hostname</name>
<value>master</value>
</property>
<property>
<description>The address of the applications manager interface in the RM.</description>
<name>yarn.resourcemanager.address</name>
<value>${yarn.resourcemanager.hostname}:8032</value>
</property>
<property>
<description>The address of the scheduler interface.</description>
<name>yarn.resourcemanager.scheduler.address</name>
<value>${yarn.resourcemanager.hostname}:8030</value>
</property>
<property>
<description>The http address of the RM web application.</description>
<name>yarn.resourcemanager.webapp.address</name>
<value>${yarn.resourcemanager.hostname}:8088</value>
</property>
<property>
<description>The https adddress of the RM web application.</description>
<name>yarn.resourcemanager.webapp.https.address</name>
<value>${yarn.resourcemanager.hostname}:8090</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>${yarn.resourcemanager.hostname}:8031</value>
</property>
<property>
<description>The address of the RM admin interface.</description>
<name>yarn.resourcemanager.admin.address</name>
<value>${yarn.resourcemanager.hostname}:8033</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>2048</value>
<discription>每个节点可用内存,单位MB,默认8182MB</discription>
</property>
<property>
<name>yarn.nodemanager.vmem-pmem-ratio</name>
<value>2.1</value>
</property>
<property>
<name>yarn.nodemanager.resource.memory-mb</name>
<value>2048</value>
</property>
<property>
<name>yarn.nodemanager.vmem-check-enabled</name>
<value>false</value>
</property>
将所有修改的文件复制到其他主机上。并配置各节点的环境变量
scp -r hadoop root@slave2:/root
到刚才修改文件的目录下,修改主节点配置文件wokers文件,添加配置的其他节点主机名
slave1
slave2
格式化NameNode
hadoop namenode -format
以上信息即为启动成功,只要不报错。
使用命令在主节点和从节点上 jps 查看是否完全启动