Hadoop2.8.5 安装过程

1 下载hadoop

安装版本:CentOS7 Hadoop2.8.5 JDK1.8
说明:Hadoop从版本2开始加入了Yarn这个资源管理器,Yarn并不需要单独安装。只要在机器上安装了JDK就可以直接安装Hadoop,单纯安装Hadoop并不依赖Zookeeper之类的其他东西。
下载Hadoop:http://www-eu.apache.org/dist/hadoop/common/hadoop-2.8.5/ hadoop-2.8.5.tar.gz
在这里插入图片描述

2 安装3个虚拟机并实现ssh免密码登录

2.1安装3个机器
这里用的Linux系统是CentOS7,安装方法参考:
安装6个机器,机器名称分别叫master、slaver1、slaver2、slaver3、slaver4、slaver5。
说明:为了免去后面一系列授权的麻烦,这里直接使用root账户登录和操作了。

修改各节点的IP,我的机器名和ip的对应关系是:

vim /etc/sysconfig/network-scripts/ifcfg-ens33 

配置如下图:master的IP地址设置,其中网关和DNS每个节点都一样
在这里插入图片描述
修改其中的IPADDR,各自的IP地址分别为

mastaer 192.168.144.130
slaver1 192.168.144.131
slaver2 192.168.144.132
slaver3 192.168.144.133
slaver4 192.168.144.134
slaver5 192.168.144.135

保存退出后重启网络服务

systemctl restart network

使用ifconfig命令,查看这6个机器的IP。
在这里插入图片描述

2.2 修改主机名
永久修改

hostnamectl set-hostname master

或者编辑配置文件/etc/hostname,在此文件中输入要修改的主机名

vim /etc/hostname

如图为master的/etc/hostname文件内容
在这里插入图片描述

2.3修改/etc/hosts文件

vim /etc/hosts

打开之后的内容是:

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

然后在后面添加

192.168.144.130 master
192.168.144.131 slaver1
192.168.144.132 slaver2
192.168.144.133 slaver3
192.168.144.134 slaver4
192.168.144.135 slaver5

每个节点都一样的配置,如下为master的/etc/hosts配置
在这里插入图片描述
2.4 关闭防火墙

查看状态:
systemctl status firewalld

停止:

 systemctl disable firewalld

禁用:

 systemctl stop firewalld

在开机时禁用一个服务:

systemctl disable firewalld.service

关闭以后查看状态:
在这里插入图片描述

2.5 ssh免密登陆
每个机器上都生成密码对

ssh-keygen –t rsa

生成其无密码密钥对,一路回车键,生成的密钥对:id_rsa和id_rsa.pub,默认存储在"/home/hadoop/.ssh"目录

接下来要做的事情是在6台机器的/root/.ssh/目录下都存入一个内容相同的文件,文件名称叫authorized_keys,文件内容是我们刚才为6台机器生成的公钥。

为了方便,我下面的步骤是现在master上生成authorized_keys文件,然后把6台机器刚才生成的公钥加入到这个master的authorized_keys文件里,然后在将这个authorized_keys文件复制到其他节点上。

touch  /root/.ssh/authorized_keys

把id_rsa.pub追加到授权的key里面去:

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys 

再将其余节点的key加进去,之后是这样的:
在这里插入图片描述
修改文件"authorized_keys"权限,这步骤很重要,很多莫名其妙的错误有可能就是权限的问题

chmod 600 ~/.ssh/authorized_keys

master/root/.ssh/目录下已经有authorized_keys这个文件了,该文件的内容也已经OK了,接下来要将该文件复制到其他节点的/root/.ssh/

scp ~/.ssh/authorized_keys slave1:~/.ssh/ 
scp ~/.ssh/authorized_keys slave2:~/.ssh/
scp ~/.ssh/authorized_keys slave3:~/.ssh/
scp ~/.ssh/authorized_keys slave4:~/.ssh/
scp ~/.ssh/authorized_keys slave5:~/.ssh/

测试一下各个节点之间是否可以互相免密登录

ssh slaver1
ssh slaver2

在这里插入图片描述

3 安装jdk和hadoop

3.1 安装JDK
在每一个节点上都安装jdk1.8,要将Centos7自带的jdk卸载掉,重新安装(最好安装1.8版本,最初安装最新版JDK_11,但是后续安装spark报错,又换成了JDK1.8)。
3.2 安装hadoop
(1)上载文件并解压缩
上传hadoop-2.8.5.tar.gz到目录/usr/local/hadoop/下,并解压,删除安装包:

tar hadoop-2.8.5.tar.gz
rm -rf hadoop-2.8.5.tar.gz

(2) 新建几个目录

cd /usr/local/hadoop/hadoop-2.8.5/
mkdir tmp
mkdir hdfs
mkdir hdfs/name
mkdir hdfs/data

(3) 修改etc/hadoop中的一系列配置文件

cd /usr/local/hadoop/hadoop-2.8.5/etc/hadoop
vim hadoop-env.sh

