Hadoop-3.1.3的完全分布式的安装

Hadoop的完全分布式的安装

完全分布式的安装分为六大部分

在安装之前你需要准备Java的安装包以及Hadoop的安装包,这里推荐去[hadoop]以及Java的下载路径,然后安装centos7的图形化界面,然后使用xshell或者ftp或者MobaXterm_Portable_v22.2上传到自己的安装路径下,不会上传的自己去csdn里搜索相关的教程,这里不做过多的讲解,网上的讲解比我更全面,下面开始对Hadoop的安装,

修改修静止的IP地址

其中主要有关闭防火墙,修改IP,在修改在前先切换为root用户,先输入su root,然后输入自己的root用户的密码,

  1. 关闭防火墙

查看防火墙的状态

systemctl status firewalld 

关闭防火墙

systemctl stop firewalld

永久关闭防火墙

systemctl disable firewalld

2.修改静态IP地址
安装vim 编辑器,

yum install -y vim

进入修改IP地址的配置文件,

cd /etc/sysconfig/network-scripts 
vim ifcfg-ens33 #有的电脑是ifcfg-ens32,不确定的可输入ll进行查看

进入之后将BOOTPROTO="dhcp"改为BOOTPROTO=“static”,(将动态IP改为静态的IP),
打开虚拟网络编辑器,在vmware 中: 编辑——虚拟网络编辑器——NAT模式——NAT设置,查看自己IP,然后在ifcfg-ens33文件末尾增加四行数据,

IPADDR="192.168.183.20"   # 设置的静态IP地址,前三位必须与自己的虚拟网络编辑器的IP一样
NETMASK="255.255.255.0"    # 子网掩码
GATEWAY="192.168.183.2"    # 网关地址,全部都要与自己的虚拟网络编辑器的一样
DNS1="192.168.183.2"       #DNS服务器也可以将后面的数字改为8.8.8.8或者1.2.4.8

然后进行保存退出,重启网络

systemctl restart network

重启之后,ping www.baidu.com,查看是否修改成功,

安装Java和Hadoop

(1)先卸载系统自带的Java,自己去网上找教程,
(2)在usr目录下新建一个文件夹java,用来存放上传的压缩包,使用xshell上传Java和Hadoop的压缩包到java文件夹下,然后进行解压,(是先创建文件夹在进行压缩包的上传)

cd /usr   #进入usr目录
mkdir java  #新建java文件夹然后上传自己的压缩包
cd java  #进入java文件夹
ll   #查看上传的压缩包
tar -zxvf jdk-8u291-linux-x64.tar.gz   #解压jdk
tar -zxvf hadoop-3.1.3.tar.gz    #解压Hadoop

(3)配置JDK和Hadoop的环境变量

vim /etc/profile  #打开文件

//文件末尾加上
//java 的啊环境变量的配置
export JAVA_HOME=/usr/java/jdk1.8.0_164  #这里是自己的Java安装路径
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

#Hadoop的环境变量的配置
export HADOOP_HOME=/usr/java/hadoop-3.1.3  #此处是自己的Hadoop的安装路径
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

让文件生效

source /etc/profile

检查Java和Hadoop是否安装成功

java -version

//显示以下内容成功
java version “1.8.0_164”
Java™ SE Runtime Environment (build 1.8.0_164-b10)
Java HotSpot™ 64-Bit Server VM (build 25.164-b10, mixed mode)

hadoop version

//显示以下内容等
Hadoop 3.1.3
Subversion https://shv@git-wip-us.apache.org/repos/asf/hadoop.git -r …

克隆完整的虚拟机

1.克隆之前先关闭虚拟机,在这里克隆两台足够,在VMware中:右键虚拟机-管理-克隆,
2.把每台的文件都修改一下:IP地址依次为192.168.183.20、192.168.183.30, 192.168.40.

vim /etc/sysconfig/network-scripts/ifcfg-ens33
systemctl restart network  #重启网络服务:

3.修改主机名,三台都要,

hostnamectl set-hostname master  #master是主机名,其余的可改为node1 和node2
reboot #重启只有重启过后主机名才会生效

4.修改hosts文件,在主节点映射IP地址和主机名(或者vim /etc/hosts节点添加IP地址,同master节点一样的操作,三台都要,)

vim /etc/hosts  
//在文件最后加上:
主节点IP地址+ master 例:192.168.183.20 master
从一节点IP+ node1  例:192.168.183.30 node1
//从二节点IP+ slave2

5.将配置好的hosts文件发送给两个从节点之前,保证node1和node2 是在运行的

scp /etc/hosts node1:/etc/hosts

scp /etc/hosts node2:/etc/hosts

进行免密登录

