Hadoop伪分布式环境搭建

一.安装虚拟机

VMware12、Centos7安装,网上教程有很多,可参考
https://blog.csdn.net/sinat_35866463/article/details/77934186
网络模式我选择的是NAT

二.hadoop环境准备

1.准备
网络配置

VMware页面 → 编辑 → 虚拟网络编辑 → VMnet8
选择NAT模式
勾选使用本地DHCP服务将IP地址分配给虚拟机
可以点击NAT设置看信息,要与下面的配置信息一致
##端口转发可以了解一下: https://www.cnblogs.com/liuyuxing/p/5010880.html
最终问题解决:https://blog.csdn.net/a532672728/article/details/78640717

使用root用户登录,新添加一个hadoop用户

[root@localhost~]$useradd hadoop
[root@localhost~]$passwd hadoop
[root@localhost~]$chmod u+w /etc/sudoers
[root@localhost~]$vi /etc/sudoers  #在root ALL=(ALL)ALL下添加hadoop ALL=(ALL)ALL
[root@localhost~]$chmod u-w /etc/sudoers

2.配置静态IP

设置IP

[root@localhost~]$vi /etc/sysconfig/network-scripts/ifcfg-ens33	  #修改此文件
#修改内容
BOOTPROTO=static #dhcp改为static   
ONBOOT=yes   #开机启用本配置  
IPADDR=192.168.120.128  #静态IP  
GATEWAY=192.168.120.2 #默认网关  
NETMASK=255.255.255.0 #子网掩码  
DNS1=114.114.114.114 #DNS 配置
NM_CONTROLLED=no
IPV6INIT=no

配置完重启网络服务service network restart,测试ping baidu.com,ping不通先继续以下步骤

修改hostname

[root@localhost~]$vi /etc/hostname
#修改为
master
[root@localhost~]$hostname		#输出为localhost
[root@localhost~]$hostname master   #修改成功		

修改默认网关配置

[root@localhost~]$vi /etc/sysconfig/network
#修改为
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=master
GATEWAY=192.168.120.2 #默认网关

修改DNS

[root@localhost~]$vi /etc/resolv.conf
#修改为
nameserver 114.114.114.114
[root@localhost~]$source /etc/resolv.conf      #出错,提示no command nameserver,跳过

关闭防火墙

[root@localhost~]$systemctl stop firewalld.service    #停止firewall
[root@localhost~]$systemctl disable firewalld.service     #禁止firewall开机启动

配置/etc/hosts

[root@localhost~]$vi /etc/hosts
#修改为
127.0.0.1	localhost    #第一行配置不能丢掉,否则Hadoop启动的时候会报错
192.168.120.128  master   #主节点
192.168.120.129  slave1	   #从节点1
192.168.120.131  slave2    #从节点2

重启网络服务service network restart

3.xshell工具
xshell6下载地址
https://www.jb51.net/softs/595166.html

Xshell 6 连接时报错 “The remote SSH server rejected X11 forwarding request.”
解决方法:

yum install xorg-x11-xauth -y
#然后重启网络服务

4.安装JDK
下载离线JDK压缩包,1.8版本,通过xshell中xftp工具上传至虚拟机
http://www.oracle.com/technetwork/java/javase/downloads/index.html

然后解压到自己设置的文件夹
tar -zxvf jdk-8u144-linux-x64.tar.gz -C /Java
配置环境变量

[root@localhost~]$vi /etc/profile
#添加以下内容
export JAVA_HOME=/Java/jdk1.8.0_144
export PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

#然后
[root@localhost~]$source /etc/profile
[root@localhost~]$java -version  #查看是否安装成功

5.克隆虚拟机
克隆两台虚拟机作为slave1,slave2,并修改静态IP、主机名,在VMware的NAT设置中添加这两个IP转发接口
测试一下网络通不通,

ping baidu.com
ping master
ping slave1
ping slave2

6.ssh免密登录

使用hadoop用户登录master

[hadoop@localhost~]$cd /home/hadoop
[hadoop@localhost~]$ssh-keygen -t rsa    #敲回车就行
[hadoop@localhost~]$cat .ssh/id_dsa.pub >> .ssh/authorized_keys  #导入公钥

#先测试连接自己
[hadoop@localhost~]$ssh master
#如果提示要输入密码, 查看authorized_keys文件权限,
#执行命令 $chmod 600 .ssh/authorized_keys
#如果是属于其他用户的, 需要修改该文件给其他用户权限 
#执行命令 $chmod 644 .ssh/authorized_keys
#chmod 700 .ssh

在slave1和slave2中执行命令"mkdir /root/.ssh",同样要生成秘钥公钥
然后将公钥发给master节点

slave1:

ssh-keygen -t rsa
scp .ssh/id_rsa.pub  hadoop@master:/home/hadoop/.ssh/id_rsa_1.pub

在master节点执行如下操作:

