首页 > 系统相关 >1-centOS7搭建伪分布式Hadoop

1-centOS7搭建伪分布式Hadoop

时间:2023-09-09 18:45:46浏览次数:46  
标签:虚拟机 sudo hadoop gedit Hadoop centOS7 usr ssh 分布式

前言:虚拟机快照的使用

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

 

标签:虚拟机,sudo,hadoop,gedit,Hadoop,centOS7,usr,ssh,分布式
From: https://www.cnblogs.com/zhaoyongqi/p/17689977.html

相关文章

  • CentOS7.5报java: error while loading shared libraries: libjli.so: cannot open sh
    1.问题描述:CentOS版本:CentOS-7.5-x86_64-DVD-1804jdk版本:jdk-8u161-linux-x64.tar配置jdk时,执行java报错java:errorwhileloadingsharedlibraries:libjli.so:cannotopensharedobjectfile:Nosuchfileordirectory 2.解决方法:发现是CentOS7.5不支持jdk-8u161......
  • 安装CentOS7虚拟机
    1、前期工作下载CentOS7镜像:CentOS-7-x86_64-DVD-2009.iso安装虚拟机工具:VirtualBox2、新建虚拟机2.1、设置新建虚拟机的名称、安装路径、类型及版本注意:CentOSLinux的发行版本是通过编译RedHat,Inc公开提供的RedHat企业级Linux开源代码而产生的;所以这......
  • 分布式下AP与CP的区别
    在分布式中有一种理论叫CAP理论,C表示数据一致性,A表示系统可用性,P表示分区容错性,提出这个理论的人也指出了CAP这三者间只能有两个同时成立。先来解释一下P分区容错性,在分布式的情况下,应用都会搭一个集群,比如用户在使用一个服务的时候可能会有多个用户服务端,当一个用户在一个服务......
  • CentOS7搭建LAMP详细教程
    一、安装Apache1.执行安装命令Apache及其扩展包yuminstall-yhttpdhttpd-manualmod_SSLmod_perlmod_auth_mysql如果显示如下图所示,则安装成功2.启动Apache并设置自启动systemctlstarthttpdsystemctlenablehttpd这里我就不设置自启动了3.查看Apache是否启......
  • centos7.9安装若依管理系统
    1安装mysql数据库2安装redis数据库3安装nginx4修改配置mysql数据库和redis数据库都在centos7.9上安装,把本地配置文件数据库相关部分修改成centos7.9的信息。修改application-druid.yml,修改mysql文件配置。修改application.yml,修改redis数据库配置。 ......
  • CentOS7,LVM根分区扩容步骤
    CentOS7,LVM根分区扩容步骤:转自:简书@神冰凰1.查看现有分区大小df-THLVM分区,磁盘总大小为20G,根分区总容量为17G2.关机增加大小为30G(测试环境使用的VmwareWorkstation)  扩展分区到303.查看扩容后磁盘大小df-THlsblk 磁盘总大小为30G,根......
  • centos7安装最新discuz 3.5
    discuz一、安装lamp环境安装最新的discuz3.5版本,lamp要求,不满足一下要求,在安装界面会有提示信息软件名称最低要求推荐版本其他事项PHP>=5.6.07.4-8.2依赖XML扩展、JSON扩展、GD扩展>=1.0MySQL>=5.5.38.0如使用MariaDB,推荐版本为>=10.2......
  • 分布式事务-seata框架
    文章目录分布式事务0.学习目标1.分布式事务问题1.1.本地事务1.2.分布式事务1.3.演示分布式事务问题2.理论基础2.1.CAP定理2.1.1.一致性2.1.2.可用性2.1.3.分区容错2.1.4.矛盾2.2.BASE理论2.3.解决分布式事务的思路3.初识Seata3.1.Seata的架构3.2.部署TC服务3.3.微服务集成Seata3.3......
  • 通过StarWindV2VConverter将VMWare的CentOS7虚拟机转换成Hyper-V产生所warning: /dev/
    1.在VMWare中将CentOS7虚拟机导出ovf,在StarWindV2VConverter中将其转换为VHDX2.在Hyper-V中新建虚拟机2.1在选择代数时要注意一定要选择“第一代”2.2在选择选择虚拟硬盘时,选择已转换好的VHDX文件3.启动Hyper-V中新建的虚拟机3.1出现了如下的问题-------------3.2处理方法在......
  • locust:Python 分布式压力测试(带WebUI)
    Locust介绍它采用纯Python实现,是一个分布式用户负载测试的工具。使用基于Requests库的客户端发起请求,使编写脚本大大简化;在模拟并发方面摒弃进程和线程,完全基于时间驱动,采用协程(gevent)提供的非阻塞IO和coroutine来实现网络层的并发请求。因此单台压力机也能产生数......