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也能够访问通信: 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登录的时候,需要输入确认接收 密钥登录的,直接确认就可以了。 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文件 ## 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
|