cat id_rsa_1.pub >> .ssh/authorized_keys
cat id_rsa_2.pub >> .ssh/authorized_keys
scp .ssh/authorized_keys  hadoop@slave1:/home/hadoop/.ssh/authorized_keys
scp /root/.ssh/authorized_keys  hadoop@slave2:/home/hadoop/.ssh/authorized_keys
#测试一下
ssh master
ssh slave1
ssh slave2

三、安装hadoop

hadoop2.6.5下载地址 http://mirrors.hust.edu.cn/apache/hadoop/common/

1.解压到hadoop用户下

tar -zxvf hadoop-2.6.5.tar.gz  -C /home/hadoop/

2.进入解压目录…/hadoop-2.6.5/etc/hadoop/目录修改里面的配置文件
①hadoop-env.sh和yarn-env.sh文件
修改Java环境变量,将其值改为前面Java的安装路径

export JAVA_HOME=${JAVA_HOME}

②core-site.xml

mkdir -p /home/hadoop/tmp
#然后进行如下修改

在这里插入图片描述

③hdfs-site.xml

<configuration>
    <property>
      <name>dfs.replication</name>
      <value>2</value>
    </property>
    <property>
      <name>dfs.namenode.name.dir</name>
      <value>file:/home/hadoop/data/namenode</value>
    </property>
    <property>
      <name>dfs.datanode.data.dir</name>
      <value>file:/home/hadoop/data/datanode</value>      #建立data目录
    </property>
</configuration>

④mapred-site.xml
该文件是MapReduce的配置文件,由于Hadoop中不存在该文件,首先复制一个:

cp ./mapred-site.xml.template  ./hadoop/mapred-site.xml

然后将其修改为下图内容,指定由yarn作为MapReduce的程序运行框架。如果没有配置这项,那么提交的程序只会运行在 locale 模式,而不是分布式模式。
在这里插入图片描述

⑤yarn-site.xml
yarn-site.xml用来配置Yarn的一些信息。yarn.nodemanager.aux-services配置用户自定义服务,例如MapReduce的shuffle。yarn.resourcemanager.address设置客户端访问的地址,客户端通过该地址向RM提交应用程序,杀死应用程序等。yarn.resourcemanager. scheduler.adress设置ApplicationMaster的访问地址,通过该地址向ResourceManager申请资源、释放资源等。yarn.resourcemanager.resource-tracker.address设置NodeManager的访问地址,通过该地址向ResourceManager汇报心跳,领取任务等。yarn.resourcemanager.admin.address设置管理员的访问地址,通过该地址向ResourceManager发送管理命令等。yarn.resourcemanager.webapp.address设置对外ResourceManager Web访问地址,用户可通过该地址在浏览器中查看集群各类信息。yarn-site.xml配置信息如图
在这里插入图片描述

⑥创建文件slaves
touch /home/hadoop/hadoop-2.6.5/etc/hadoop/slaves

#添加如下内容
slave1
slave2

3.将hadoop文件发送给slave1和slave2

$scp -r hadoop-2.6.0/ slave1:/home/hadoop/hadoop-2.6.0
$scp -r hadoop-2.6.0/ slave2:/home/hadoop/hadoop-2.6.0

4.修改master、slave1、slave2的hadoop环境变量

vi /etc/profile
#添加以下内容
export HADOOP_HOME=/hadoop/hadoop-2.6.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
#然后source /etc/profile

四、测试

1.在master节点格式化namenode

hdfs namenode –format

若出现错误:java.io.IOException: Cannot create directory
三个节点上

sudo chmod -R a+w /home/hadoop/tmp
#data目录可能也需要

2.maser节点启动start-all.sh

start-dfs.sh
start-yarn.sh
#也可用start-all.sh

#停止服务如下
stop-dfs.sh
stop-yarn.sh
#也可用stop-all.sh

3.jps显示信息
master节点输入jps

$jps 
#显示如下信息
5161 SecondaryNameNode 
5320 ResourceManager 
4989 NameNode

slave节点输入jps

$jps 
#显示如下信息
3586 NodeManager 
4765 DataNode

4.web页面验证
在浏览器中输入地址http://192.168.120.128:50070检查NameNode和DataNode是否启动正常。
在浏览器中输入地址http://192.168.120.128:18088检查Yarn是否启动正常

5在master节点运行Hadoop自带的MapReduce例子验证

 $cd /home/hadoop/hadoop-2.6.5/share/hadoop/mapreduce/
 $hadoop jar hadoop-mapreduce-examples-2.6.5.jar pi 10 10

若出现Warning: Permanently added ‘192.168.9.10‘ (RSA) to the list of known hosts.重新跑一遍

若出现hadoop运行mapreduce作业无法连接0.0.0.0/0.0.0.0:10020 Already tried 0 time(s); retry policy is RetryUpToMaximumCountWithFixedSleep(maxRetries=10, sleepTime=1 SECONDS)
在mapred-site.xml配置文件中添加:

<property>  
        <name>mapreduce.jobhistory.address</name>  
        <value>master:10020</value>  
</property>

在master上启动JobHistoryServer服务

$mr-jobhistory-daemon.sh start historyserver 

再次运行实例即可
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值