1-centOS7搭建伪分布式

前言:虚拟机快照的使用

VMware Workstation 软件可以用快照进行迅速的虚拟机状态的切换

※. 类似于虚拟机备份, 可以使用备份进行快速恢复。 比如没安装jdk之前拍摄快照来备份

※. 若jdk没安装好或者jdk环境变量配置的有问题, 可以用安装之前的快照快速恢复虚拟机

1.拍摄快照:

2.恢复到某快照的位置:

(可以在创建用户前,生成公钥私钥前,安装jdk前,搭建伪分布式Hadoop之前拍摄虚拟机快照)

一、创建用户


创建一个用户,用户名为hadoop ,注意在xshell中操作如下四个命令

1.1. 创建用户

sudo useradd -m hadoop -s /bin/bash

注意: 添加用户 hadoop 并在以后登录时采用解析器/bin/bash

1.2. 设置用户名密码:

sudo passwd hadoop

注意:用passwd命令给hadoop用户设置密码(密码不是显示,所以写慢一些,别写错)

1.3. 创建sudo 组:

groupadd sudo

1.4. 将hadoop 用户添加到sudo 组中:

usermod -a -G sudo hadoop

二、修改主机名:


2.1. 在虚拟机中执行如下命令( 不要在xshell 中执行)

sudo gedit /etc/hostname

用上边命令打开hostname文件将里边内容改为master(修改虚拟机的主机名)

2.2. 在虚拟机中用如下命令添加主机名与ip 的映射关系:

sudo gedit /etc/hosts

用上边的命令打开hosts文件,然后给最后一行添加: 真实的IP地址 主机名

具体参考下图:

2.3. 重启虚拟机,以hadoop 用户登录:

sudo reboot

三、生成公钥和私钥:


ssh-keygen -t rsa

注意:有三个地方需要敲回车进行确认

四、拷贝公钥到登录电脑:


4.1. 下边命令拷贝公钥 :

cd ~/.ssh

ssh-copy-id -i id_rsa.pub hadoop@master

Are you sure you want to continue connecting (yes/no)?后边输入 yes

hadoop@master's password: 输入密码

作用是拷贝公钥id_rsa.pub复制到登录电脑hadoop@master的 .ssh/authorized_keys文件中

注:hadoop是虚拟电脑的用户名, master是虚拟电脑的ip地址(在上边将ip映射成了master)

4.2. 测试ssh 登录:

ssh master #不报错,并且ssh登录成功就行

五、安装 JDK

5.1. 解压:

tar -zxvf jdk-8u231-linux-x64.tar.gz -C /usr/lib/jvm

5.2. 配置 jdk 环境变量:

gedit ~/.bashrc 注意:左边在虚拟机中执行(别在xshell中执行)

注意:让环境变量立即生效命令为       source ~/.bashrc

注意:验证环境变量是否生效命令为      java -version

上图的代码如下:

|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_231 export JRE_HOME=JAVA_HOME/jre export PATH=JAVA_HOME/bin:JAVA_HOME/jre/bin:PATH export CLASSPATH=CLASSPATH:.:JAVA_HOME/lib:$JAVA_HOME/jre/lib |

source ~/.bashrc #让环境变量立即生效

java -version #验证环境变量是否生效(jdk是否是1.8.0_231版本)

六、伪分布式hadoop搭建:

6.1.将hadoop安装包复制到当前用户主目录里:

6.2.解压hadoop安装包:

将hadoop安装包解压到usr下的local文件夹内, 命令如下:

sudo tar -zxvf hadoop-3.1.2.tar.gz -C /usr/local

将命令光标切换到/usr/local文件夹内

cd /usr/local/

将hadoop-3.1.2改名为hadoop

sudo mv /usr/local/hadoop-3.1.2 /usr/local/Hadoop

6.3.将 /usr/local/ hadoop文件夹所有者改为hadoop

sudo chown -R hadoop /usr/local/hadoop

6.4.配置hadoop环境变量:

A.编辑 个人主目录下的 .bashrc

gedit ~/.bashrc

注意:上一行的gedit命令需要在虚拟机中执行(不能在xshell中执行)

B.添加hadoop环境变量:

在 .bash配置文件中添加如下两行环境变量信息

export HADOOP_HOME=/usr/local/hadoop

export PATH=HADOOP_HOME/bin:HADOOP_HOME/sbin:$PATH

C.让环境变量立即生效:

source ~/.bashrc

D.修改Hadoop配置文件。

D1.修改hadoop-env.sh配置文件:

sudo gedit /usr/local/hadoop/etc/hadoop/hadoop-env.sh

注意:上一行的gedit命令需要在虚拟机中执行(不能在xshell中执行)

代码如下:

export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_231

注意: hadoop-env.sh文件和yarn-env.sh文件用来控制hadoop的bin目录中的脚本

注意: 伪分布式Hadoop必须配置hadoop-env.sh、core-site.xml和 hdfs-site.xml三个文件

D2.编辑core-site.xml:

用如下命令打开core-site.xml文件, 并添加如下内容到<configuration>标签之间

sudo gedit /usr/local/hadoop/etc/hadoop/core-site.xml

