hadoop3.2.0完全分布式安装

基础准备

从官网上下载好hadoop3.2.0jdk8,并准备好3台centos7的虚拟机

IP及节点名

编辑/etc/hostname分别给三台虚拟机命名,我写的是master,slave1,slave2,接着重启虚拟机,使名称生效。

然后在/etc/sysconfig/network-script/ifcfg-ens32更改三台虚拟机的IP
master : 192.168.142.100
slave1 : 192.168.142.101
slave2 : 192.168.142.102

此处的142对应的是我本机的VMware8的网段,对应内容如下:

TYPE=Ethernet
BOOTPROTO=static
NAME=ens32
DEVICE=ens32
ONBOOT=yes
IPADDR=192.168.142.100
GATEWAY=192.168.142.1
NETMASK=255.255.255.0
DNS1=8.8.8.8

完成后使用systemctl restart network重启网络服务,然后使用 ifconfig 命令查看ip是否更改正确。

配置三台虚拟机ssh免密登录

首先,关闭防火墙:
systemctl stop firewalld
永久关闭:
systmctl disable firewalld

然后,在三台虚拟机上都配置/etc/hosts文件,在最后加入

192.168.142.100 master
192.168.142.101 slave1
192.168.142.102 slave2

同样重启网络服务。

然后在三台虚拟机上,使用ssh-keygen -t rsa命令生成ssh密钥

cd /root/.ssh
cp id_rsa.pub authorized_keys
复制完毕后,在其余两台访问id_rsa.pub文件,并将内容密钥拷贝到第一台authorized_keys文件的结尾。
接着使用scp命令,将文件传输到其余两台虚拟机的.ssh目录下。

scp authorized_keys slave1:/root/.ssh
scp authorized_keys slave2:/root/.ssh

发送成功后,便可以通过ssh slave1(slave2)直接跳转到其余两个节点的虚拟机上了。

配置java环境

在三台虚拟机上进行操作:

将下载好的jdk压缩包通过xterm上传到虚拟机中,并解压到/opt文件夹下。
vi /etc/profile

#java environment
export JAVA_HOME=/opt/jdk1.8.0_201 #注意对应的版本号
export CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

source /etc/profile
然后使用 java -version 进行检测,如果出现了对应的java环境则安装成功

配置hadoop

将下载好的hadoop压缩包通过xterm上传到虚拟机中,并解压到/opt文件夹下。

vi /etc/profile

#hadoop environment
export HADOOP_HOME=/opt/hadoop-3.2.0
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

source /etc/profile

然后,建立存储文件夹。
mkdir /usr/local/hadoop
mkdir /usr/local/hadoop/data
mkdir /usr/local/hadoop/data/tmp
mkdir /usr/local/hadoop/dfs
mkdir /usr/local/hadoop/dfs/data
mkdir /usr/local/hadoop/dfs/name
mkdir /usr/local/hadoop/tmp

cd /opt/hadoop-3.2.0/etc/hadoop/
vi hadoop-env.sh

export JAVA_HOME=/opt/jdk1.8.0_201

vi core-site.xml

<configuration>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/local/hadoop/tmp</value>
    </property>
    <property>
        <name>fs.defaultFS</name>
        <value>hdfs://master:9000</value>
    </property>
</configuration>

vi hdfs-site.xml

<configuration>
    <property>
        <name>dfs.namenode.http-address</name>
        <value>master:50070</value>
    </property>
    <property><!--namenode持久存储名字空间及事务日志的本地文件系统路径-->
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/hadoop/dfs/name</value>
     </property>
     <property><!--DataNode存放块数据的本地文件系统路径-->
         <name>dfs.datanode.data.dir</name>
         <value>/usr/local/hadoop/dfs/data</value>
     </property>
     <property><!--数据需要备份的数量,不能大于集群的机器数量,默认为3-->
        <name>dfs.replication</name>
        <value>2</value>
    </property>
</configuration>

vi yarn-site.xml

<configuration>
    <property><!--NodeManager上运行的附属服务,用于运行mapreduce-->
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
    <property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
</property>
<property>
   <name>yarn.application.classpath</name>
<value>(复制hadoop classpath命令得到的路径信息)</value>
</property>
</configuration>

vi mapred-site.xml

<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
</configuration>

vi workers
删除localhost改成

slave1
slave2

vi /opt/hadoop-3.2.0/sbin/start-yarn.sh
vi /opt/hadoop-3.2.0/sbin/stop-yarn.sh
然后,加入

YARN_RESOURCEMANAGER_USER=root
HADOOP_SECURE_DN_USER=yarn
YARN_NODEMANAGER_USER=root

vi /opt/hadoop-3.2.0/sbin/start-dfs.sh
vi /opt/hadoop-3.2.0/sbin/stop-dfs.sh

HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root

然后通过scp命令将hadoop3.2.0和修改后的/etc/profile发送到其余两个节点上

scp -r /opt/hadoop3.2.0 root@slave1:/opt/
scp -r /opt/hadoop3.2.0 root@slave2:/opt/

初始化hdfs

cd /opt/hadoop3.2.0/bin
hadoop namenode -formatt

启动hadoop

cd /opt/hadoop-3.2.0/sbin
./start-all.sh

访问192.168.142.100:50070192.168.142.100:8088192.168.142.101:8042查看是否正常运行。

启动wordcount

hadoop fs -mkdir -p /data/input
vi my_wordcount.txt

hello world

hadoop fs -put my_wordcount.txt /data/input
hadoop fs -ls /data/input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.2.0.jar wordcount /data/input/ /data/out/my_wordcount

wordcount卡死

第一步,检查配置文件是否出错,
第二步,使用jps检查各个节点是否启动正确,若与下图相同则正确。
在这里插入图片描述在这里插入图片描述在这里插入图片描述
第三步,若是不同则更改yarn-site.xml文件,在末尾加入下列代码,并发送至其余节点

<property> 
	<name>yarn.resourcemanager.hostname</name>
	<value>master</value>
</property> 
<property> 
	<name>yarn.nodemanager.resource.memory-mb</name> 
	<value>2048</value> 
</property> 
<property> 
	<name>yarn.scheduler.minimum-allocation-mb</name> 
	<value>2048</value> 
</property> 
<property> 
	<name>yarn.nodemanager.vmem-pmem-ratio</name> 
	<value>2.1</value> 
</property> 

最后重启hadoop便可成功运行wordcount。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值