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文件存储的是客户端的公共密钥。

相关推荐
xiao-xiang3 分钟前
kafka-集群缩容
分布式·kafka
比花花解语6 分钟前
Kafka在Windows系统使用delete命令删除Topic时出现的问题
windows·分布式·kafka
解决方案工程师8 分钟前
【Kafka】Kafka高性能解读
分布式·kafka
yellowatumn11 分钟前
RocketMq\Kafka如何保障消息不丢失?
分布式·kafka·rocketmq
python资深爱好者31 分钟前
什么容错性以及Spark Streaming如何保证容错性
大数据·分布式·spark
HeartRaindj2 小时前
【中间件开发】kafka使用场景与设计原理
分布式·中间件·kafka
明达技术3 小时前
探索分布式 IO 模块网络适配器
分布式
爬山算法4 小时前
Zookeeper(58)如何在Zookeeper中实现分布式锁?
分布式·zookeeper·云原生
明达技术7 小时前
分布式 IO 模块:造纸设备的降本增效利器
分布式
一位卑微的码农10 小时前
深入解析Spring Cloud Config:构建高可用分布式配置中心
分布式·spring cloud·微服务·架构