hadoop集群环境搭建和配置

hadoop集群环境搭建

linux: CentOS 7
hadoop版本: hadoop-2.8.5
JDK: jdk1.8.0_151

/etc/hosts

1. 192.168.159.129 master
2. 192.168.159.128 slaver
3. 192.168.159.130 slaver2

配置JDK环境

1.下载解压JDK,执行如下命令

yum install java-1.8.0-openjdk java-1.8.0openjdk-devel

2.配置JAVA_HOME环境变量,可以在~/.bashrc文件中进行设置,执行如下命令:

vi ~/.bashrc

在文件的最后添加如下代码(指向JDK的安装位置),内容如下:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64

编辑结束后,按Esc键进入末行模式,输入:wq命令,然后按Enter键,保存代码并退出。
3.使环境变量生效,执行如下命令:

source ~/.bashrc  

4.设置好后来检验一下是否设置正确,执行如下命令:

echo $JAVA_HOME     # 检验变量值
 java -version

注意:需要对三台服务器都进行同样操作。(这里需要在三台主机上都执行上面的安装JDK的步骤,因为每台节点都必须要JDK

配置ssh免密码登录

1.CentOS 默认已安装了SSH client、SSH server,进入实验后点击Applications->Terminal Emulator 进入Linux操作界面进行命令操作。执行如下命令:

 rpm -qa | grep ssh

如果结果中包含了SSH client和SSH server,则不需要再安装。
若需要安装,也可以进行安装(安装过程中会提示输入 [y/n],输入y即可),执行如下命令:

yum install openssh-clients
yum install openssh-server

安装好后,测试SSH 是否可用(注意该地址为目标机器IP地址:另外两节点地址),执行如下命令:

 ssh 192.168.159.129

按照提示输入密码(111111),登录服务器
连接完成后,证明ssh命令可用,然后需要返回到最初的主机,执行如下命令:

exit

2.生成密钥,并将密钥加入到授权中,由于要反复确认路径,所以后续也是直接按Enter键,执行如下命令:

ssh-keygen

在虚拟机的/headless目录下创建 .ssh文件,执行如下命令:

cd /headless
mkdir .ssh  

注:各节点进行免密登录步骤如下:
在全部节点上,执行上述步骤(1)到(3),执行完毕后,进入master节点执行步骤(4)。
4.通过命令的方式将密码发送到节点,执行如下命令(目标机器IP地址):

 ssh-copy-id -i /root/.ssh/id_rsa.pub 192.168.159.128

注:在Master节点上对所有节点进行免密登录操作(包括master节点),到此免密就已经完成。

安装hadoop

  1. 进入~/download目录
  2. 下载hadoop-2.8.3.tar.gz(如果无法连接外网,本镜像提供了2.8.3版本的安装包,在~/download目录下。本实验中两者没有区别都可以使用),解压到/usr/local目录中执行如下命令(解压,注意文件名的版本)
tar -zxvf  hadoop-2.8.5.tar.gz -C /usr/local
  1. 解压完之后进入/usr/local目录,修改解压hadoop包后的文件名(将文件夹名改为hadoop,注意文件名的版本)
  2. 改完后进入到hadoop目录中

集群配置

修改自己所用节点的IP映射,执行如下命令:

 vi /etc/hosts

在/etc/hosts文件中输入映射关系即可(一般该文件中只有一个127.0.0.1,其对应名为 localhost,不要有Master之类的主机名称):

编辑完成后,按Esc键进入末行模式,输入:wq命令,然后按Enter键,保存代码并退出。
注意:三台节点都要配置相同的内容。

配置环境变量

执行如下命令:

vi ~/.bashrc

按i进入编辑模式,把hadoop的环境变量添加进去,执行如下命令:

export HADOOP_HOME=/usr/local/hadoop/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

编辑完成后,按Esc键进入末行模式,输入:wq命令,然后按Enter键,保存代码并退出。
让环境变量生效,执行如下命令:

source ~/.bashrc

注意:三台节点都要配置相同的内容。

修改配置文件

进入配置文件所在的路径,执行如下命令:

cd /usr/local/hadoop/etc/hadoop

(1)slaves
让Master节点仅作为NameNode使用。
编辑slaves文件,执行如下命令:

vi slaves

按i进入编辑模式编辑内容,将文件中原来的 localhost 删除,并添加两行内容,

编辑完成后,按Esc键进入末行模式,输入:wq命令,然后按Enter键,保存代码并退出。
(2)core-site.xml
文件core-site.xml 改为下面的配置,执行如下命令:

vi core-site.xml

按i进入编辑模式,在 之间添加配置内容,内容如下:

<property>
<name>fs.defaultFS</name>
<value>hdfs://Master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>

编辑完成后,按Esc键进入末行模式,输入:wq命令,然后按Enter键,保存代码并退出。
(3)hdfs-site.xml
文件hdfs-site.xml 改为下面的配置,执行如下命令:

vi hdfs-site.xml

进入编辑模式,在 之间添加下面的配置内容:

<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>

编辑完成后,按Esc键进入末行模式,输入:wq命令,然后按Enter键,保存代码并退出。
(4)mapred-site.xml
对文件mapred-site.xml重命名,默认文件名为mapred-site.xml.template,并更改mapred-site.xml配置,执行如下命令:

mv mapred-site.xml.template mapred-site.xml
    vi mapred-site.xml

按i键进入编辑模式,在 之间添加下面的配置内容:

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

编辑完成后,按Esc键进入末行模式,输入:wq命令,然后按Enter键,保存代码并退出。
注意:这里指定MR运行框架为Yarn。
(5)yarn-site.xml
更改yarn-site.xml配置,执行如下命令:

vi yarn-site.xml

按i键进入编辑模式,在 之间添加下面的配置内容:

<property>
<name>yarn.resourcemanager.hostname</name>
<value>Master</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>

编辑完成后,按Esc键进入末行模式,输入:wq命令,然后按Enter键,保存代码并退出。

配置完成后,将Master上的/usr/local/hadoop文件夹复制到各个节点上。执行如下命令(这里使用主机名,如果主机名过于复杂,可以直接将主机名替换成ip):

scp -r /usr/local/hadoop root@Slaver:/usr/local/
scp -r /usr/local/hadoop root@Slaver2:/usr/local/

注意:对于最后一步的建议,由于Docker镜像每次关机重启,所以可能出现主机名和IP映射不成功的情况,所以建议使用IP。

Hadoop集群手动启动

进入Hadoop的安装目录,格式化NameNode。Hadoop启动前必须先格式化NameNode(在Master执行)。执行如下命令:

/usr/local/hadoop/bin/hdfs  namenode  -format

(2)启动NameNode(在Master节点),执行如下命令:

/usr/local/hadoop/sbin/hadoop-daemon.sh start namenode

(3)启动DataNode(在两台Slave节点),执行如下命令:

/usr/local/hadoop/sbin/hadoop-daemon.sh start datanode

(4)启动SecondaryNameNode(在任意节点),执行如下命令:

/usr/local/hadoop/sbin/hadoop-daemon.sh start secondarynamenode

(5)启动ResourceManager(在Master节点),执行如下命令:
/usr/local/hadoop/sbin/yarn-daemon.sh start resourcemanager

(6)启动NodeManager(在两台Slave节点),执行如下命令:

/usr/local/hadoop/sbin/yarn-daemon.sh start nodemanager

(7)使用jps命令查看是否已经启动成功,各节点有不同的进程。

访问master WEB UI界面,可以看另外2个节点都正常运行。
http://master:50070/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值