- 一、伪分布集群安装(单机适合自己学习使用)
- 1.1 基本环境
- 1.2 ssh免密
- 1.3 安装伪分布集群
- 二、分布集群安装
- 2.1配置免密登录
- 2.2配置hadoop
一、伪分布集群安装(单机适合自己学习使用) 1.1 基本环境
ps 基本环境 1.基于虚拟机搭建 配置静态ip(参考我之前的linux学习) ,2.java环境,3.关闭防火墙(参考我之前的linux学习),4.ssh免密登录,这边我们着重看下ssh免密登录的配置
1.2 ssh免密 ssh是使用的非对称加密,加密有两种对称,非对称。非对称不可逆所以会比较安全。非对称加密会有两种秘钥,公钥和私钥,公钥顾名思义就是公共的,私钥是自己留着的
过程:
- a机器吧自己的公钥给b机器
- a机器要和第二台机器通信的时候 a机器会发一个随机字符串,b机器会使用这个公钥对齐加密,同时a机器也对这个字符串加密,然后也传给b机器,这时候b机器对这两份进行匹配,如果ok就可信,可以登录。
- 这边以bigdata01 机器免密登录自己为例
[root@bigdata01 ~]# 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 [root@bigdata01 ~]# ll ~/.ssh/ [root@bigdata01 ~]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 测试连接 [root@bigdata01 ~]# ssh bigdata011.3 安装伪分布集群
因为我们会用到bin目录和sbin目录下面的一些脚本,为了方便使用,我们需要配置一下环境变量
[root@bigdata01 hadoop-3.2.0]# vi /etc/profile #加入下列环境 export JAVA_HOME=/data/soft/jdk1.8 export HADOOP_HOME=/data/soft/hadoop-3.2.0 export PATH=.:$JAVA_HOME/bin:$HADOOP_HOME/sbin:$HADOOP_HOME/bin:$PATH [root@bigdata01 hadoop-3.2.0]# source /etc/profile
进入hadoop安装目录主要修改 一下配置
hadoop-env.sh core-site.xml hdfs-site.xml mapred-site.xml yarn-site.xml workers
hadoop-env.sh #JAVA_HOME:指定java的安装位置 #HADOOP_LOG_DIR:hadoop的日志的存放目录 export JAVA_HOME=/data/soft/jdk1.8 export HADOOP_LOG_DIR=/data/hadoop_repo/logs/hadoop core-site.xml # 这边主机名要和你自己的名字一致hdfs-site.xml #配置 # 副本数为一应为我们这边只有一个 fs.defaultFS hdfs://bigdata01:9000 hadoop.tmp.dir /data/hadoop_repo # 修改workers,设置集群中从节点的主机名信息,在这里就一台集群,所以就填写bigdata01即可 [root@bigdata01 hadoop]# vi workers bigdata01 mapred-site.xml # 设置mapreduce使用的资源调度框架 dfs.replication 1 yarn-site.xml #设置yarn上支持运行的服务和环境变量和白名单 mapreduce.framework.name yarn workers bigdata01 start-dfs.sh HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root stop-dfs.sh HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root start-yarn.sh YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root stop-yarn.sh YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME
修改完还不行记得格式化
# successfully formatted看到这个就成功了 [root@bigdata01 hadoop-3.2.0]# bin/hdfs namenode -format # 启动集群 [root@bigdata01 hadoop-3.2.0]# sbin/start-all.sh二、分布集群安装 2.1配置免密登录
ps:前置条件是jdk,防火墙,host都配置好了
bigdata01 192.168.64.101 bigdata01 192.168.64.102 bigdata01 192.168.64.103 # 分别配置dns解析 vi /etc/hosts bigdata01 192.168.64.101 bigdata02 bigdata01 192.168.64.102 bigdata03 bigdata01 192.168.64.103 bigdata04 # 集群节点之间时间同步 # 默认是没有ntpdate命令的,需要使用yum在线安装,执行命令 yum install -y ntpdate # ntpdate -u ntp.sjtu.edu.cn检查是不是安装成功 [root@bigdata02 ~]# yum install -y ntpdate #在三台机器上分别配置上定时的同步任务 vi /etc/crontab * * * * * root /usr/sbin/ntpdate -u ntp.sjtu.edu.cn # 免密登录 # ssh-keygen -t rsa 执行以后会在~/.ssh目录下生产对应的公钥和秘钥文件 # 伪分布式集群的时候我们 cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 自己免密登录自己 # 现在吧data02公钥信息拷贝到两个从节点 scp ~/.ssh/authorized_keys bigdata03:~/ scp ~/.ssh/authorized_keys bigdata04:~/ # 然后再bigdata03 bigdata04 分别运行 # 如果这边提示.ssh/xx找不到文件 可以手动建 cat ~/authorized_keys >> ~/.ssh/authorized_keys 有没有必要实现从节点之间互相免密码登录呢? 这个就没有必要了,因为在启动集群的时候只有主节点需要远程连接其它节点。2.2配置hadoop
# 还是在/data/soft tar -zxvf hadoop-3.2.0.tar.gz #解压完修改配置 core-site.xmlhdfs-site.xml fs.defaultFS hdfs://bigdata02:9000 hadoop.tmp.dir /data/hadoop_repo mapred-site.xml dfs.replication 2 dfs.namenode.secondary.http-address bigdata02:50090 yarn-site.xml mapreduce.framework.name yarn vi workers(注意这个命令要在/data/soft/hadoop-3.2.0/etc/hadoop执行) bigdata03 bigdata04 start-dfs.sh HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root stop-dfs.sh HDFS_DATANODE_USER=root HDFS_DATANODE_SECURE_USER=hdfs HDFS_NAMENODE_USER=root HDFS_SECONDARYNAMENODE_USER=root start-yarn.sh YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root stop-yarn.sh YARN_RESOURCEMANAGER_USER=root HADOOP_SECURE_DN_USER=yarn YARN_NODEMANAGER_USER=root # 修改完同步hadoop到03 04 [root@bigdata02 soft]# scp -rq hadoop-3.2.0 bigdata03:/data/soft/ [root@bigdata02 soft]# scp -rq hadoop-3.2.0 bigdata04:/data/soft/ #在bigdata02上 如果在后面的日志信息中能看到common.Storage: Storage directory /data/hadoop_repo/dfs/name has been successf 说明成功格式化 [root@bigdata02 hadoop-3.2.0]# bin/hdfs namenode -format #验证集群 [root@bigdata02 hadoop-3.2.0]# jps NameNode ResourceManager SecondaryNameNode [root@bigdata03 ~]# jps NodeManager DataNode [root@bigdata04 ~]# jps NodeManager DataNode #启动集群 [root@bigdata02 hadoop-3.2.0]# sbin/start-all.sh #关闭集群 [root@bigdata02 hadoop-3.2.0]# sbin/stop-all.sh yarn.nodemanager.aux-services mapreduce_shuffle yarn.nodemanager.env-whitelist JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME yarn.resourcemanager.hostname bigdata02
链接: hadoop官网文档连接.
ps:业务机器上安装Hadoop,只需要保证业务机器上的Hadoop的配置和集群中的配置保持一致即
可,这样就可以在业务机器上操作Hadoop集群了,此机器就称为是Hadoop的客户端节点(客户端节点可以有多个)



