- Hadoop3.0 单机伪分布集群安装
- 准备环境
- 虚拟机基本环境配置
- 1、静态ip 配置
- 2、主机名设置
- 3、hosts 文件配置
- 4、ssh 免密码登陆
- 5、JDK 安装
- Hadoop 伪分布集群安装
- Hadoop3.0 分布式集群安装
- 准备环境:
- 虚拟机基本环境配置:
- Hadoop 分布式集群安装:
1 台linux 虚拟机(Centos7.3 64 位)
ip 为:192.168.48.100
hostname 为:hadoop100
此处使用的是 NAT 网络模式
[root@hadoop100 ~]# vi /etc/sysconfig/network-scripts/ifcfg-eth0 BOOTPROTO=static IPADDR=192.168.48.100 GATEWAY=192.168.48.2 NETMASK=255.255.255.0 DNS1=192.168.48.22、主机名设置
主机名的设置可以分为 临时设置 和 永久设置。
临时设置可以立刻生效,但是不能永久保存,虚拟机重启后就会失效,所以还需要结合永久设置。
(1)临时设置主机名
[root@hadoop100 ~]# hostname hadoop100
(2)永久设置主机名
[root@hadoop100 ~]# vi /etc/sysconfig/network NETWORKING=yes HOSTNAME=hadoop1003、hosts 文件配置
修改/etc/hosts 文件,把ip 和hostname 的映射关系配置进去,此处的ip 需要和你设置的虚拟机实际ip 相同
[root@hadoop100 ~]# vi /etc/hosts 192.168.48.100 hadoop1004、ssh 免密码登陆
配置ssh 免密码登陆,在这里先实现免密码登陆本机
4.1 生成公钥
注意:执行这个命令以后,需要连续按 几 次回车键回到linux 命令行才表示这个操作执行结束,在按回车的时候不需要输入任何内容。
[root@hadoop100 ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: 20:d0:89:24:29:1e:c8:50:b3:fb:e0:57:76:94:0c:ea root@hadoop100 The key's randomart image is: +--[ RSA 2048]----+ |*+=o .. | |++.+o. o . | |o o o . + | | . o . o | | o E o S | | . o o . | | . o | | . | | | +-----------------+
4.2 向本机复制公钥
[root@hadoop100 ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
4.3 执行ssh 命令验证免密码登陆是否配置成功,
第一次验证的时候会提示输入yes 或no,直接输入yes 即可,如果输入了yes 之后按回车可以进入就表示免密码登陆配置成功。
[root@hadoop100 ~]# ssh hadoop100 The authenticity of host 'hadoop100(192.168.48.100)' can't be established. RSA key fingerprint is 64:87:b9:da:46:c1:85:54:49:6d:65:4a:0f:49:8f:58. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'hadoop100' (RSA) to the list of known hosts. Last login: Thu Jul 25 09:11:46 2021 from hadoop100 [root@hadoop100 ~]#5、JDK 安装
上传jdk安装包到linux 的/data/soft 目录,如果此目录不存在则提前创建
JDK 安装步骤.
下面开始在1 台linux 虚拟机上开始安装Hadoop3 伪分布环境
在这里我们使用hadoop3.2.0 版本,hadoop-3.2.0.tar.gz
1:把hadoop-3.2.0.tar.gz 安装包上传到linux 机器的/data/soft 目录下
2:解压hadoop 安装包
[root@hadoop100 ~]# cd /data/soft [root@hadoop100 soft]# tar -zxvf hadoop-3.2.0.tar.gz
3:修改hadoop 相关配置文件
#进入配置文件所在目录
[root@hadoop100 soft]# cd hadoop-3.2.0/etc/hadoop/
#首先修改hadoop-env.sh文件,增加环境变量信息
[root@hadoop100 hadoop]# vi hadoop-env.sh export JAVA_HOME=/data/soft/jdk1.8 export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop
#修改core-site.xml 文件,注意fs.defaultFS 属性中的主机名需要和你配置的主机名保持一致
[root@hadoop100 hadoop]# vi core-site.xmlfs.defaultFS hdfs://hadoop100:9000 hadoop.tmp.dir /data/hadoop_repo
#修改hdfs-site.xml文件,把hdfs 中文件副本的数量设置为1,因为现在伪分布集群只有一
个节点
[root@hadoop100 hadoop]# vi hdfs-site.xmldfs.replication 1
#修改mapred-site.xml,设置mapreduce 使用的资源调度框架
[root@hadoop100 hadoop]# vi mapred-site.xmlmapreduce.framework.name yarn
#修改yarn-site.xml,设置yarn 上支持运行的服务和环境变量白名单
[root@hadoop100 hadoop]# vi yarn-site.xmlyarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CL ASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
4:格式化namenode
[root@hadoop100 hadoop]# cd /data/soft/hadoop-3.2.0 [root@hadoop100 hadoop-3.2.0]# bin/hdfs namenode -format
#如果在后面的日志信息中能看到这一行,则说明namenode 格式化成功。
common.Storage: Storage directory /data/hadoop_repo/dfs/name has been successfully formatted.
5:启动hadoop 集群
[root@hadoop100 hadoop-3.2.0]# sbin/start-all.sh ERROR: Attempting to operate on hdfs namenode as root ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation. Starting datanodes ERROR: Attempting to operate on hdfs datanode as root ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation. Starting secondary namenodes [hadoop100] ERROR: Attempting to operate on hdfs secondarynamenode as root ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation. 2021-07-25 10:04:25,993 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable Starting resourcemanager ERROR: Attempting to operate on yarn resourcemanager as root ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation. Starting nodemanagers ERROR: Attempting to operate on yarn nodemanager as root ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.
发现在启动的时候报错,提示缺少HDFS 和YARN 的一些用户信息。
解决方案如下:
#修改start-dfs.sh,stop-dfs.sh这两个脚本文件,在文件前面增加如下内容
[root@hadoop100 hadoop]# cd /data/soft/hadoop-3.2.0/sbin [root@hadoop100 sbin]# vi start-dfs.sh HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
#修改start-yarn.sh,stop-yarn.sh这两个脚本文件,在文件前面增加如下内容
[root@hadoop100 sbin]# vi start-yarn.sh YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root
#再重新启动集群
[root@hadoop100 sbin]# ./start-all.sh Starting namenodes on [hadoop100] Starting datanodes Starting secondary namenodes [hadoop100] Starting resourcemanager Starting nodemanagers
6:验证集群进程信息
#执行jps 命令可以查看集群的进程信息,抛出Jps 这个进程之外还需要有5 个进程才说明
集群是正常启动的
[root@hadoop100 sbin]# jps 2882 ResourceManager 2420 DataNode 3365 Jps 2619 SecondaryNameNode 2315 NameNode 2988 NodeManager
#还可以通过webui 界面来验证集群服务是否正常
hdfs webui 界面:http://192.168.48.100:9870
yarn webui 界面:http://192.168.48.100:8088
7:停止集群
如果修改了集群的配置文件或者是其它原因要停止集群,可以使用下面命令。
[root@hadoop100 sbin]# ./stop-all.shHadoop3.0 分布式集群安装 准备环境:
3 台linux 虚拟机(Centos7.3 64 位)
ip 为:
192.168.48.100
192.168.48.101
192.168.48.102
对应的hostname 为:
hadoop100
hadoop101
hadoop102
这三台机器的基本配置参考Hadoop3.0 单机伪分布安装中的虚拟机基本环境配置部分。
注意:除了基本配置之外还需要实现主节点能够免密码登陆到所有从节点,因为从节点上面
的进程是由主节点通过ssh 远程启动的。
在hadoop100 这台机器上执行下面命令,可以实现主节点免密码登陆到所有从节点。
[root@hadoop100 ~]# ssh-copy-id -i hadoop101 [root@hadoop100 ~]# ssh-copy-id -i hadoop102
在hadoop100 机器上使用ssh 命令确认集群免密码登陆是否设置成功,如果可以免密码登陆
进去就说明是没有问题的。
[root@hadoop100 ~]# ssh hadoop101 [root@hadoop100 ~]# ssh hadoop101Hadoop 分布式集群安装:
注意:在这里我们用到了前面安装伪分布集群的机器hadoop100,所以需要先把之前的伪分
布集群停掉,然后删除/data 目录下的hadoop_repo目录和/data/soft 目录下的hadoop-3.2.0目录,恢复此机器的环境。
下面开始安装hadoop 分布式集群。
首先在hadoop100 节点上安装。
1:把hadoop-3.2.0.tar.gz 安装包上传到linux 机器的/data/soft 目录下
2:解压hadoop 安装包
[root@hadoop100 ~]# cd /data/soft [root@hadoop100 soft]# tar -zxvf hadoop-3.2.0.tar.gz
3:修改hadoop 相关配置文件
#进入配置文件所在目录
[root@hadoop100 soft]# cd hadoop-3.2.0/etc/hadoop/
#首先修改hadoop-env.sh文件,增加环境变量信息
[root@hadoop100 hadoop]# vi hadoop-env.sh export JAVA_HOME=/data/soft/jdk1.8 export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop
#修改core-site.xml文件,注意fs.defaultFS 属性中的主机名需要和你配置的主机名保持一致
[root@hadoop100 hadoop]# vi core-site.xmlfs.defaultFS hdfs://hadoop100:9000 hadoop.tmp.dir /data/hadoop_repo
#修改hdfs-site.xml文件,把hdfs 中文件副本的数量设置为1,因为现在伪分布集群只有一
个节点
[root@hadoop100 hadoop]# vi hdfs-site.xmldfs.replication 2 dfs.namenode.secondary.http-address hadoop100:50090
#修改mapred-site.xml,设置mapreduce 使用的资源调度框架
[root@hadoop100 hadoop]# vi mapred-site.xmlmapreduce.framework.name yarn
#修改yarn-site.xml,设置yarn 上支持运行的服务和环境变量白名单
[root@hadoop100 hadoop]# vi yarn-site.xmlyarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CL ASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME yarn.resourcemanager.hostname hadoop100
#修改workers文件,增加所有从节点的主机名,一个一行
[root@hadoop100 hadoop]# vi workers hadoop101 hadoop102
#修改启动脚本
#修改start-dfs.sh,stop-dfs.sh 这两个脚本文件,在文件前面增加如下内容
[root@hadoop100 hadoop]# cd /data/soft/hadoop-3.2.0/sbin [root@hadoop100 sbin]# vi start-dfs.sh HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root
#修改start-yarn.sh,stop-yarn.sh 这两个脚本文件,在文件前面增加如下内容
[root@hadoop100 sbin]# vi start-yarn.sh YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root
4:把hadoop100 节点上修改好配置的安装包拷贝到其他两个从节点
[root@hadoop100 hadoop]# cd /data/soft/ [root@hadoop100 soft]# scp -rq hadoop-3.2.0.tar.gz hadoop101:/data/soft/ [root@hadoop100 soft]# scp -rq hadoop-3.2.0.tar.gz hadoop102:/data/soft/
5:格式化namenode
[root@hadoop100 hadoop]# cd /data/soft/hadoop-3.2.0 [root@hadoop100 hadoop-3.2.0]# bin/hdfs namenode -format
#如果在后面的日志信息中能看到这一行,则说明namenode 格式化成功。
common.Storage: Storage directory /data/hadoop_repo/dfs/name has been successfully formatted.
6:启动集群,在hadoop100 节点上执行下面命令
[root@hadoop100 hadoop-3.2.0]# sbin/start-all.sh Starting namenodes on [hadoop100] Starting datanodes Starting secondary namenodes [hadoop100] Starting resourcemanager Starting nodemanagers
7:验证集群
分别在3 台机器上执行jps 命令,进程信息如下所示:
#在hadoop100 节点执行
[root@hadoop100 hadoop-3.2.0]# jps 8802 ResourceManager 8572 SecondaryNameNode 8334 NameNode
#在hadoop101 节点执行
[root@hadoop101 hadoop-3.2.0]# jps 2229 NodeManager 2124 DataNode
#在hadoop102 节点执行
[root@hadoop102 hadoop-3.2.0]# jps 1857 DataNode 1963 NodeManager
至此,hadoop 分布式集群安装成功!



