前言:虚拟机快照的使用
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服务:
命令如下:
结果如下:
注意: 可以像上图,用jps命令查看到6个进程。
D6.浏览器测试访问:
- 通过下边网址访问yarn管理界面
- 通过下边地址访问HDFS管理界面:
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的方法:
- 首先安装【openssh-server】;
- 然后修改配置文件,并启动ssh的服务;
- 接着设置开机自动启动;
- 最后设置文件夹【~/.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文件存储的是客户端的公共密钥。