1.分别在master,node1、node2,主机上生成公钥/私钥密钥对,然后将公钥发送给集群内的所有主机。首先在master主机生成密钥对。键入上面一条命令后连续回车,系统会自动在~/.ssh目录下生成公钥(id_rsa.pub)和私钥(id_rsa),

ssh-keygen -t rsa
ls ~/.ssh    #查看公钥(id_rsa.pub)和私钥(id_rsa),

2.将master公钥id_rsa.pub复制到master,node1、node2主机上。

 ssh-copy-id -i  ~/.ssh/id_rsa.pub master
 ssh-copy-id -i  ~/.ssh/id_rsa.pub node1
 ssh-copy-id -i  ~/.ssh/id_rsa.pub node2

**注意*然后以同样的方法在node1和node2 两台主机上分别进行免密登录,

设置Hadoop配置文件

1.进入Hadoop的目录

cd /usr/java/hadoop-3.1.3
cd etc
cd hadoop

2.配置hadoop-env.sh,mapred-env.sh,和yarn-env.sh文件

# 分别进入文件,在首行添加Java路径,这里以自己路径为主
export JAVA_HOME=/usr/java/jdk1.8.0_164 

3.配置core-site.xml文件

vim core-site.xml  #进入文件
<property>
        <name>fs.defaultFS</name>
  <value>hdfs://master:9000</value>
  </property>
	<property>
		<name>io.file.buffer.size</name>
		<value>131072</value>
	</property>
  <property>
        <name>hadoop.tmp.dir</name>
        <value>/usr/java/hadoop-3.1.3/data/tmp</value>
  </property>

4.配置hdfs-site.xml文件

vim hdfs-site.xml
 <property>
        <name>dfs.replication</name>
        <value>2</value>
      </property>
      <property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/java/hadoop-3.1.3/hdfs/name</value>
      </property>
      <property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/java/hadoop-3.1.3/hdfs/data</value>
      </property>
    
     <property>
        <name>dfs.namenode.secondary.http-address</name>
        <value>master:9001</value>
     </property>

5.配置 mapred-site.xml文件

<property>
    		<name>mapreduce.framework.name</name>
    		<value>yarn</value>
  	</property>
	
	<property>
		<name>mapreduce.jobhistory.address</name>
		<value>master:10020</value>
	</property>
		<name>mapreduce.jobhistory.webapp.address</name>
		<value>master:19888</value>
	<property></property>

6.配置yarn-site.xml文件

<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
      </property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>

<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>

<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>

<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8035</value>
</property>

<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>


<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8080</value>
</property>        

7.进入Hadoop文件的etc/hadoop,修改workers

cd /usr/java/hadoop-3.1.3
cd etc
cd hadoop
ll   #查看是否有workers文件
vim workers
//将里面的内替换为三台主机的IP+主机名
主节点IP地址+ master 例:192.168.183.20 master
从一节点IP+ slave1  例:192.168.183.30 node1
//从二节点IP+ slave2

8.将配置好的文件直接传到分节点

scp -r /usr/java/hadoop-3.1.3 root@node1:/usr/java
scp -r /usr/java/hadoop-3.1.3 root@node2:/usr/java

初始化节点并启动

hdfs namenode -format #初始化
start-all.sh          #启动Hadoop
jps  				  #查看进程

错误提示

//解决 Hadoop 启动 ERROR: Attempting to operate on hdfs namenode as root 的方法

Starting namenodes on [hadoop]
ERROR: Attempting to operate on hdfs namenode as root
ERROR: but there is no HDFS_NAMENODE_USER defined. Aborting operation.
Starting datanodes
ERROR: Attempting to operate on hdfs datanode as root
ERROR: but there is no HDFS_DATANODE_USER defined. Aborting operation.
Starting secondary namenodes [hadoop]
ERROR: Attempting to operate on hdfs secondarynamenode as root
ERROR: but there is no HDFS_SECONDARYNAMENODE_USER defined. Aborting operation.
2018-07-16 05:45:04,628 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Starting resourcemanager
ERROR: Attempting to operate on yarn resourcemanager as root
ERROR: but there is no YARN_RESOURCEMANAGER_USER defined. Aborting operation.
Starting nodemanagers
ERROR: Attempting to operate on yarn nodemanager as root
ERROR: but there is no YARN_NODEMANAGER_USER defined. Aborting operation.

解决问题

vim /etc/profile
#在文件末尾添加
export HDFS_NAMENODE_USER=root
export HDFS_DATANODE_USER=root
export HDFS_SECONDARYNAMENODE_USER=root
export YARN_RESOURCEMANAGER_USER=root
export YARN_NODEMANAGER_USER=root

source /etc/profile

再次启动及查看

start-all.sh
jps
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值