目录
1.伪分布式模式介绍
1. 特点 - 在⼀台机器上安装,使⽤的是分布式思想,即分布式⽂件系统,⾮本地⽂件系 统。 - Hdfs 涉及到的相关守护进程 (namenode,datanode,secondarynamenode) 都运⾏在⼀台机器上,都是独⽴的java 进程。 2. ⽤途 ⽐ Standalone mode 多了代码调试功能,允许检查内存使⽤情况, HDFS 输⼊输 出,以及其他的守护进程交互。
2. 平台软件说明
平台&软件 |
说明 |
---|---|
操作系统 |
Windows7 或 Windows 10 或 Mac OS |
虚拟软件 |
VMWare 或 Parallels Desktop(Mac Only) |
虚拟机 |
主机名: hadoop01,IP地址: 192.168.10.101 |
SSH⼯具 |
MobaXterm(Windows) 或 FinalShell(Mac) |
软件包上传路径 |
/root/softwares |
软件安装路径 |
/usr/local |
JDK |
jdk-8u221-linux-x64.tar.gz |
Hadoop |
hadoop-2.7.6.tar.gz |
⽤户 |
root |
3. 伪分布式搭建环境准备
3.1. 总纲
1. 确保防⽕墙是关闭状态。 2. 确保 NAT 模式和静态 IP 的确定 ( 192.168.10.101 ) 3. 确保 /etc/hosts ⽂件⾥ , ip 和 hostname 的映射关系 4. 确保免密登陆 localhost 有效 5. jdk 和 hadoop 的环境变量配置
3.2. 防⽕墙关闭确认
[root@hadoop01 ~] # systemctl stop firewalld [root@hadoop01 ~] # systemctl disable firewalld.service [root@hadoop01 ~] # systemctl stop NetworkManager [root@hadoop01 ~] # systemctl disable NetworkManager # 最好也把 selinux 关闭掉,这是 linux 系统的⼀个安全机制,进⼊⽂件中将 SELINUX设置为 disabled [root@hadoop01 ~] # vi /etc/selinux/config ......... SELINUX = disabled .........
3.3. 配置/etc/hosts⽂件
-- 进⼊ hosts ⽂件,配置⼀下 ip 和 hostname [root@hadoop01 ~] # vi /etc/hosts 127 .0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 192 .168.10.101 hadoop01 < ==== 添加本机的静态 IP 和本机的主机名之间的映射关系
3.4. 确保ssh对localhost的免密登陆认证有效
# 1. 使⽤ rsa 加密技术,⽣成公钥和私钥。⼀路回⻋即可 [root@hadoop01 ~] # ssh-keygen -t rsa # 2. 进⼊ ~/.ssh ⽬录下,使⽤ ssh-copy-id 命令 [root@hadoop01 .ssh] # ssh-copy-id root@localhost # 3. 进⾏验证 , 去掉第⼀次的询问( yes/no ) [hadoop@hadoop01 .ssh] # ssh localhost
3.5. 安装Jdk和Hadoop,配置相关环境变量
-1 . 上传和解压两个软件包 [root@hadoop01 ~] # tar -zxvf jdk-8u221-linux-x64.tar.gz -C /usr/local/ [root@hadoop01 ~] # tar -zxvf hadoop-2.7.6.tar.gz -C /usr/local/ -2 . 进⼊ local ⾥,给两个软件更名 [root@hadoop01 ~] # cd /usr/local/ [root@hadoop01 local] # mv 1.8.0_221/ jdk [root@hadoop01 local] # mv hadoop-2.7.6/ hadoop -3 . 配置环境变量 [hadoop@hadoop01 local] # vi /etc/profile ..... 省略 ........... #java environment export JAVA_HOME = /usr/local/jdk export PATH = $JAVA_HOME /bin: $JAVA_HOME /jre/bin: $PATH #hadoop environment export HADOOP_HOME = /usr/local/hadoop export PATH = $HADOOP_HOME /bin: $HADOOP_HOME /sbin: $PATH -4 生效文件 [hadoop@hadoop01 local] # source /etc/profile
4. 伪分布式相关⽂件配置
目录下 修改配置文件
[root@hadoop01 local]# cd /usr/local/hadoop/etc/hadoop
1. core-site.xml的配置
2. hdfs-site.xml 的配置[root@hadoop01 hadoop]# vi core-site.xml
<configuration> <!-- 配置分布式⽂件系统的 schema 和 ip 以及 port, 默认 8020--> <property> <name> fs.defaultFS </name> <value> hdfs://localhost:8020/ </value> </property></configuration>
#扩展 : hadoop1.x 的默认端⼝是 9000 , hadoop2.x 的默认端⼝是 8020 ,使⽤哪 ⼀个都可以
[root@hadoop01 hadoop]# vi hdfs-site.xml <configuration> <!-- 配置副本数,注意,伪分布模式只能是 1 。 --> <property> <name> dfs.replication </name> <value> 1 </value> </property> </configuration>3. hadoop-env.sh 的配置:指定 jdk 的环境
[root@hadoop01 hadoop] # vi hadoop-env.sh ................ # The java implementation to use. export JAVA_HOME = /usr/local/jdk ..................
5. 格式化NameNode
1. 格式化命令[root@hadoop01 hadoop] # hdfs namenode -format
6. 启动HDFS
1. 启动伪分布式[root@hadoop01 hadoop] # start-dfs.sh2. jps 命令查看守护进程
[root@hadoop01 hadoop] # jp s 启动脚本会开启分布式⽂件系统上的相关进程: namenode datanode secondarynamenode
7. WebUI查看
可以在浏览器上输⼊: 192.168.10.101:50070 来查看⼀下伪分布式集群的信息 --1. 浏览⼀下⻚⾯上提示的 ClusterID,BlockPoolID --2. 查看⼀下活跃节点 (Live Nodes) 的个数,应该是 1 个 Compiled: 编译 hadoop 是由 kshvachk ⼯具集成的 Cluster ID: 集群 id Block Pool ID:datanode 节点的 block 池的 id, 每个 datanode 节点的都要⼀样