1-centOS7搭建伪分布式Hadoop

发布时间 2023-09-09 18:34:21作者: 905413993

前言:虚拟机快照的使用

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

注意:-G选项表示强制修改

二、修改主机名:

-----------------------------------------------------------------------------------------------

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

sudo  gedit   /etc/hostname   

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

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

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

sudo  gedit  /etc/hosts    注意:左边gedit命令需要在虚拟机中执行(不能在xshell中执行)

用上边的命令打开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中执行)

上图的代码如下:

上图的代码如下:

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中添加如下内容:

<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.浏览器测试访问:

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

http://master:8088/cluster

  • 通过下边地址访问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

 

  1. 修改配置文件

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