注意:上一行的gedit命令需要在虚拟机中执行(不能在xshell中执行)

在/usr/local/hadoop/etc/hadoop/core-site.xml的一对儿configuration标签添加如下内容:

<property>

<name>fs.defaultFS</name>

<value>hdfs://master:9000</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>file:/usr/local/hadoop/tmp</value>

</property>

D3.编辑hdfs-site.xml文件:

sudo gedit /usr/local/hadoop/etc/hadoop/hdfs-site.xml

注意:上一行的gedit命令需要在虚拟机中执行(不能在xshell中执行)

用上边gedit命令打开文件并在configuration中添加如下内容:

XML 复制代码
<property>
	<name>dfs.namenode.name.dir</name>
	<value>file:/usr/local/hadoop/dfs/name</value>
</property>
<property>
	<name>dfs.datanode.data.dir</name>
	<value>file:/usr/local/hadoop/dfs/data</value>
</property>
<property>
	<name>dfs.replication</name>
	<value>1</value>
</property>

D4.对主节点格式化:

集群启动前,需要先对主节点进行格式化,生成元数据。 命令如下:

hdfs namenode -format

格式化完成后的提示如下:

D5.启动Hadoop服务:

命令如下:

start-all.sh

结果如下:

注意: 可以像上图,用jps命令查看到6个进程。

D6.浏览器测试访问:

  1. 通过下边网址访问yarn管理界面

http://master:8088/cluster

  1. 通过下边地址访问HDFS管理界面:

http://master:9870/

D7.测试:

用运行Hadoop自带的样例程序hadoop-mapreduce-examples-3.1.2.jar:

代码如下:

hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.1.2.jar pi 2 1000

结果如下:

完毕!!

注意: 下边操作不需要进行(如果出了对应的问题再看下边说明策略)

七、其他问题说明:

7.1.关闭虚拟机的用户图形化界面:

A.注意:查看当前虚拟机界面

cat /etc/inittab

multi-user.target: analogous to runlevel 3 #命令界面

graphical.target: analogous to runlevel 5 #图形界面

B.注意:设置界面

systemctl set-default multi-user.target #采用命令界面

systemctl set-default graphical.target #采用图形界面

7.2.设置网络自动连接:

1.进入网络脚本文件夹network-scripts

cd /etc/sysconfig/network-scripts/

2.修改网络配置文件:

sudo gedit ifcfg-ens33

3.将ONBOOT=no 的值改为yes, 参考下图

4.重启:

reboot

7.3.用户 不在 sudoers 文件中

解决办法:

1.切换到root用户登录

2.给sudoers文件设置权限为640

chmod 640 /etc/sudoers

3.编辑sudoers文件

gedit /etc/sudoers 注意:此命令再虚拟机中执行(不要再xshell中执行)

将此用户添加到sudoers文件中:

7.4.centos安装ssh的方法:

  1. 首先安装【openssh-server】;
  2. 然后修改配置文件,并启动ssh的服务;
  3. 接着设置开机自动启动;
  4. 最后设置文件夹【~/.ssh】的访问权限即可。

1. 安装openssh-server

yum install -y openssl openssh-server

2. 修改配置文件

配置文件/etc/ssh/sshd_config

sudo gedit /etc/ssh/sshd_config

注意:上一行的命令要在虚拟机中执行(不要再xshell中执行,否则不能用记事本软件打开sshd_config配置文件)

3、启动ssh的服务:

systemctl start sshd.service

4、设置开机自动启动ssh服务

systemctl enable sshd.service

5、设置文件夹~/.ssh的访问权限:

cd ~

chmod 700 .ssh

chmod 600 .ssh/*

ls -la .ssh 查看.ssh文件的权限是否和下边相匹配

注意: authorized_keys文件存储的是客户端的公共密钥。

相关推荐
小扳7 分钟前
微服务篇-深入了解使用 RestTemplate 远程调用、Nacos 注册中心基本原理与使用、OpenFeign 的基本使用
java·运维·分布式·后端·spring·微服务·架构
LightOfNight34 分钟前
Redis设计与实现第14章 -- 服务器 总结(命令执行器 serverCron函数 初始化)
服务器·数据库·redis·分布式·后端·缓存·中间件
cnsxjean10 小时前
SpringBoot集成Minio实现上传凭证、分片上传、秒传和断点续传
java·前端·spring boot·分布式·后端·中间件·架构
桃园码工16 小时前
3-测试go-redis+redsync实现分布式锁 --开源项目obtain_data测试
redis·分布式·golang
sx_170616 小时前
Spark面试题
大数据·分布式·spark
wclass-zhengge18 小时前
02微服务系统与设计(D1_走出微服务误区:避免从单体到分布式单体)
分布式·微服务·架构
ZOMI酱19 小时前
【AI系统】分布式通信与 NVLink
人工智能·分布式
scc214021 小时前
kafka学习-02
分布式·学习·kafka
xidianjiapei00121 小时前
Kafka Transactions: Part 1: Exactly-Once Messaging
分布式·kafka·消息系统·exactly-once语义·精确一次语义
zmd-zk21 小时前
kafka生产者和消费者命令的使用
大数据·分布式·学习·kafka