Hadoop集群的安装和配置

一、首先下载好jdk、hadoop包,放入linux并解压

注意:

1、大家尽量选择centos6版本,反正我用的是centos7,出现了很多问题,可能是7增加了一些安全机制,导致在免密登陆那块很容易出现授权列表有公钥也无法登陆问题

2、用普通用户模式进行密钥的分发和集群的开启,如果用root用户模式,可能会出现意想不到的问题,比如:系统只认第一次进行密钥分发的模式(普通用户模式/root用户模式),还出现一个root用户通过修改sshd_config后可以通过ssh登陆其他主机,而普通用户模式,就算密码输入无误也无法登陆,总是提示无权限,我已经进坑,各位注意点

为了日后的使用方便,给自己的集群确定一个主机,多个从主机

主机的命名为master

从主机的命名为salve(1、2、3...)

修改方式:

>>vim /etc/hostname

1.1、为了主机能够控制从主机,我们使用ssh进行免密登录,原理图如下:

Hadoop集群的安装和配置_第1张图片

 接下来开干:

1、通过rsa方式生成密钥

>> ssh-keygen

一路回车,就完成了,此时在.ssh文件目录生成了几个文件

>> cd ~/.ssh

>> ls

会看到如下几个文件:

id_rsa.pub:公共密钥,用于发送给将要登录的主机,进行验证

id_rsa:私密,与公钥成对出现

authorized_keys:授权列表,只有在此列表的公共密钥才能通过公钥免密登录

2、比如现在又A、B两台主机,A想要免密登录B,在A、B两台主机都进行了密钥生成操作后

我先只需要将A的公钥,放到B的授权列表中,首先将A的公钥文件id_rsa_A.pub发送到B主机,比如放到"/home/"

在B主机上执行将A的公钥加入授权列表操作

>> cd ~/.ssh

>>cat  /home/id_rsa_A_pub  >> authorized_keys 

现在看看文件,会发现授权列表里已经加入了A的公钥

二、文件的配置

2.1.系统变量文件的配置,添加jdk和hadoop的安装路径

>>vim /etc/profile

在文件中输入如下内容:

export JAVA_HOME=/home/zhangdabai/jdk1.8.0_201

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

export HADOOP_HOME=/home/zhangdabai/hadoop/hadoop-2.7.3

export PATH="$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH"

export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop

2.2.hadoop文件的配置(6步):

准备工作:进入hadoop-2.7.3文件夹目录下,创建一个hdfs文件夹,并在其下创建

name、tmp、data子文件夹

接下来全部的文件配置需进入hadoop-2.7.3/etc/hadoop/文件夹下进行

1、配置hadoop的环境变量,告诉hadoop,它所依赖的jdk的安装路径

>>vim hadoop-env.sh

添加如下内容:

# The java implementation to use.

export JAVA_HOME=/home/zhangdabai/jdk1.8.0_201

2、配置核心xml文件

>>vim core-site.xml

在configuration标签下添加如下内容:

   hadoop.tmp.dir

   file:/home/zhangdabai/hadoop/hadoop-2.7.3/hdfs/tmp

   A base for other temporary directories.

 

 

 

  io.file.buffer.size

   131072

 

 

 

   fs.defaultFS

   hdfs://master:9000

 

 

3、为了防止文件系统意外,需要配置文件副本的存储,保证文件保存的健壮性

>>vim hdfs-size.xml

配置如下内容:

 dfs.replication

   1

 

 

   dfs.namenode.name.dir

   file:/home/zhangdabai/hadoop/hadoop-2.7.3/hdfs/name

   true

 

   dfs.datanode.data.dir

   file:/home/zhangdabai/hadoop/hadoop-2.7.3/hdfs/data

   true

 

 

  dfs.namenode.secondary.http-address

   master:9001

 

 

   dfs.webhdfs.enabled

   true

 

 

   dfs.permissions

   false

 

4、指定程序运行在yarn集群上

>>mv  mapred-site.xml.template  mapred-size.xml

>>vim mapred-site.xml

   mapreduce.framework.name

   yarn

 

5、配置yarn

>>vim yarn-site.xml

输入如下内容:

 

 

 yarn.resourcemanager.address

   master:18040

 

 

   yarn.resourcemanager.scheduler.address

   master:18030

 

 

 

   yarn.resourcemanager.webapp.address

   master:18088

 

 

   yarn.resourcemanager.resource-tracker.address

   master:18025

 

 

   yarn.resourcemanager.admin.address

   master:18141

 

 

    yarn.nodemanager.aux-services

    mapreduce_shuffle

 

 

     yarn.nodemanager.auxservices.mapreduce.shuffle.class

     org.apache.hadoop.mapred.ShuffleHandler

 

 

6、指定从主机名

>>vim slaves

slave1

slave2

...

2.3、将主机上配置好了的hadoop发送到各个从主机上,并按2.1方式配置好环境变量

>>ssh-copy-id  “主机ip”

...

hadoop1是linux在虚拟机中的名字,slave1是linux主机名

3、格式化

>>hdfs namenode -format

 

4、启动集群

>>start-all.sh

5、jps测试

会出现6个进程,分别为:datanode、namenode、nodemanager、resourcemanager、secondarynamenode、jps

缺一不可!

如果出现如下问题,解决方案:

出现问题首先看日志文件(有些情况不会生成日志文件)

1、出现datanode未启动

解决方法:考虑到是多次格式化原因,造成id不一致,所以将data文件、tmp文件夹下面的文件删除,重新格式化,重启

2、nodemanager未启动,或者启动后马上消失进程

解决方法:hadoop配置文件错了,重新去配过就好

本文章只做学习记录,不喜勿喷。

如果大家还是有问题,给大家一个文档,照做应该可以

链接:https://pan.baidu.com/s/1V82T5JFltGngxWaXXUebDw 
提取码:pqho 

 

 

 

 

 

 

 

 

你可能感兴趣的:(大数据)