当前位置: > Linux集群 > Hadoop >

hadoop + spark+ hive 集群搭建(apache版本)

时间:2018-10-24 15:53来源:linux.it.net.cn 作者:IT
2018-09-11 17:49:27
 

0. 引言

hadoop 集群,初学者顺利将它搭起来,肯定要经过很多的坑。经过一个星期的折腾,我总算将集群正常跑起来了,所以,想将集群搭建的过程整理记录,分享出来,让大家作一个参考。
由于搭建过程比较漫长,所以,这篇文章应该也会很长,希望大家能耐心看完。

1. 集群环境和版本说明

3台CentOS 7.4 的服务器,4CPU,8G内存;
jdk  1.8
hadoop  2.7.7
spark 2.3.0
hive   2.1.1

节点和主机hostname对应关系:

主节点:    172.18.206.224    nn1   Namenode and YARN Resourcemanage 
从节点1:  172.18.206.228    dn1   Datanode and YAR   Nodemanager
从节点2:  172.18.206.229    dn2   Datanode and YARN   Nodemanager

为hadoop集群,创建一个non-root 用户,我使用的用户名是 hadoop。安装目录统一在hadoop用户的家目录 /data/hadoop 下。

2. hadoop 集群安装

2.1 安装 jdk 1.8版本

由于 hadoop 集群需要java 环境的支持,所以,在安装集群之前,首先确认你的系统是否已经安装了jdk,检查如下:

[root@ND-ES-3 ~]# java -version
openjdk version "1.8.0_161"
OpenJDK Runtime Environment (build 1.8.0_161-b14)
OpenJDK 64-Bit Server VM (build 25.161-b14, mixed mode)

如果没有安装 jdk 1.8 以上的版本,则需要卸载旧版本重新安装,在这里,我选择的jdk是oracal提供的版本,其他公司提供的jdk,我测试的时候,好像和apache hadoop 不兼容,总是报错。

下载 : jdk-8u181-linux-x64.rpm ,
然后上传到服务器,安装:

rpm  -ivh  jdk-8u181-linux-x64.rpm

安装完成后,检查 java -version 输出正确,就可以了。

2.2 修改 /etc/hosts 文件,实现ssh免密码登录

在 nn1,dn1 和 dn2 服务器上修改 /etc/hosts 文件,方便主机之间通过hostname也能够访问通信:
vi /etc/hosts :

172.18.206.224      nn1    nn1.cluster1.com
172.18.206.228      dn1    dn1.cluster1.com
172.18.206.229      dn2    dn2.cluster1.com

其实使用,什么hostname,都是可以的,看使用习惯。

创建 hadoop 用户:

在所有服务器上创建,可以先不用密码

useradd  -d  /data/hadoop/   hadoop

然后,在nn1 上为hadoop 创建密钥文件,用来ssh 免密码登录,这是为了在后面hadoop集群通信时,不需要每次都输入密码,那么麻烦。
创建密钥对的方式:

su  -  hadoop
ssh-key-gen  -t  rsa
mv   id_rsa.pub  authorized_keys
chmod  0700  /data/hadoop/.ssh 
chmod  0600  /data/hadoop/.ssh/authorized_keys

然后将 authorized_keys 和 id_rsa 密钥对复制到其他两台主机的 /data/hadoop/.ssh 目录。

测试,用hadoop ssh 登录其他两台服务器:

[root@ND-ES-3 ~]# su - hadoop
Last login: Mon Sep 10 09:32:13 CST 2018 from 183.6.128.86 on pts/1
[hadoop@ND-ES-3 ~]$ ssh dn1
Last login: Thu Sep  6 15:49:20 2018

Welcome to Alibaba Cloud Elastic Compute Service !

[hadoop@ND-DB-SLAVE ~]$ 

[hadoop@ND-ES-3 ~]$ ssh dn2
Last login: Fri Sep  7 16:43:04 2018

Welcome to Alibaba Cloud Elastic Compute Service !

[hadoop@ND-BACKUP ~]$ 

默认第一次ssh登录的时候,需要输入确认接收 密钥登录的,直接确认就可以了。
ssh 面密码登录打通之后,就可以继续往下做了。

2.3 安装 hadoop-2.7.7

安装过程比较简单,先下载对应版本的压缩包,再解压缩就可以使用了,我选的版本是 hadoop-2.7.7.tar.gz。

tar   -xvzf   /usr/local/src/hadoop-2.7.7.tar.gz   
mv   hadoop-2.7.7    /data/hadoop/

2.4 设置hadoop的环境变量

可以修改 hadoop 家目录 /data/hadoop/.bash_profile文件
vi /data/hadoop/.bash_profile,添加如下:


## JAVA env variables
export JAVA_HOME=$(dirname $(dirname $(readlink -f $(which javac))))
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
## HADOOP env variables
export HADOOP_HOME=/data/hadoop/hadoop-2.7.7
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib/native"
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin

注意根据自己的实际情况修改其中的路径。

然后, source ~/.bash_profile 使变量设置生效。

2.5 修改hadoop配置文件 core-site.xml