修改JAVA安装路径

export JAVA_HOME=/usr/local/jdk/jdk1.8.0_181

在这里插入图片描述

  • 修改core-site.xml
<configuration>
<!--配置hdfs文件系统的命名空间-->
  <property>
  <name>fs.defaultFS</name>
 <value>hdfs://master:9000</value>
  </property>
<!-- 配置操作hdfs的存冲大小 -->
  <property>
  <name>io.file.buffer.size</name>
 <value>4096</value>
  </property>
<!-- 配置临时数据存储目录 -->
  <property>
  <name>hadoop.tmp.dir</name>
  <value>/usr/local/hadoop/hadoop-2.8.5/tmp</value>
  </property>
</configuration>

在这里插入图片描述

  • 修改hdfs-site.xml
<configuration>

<!--配置副本数-->
  <property>
  <name>dfs.replication</name>
  <value>3</value>
  </property>
<!--hdfs的元数据存储位置-->
  <property>
  <name>dfs.namenode.name.dir</name>
  <value>/usr/local/hadoop/hadoop-2.8.5/hdfs/name</value>
 </property>
<!--hdfs的数据存储位置-->
 <property>
  <name>dfs.datanode.data.dir</name>
  <value>/usr/local/hadoop/hadoop-2.8.5/hdfs/data</value>
 </property>
<!--hdfs的namenode的web ui 地址-->
 <property>
  <name>dfs.http.address</name>
 <value>master:50070</value>
  </property>
<!--hdfs的snn的web ui 地址-->
  <property>
 <name>dfs.secondary.http.address</name>
  <value>master:50090</value>
  </property>
<!--是否开启web操作hdfs-->
 <property>
  <name>dfs.webhdfs.enabled</name>
 <value>true</value>
  </property>
<!--是否启用hdfs权限(acl)-->
  <property>
  <name>dfs.permissions</name>
  <value>false</value>
  </property>
</configuration>

  • 新建并且修改mapred-site.xml
cp   mapred-site.xml.template     mapred-site.xml
vim mapred-site.xml
<configuration>
<!--指定maoreduce运行框架-->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>
<!--历史服务的通信地址-->
    <property>
        <name>mapreduce.jobhistory.address</name>
        <value>master:10020</value>
    </property>
<!--历史服务的web ui地址-->
    <property>
        <name>mapreduce.jobhistory.webapp.address</name>
        <value>master:19888</value>
    </property>
</configuration>

  • 修改slaves文件
vim slaves

内容为:

master
slaver1
slaver2
slaver3
slaver4
slaver5

  • 修改yarn-site.xml文件
vim yarn-site.xml
<configuration>

<!-- Site specific YARN configuration properties -->
<!--指定resourcemanager所启动的服务器主机名-->
    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>master</value>
    </property>
<!--指定mapreduce的shuffle-->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
<!--指定resourcemanager的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.address</name>
        <value>master:8032</value>
    </property>
<!--指定scheduler的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.scheduler.address</name>
        <value>master:8030</value>
    </property>
<!--指定resource-tracker的内部通讯地址-->
 <property>
        <name>yarn.resourcemanager.resource-tracker.address</name>
        <value>master:8031</value>
    </property>
<!--指定resourcemanager.admin的内部通讯地址-->
    <property>
        <name>yarn.resourcemanager.admin.address</name>
        <value>master:8033</value>
    </property>
<!--指定resourcemanager.webapp的ui监控地址-->
<property>
        <name>yarn.resourcemanager.webapp.address</name>
        <value>master:8088</value>
    </property>
</configuration>

3.3 分发配置
每一个节点都要进行Hadoop的安装,在master上安装好以后分发给其他节点

cd /usr/local
scp hadoop slaver1:/usr/local/
scp hadoop slaver2:/usr/local/
scp hadoop slaver3:/usr/local/
scp hadoop slaver4:/usr/local/
scp hadoop slaver5:/usr/local/

并分别配置每个节点的/etc/profile文件

4 启动hadoop

4.1 在namenode上执行初始化
因为master是namenode,其余都是datanode,所以只需要对master进行初始化操作,也就是对hdfs进行格式化。
进入到master这台机器的/usr/local/hadoop/hadoop-2.8.5/bin目录

./hdfs  namenode  -format

格式化成功后,可以在看到在/usr/local/hadoop/hadoop-2.8.5/hdfs/name/目录多了一个current目录,而且该目录内有一系列文件

4.2 在namenode上执行启动命令
进入到hserver1这台机器的/usr/local/hadoop/hadoop-2.8.5/sbin目录,
执行初始化脚本,也就是执行命令:

 ./start-all.sh

5 测试hadoop

访问 http://192.168.144.130:50070/
记:hdfs文件存储位置
/usr/local/hadoop/hadoop-2.8.5/hdfs/data/current/BP-1236883458-192.168.144.130-1538123110928/current/finalized/subdir0/subdir0
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Source_00/article/details/83031688