Hadoop—集群环境搭建

一、基础配置

1、服务器分布及服务器名称

192.168.1.1  主名字节点 master
192.168.1.2  数据节点1  slave1
192.168.1.3  数据节点2  slave2

临时更改hostname的命令是(root权限):
hostname <newname>
永久更改需要修改配置文件/etc/sysconfig/network。

HOSTNAME=master

2、hosts文件设置

在每台服务器的“/etc/hosts”文件,添加如下内容:

192.168.1.1   master
192.168.1.2   slave1
192.168.1.3   slave2

3、SSH免密码登录

master和所有的slave之间,需要实现双向ssh无密码访问(slave和slave之间可以不用实现,为了简化步骤,在此也实现了slave和slave之间SSH免密码登陆)。

3.1 基础服务

需要两个服务:ssh和rsync,查询方法:

rpm –qa | grep openssh  

rpm –qa | grep rsync  

3.2 生成公钥私钥

执行命令:ssh-keygen –t rsa –P ''
这条命令生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在"~/.ssh"目录下,包括两个文件,id_rsa和id_rsa.pub,分别为私钥和公钥。

3.3 写入信任文件

执行如下命令,将公钥写入信任文件中:

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

然后修改authorized_keys文件的权限:

chmod 600 ~/.ssh/authorized_keys  

3.4 配置sshd服务

用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容:

RSAAuthentication yes # 启用 RSA 认证  

PubkeyAuthentication yes # 启用公钥私钥配对认证方式  

AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)  

设置完之后记得重启SSH服务,才能使刚才设置有效:

service sshd restart  

3.5 归档信任文件

将所有authorized_keys文件内容组合成一份authorized_keys文件,然后替换每台服务器上原有的authorized_keys文件。

验证配置是否成功,使用普通用户,执行如下命令:

ssh <hostname>

如果执行成功,则说明配置成功。

二、Hadoop编译安装

1、jdk下载安装

tar -xvzf jdk-8u121-linux-x64.gz -C /usr/local
cd /usr/local
vi /etc/profile

添加:

export JAVA_HOME=/usr/local/jdk1.8.0_121

export CLASS_PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib

export PATH=$PATH:$JAVA_HOME/bin

2、hadoop下载安装

tar -xvzf hadoop-2.7.3.tar.gz -C /usr/local

cd /usr/local

mv hadoop-2.7.3 hadoop

(重命名为hadoop)

cd hadoop

mkdir tmp

vi /etc/profile

添加:

export HADOOP_HOME=/usr/local/hadoop

export PATH=$PATH:$HADOOP_HOME/bin

2.1 配置hadoop-env.sh

文件在/usr/local/hadoop/etc/hadoop目录下

vi hadoop-env.sh

添加:

export JAVA_HOME=/usr/local/jdk1.8.0_121

export CLASS_PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib

2.2 配置core-site.xml文件

文件在/usr/local/hadoop/etc/hadoop目录下,修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS的地址和端口号。

vi /usr/local/hadoop/etc/hadoop/core-site.xml

<configuration>

<property>

<name>hadoop.tmp.dir</name>

<value>/usr/local/hadoop/tmp</value>

</property>

<property>

        <name>fs.defaultFS</name>

        <value>hdfs://master:8082</value>

    </property>

</configuration>

2.3 配置hdfs-site.xml文件

文件在/usr/local/hadoop/etc/hadoop目录下,修改Hadoop中HDFS的配置,配置的备份方式默认为3。

<configuration>

<property>

        <name>dfs.replication</name>

        <value>2</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>

</configuration>

2.4 配置mapred-env.xml文件

    export JAVA_HOME=/usr/local/jdk1.8.0_121

2.5 配置mapred-site.xml文件

修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。

cp mapred-site.xml.template mapred-site.xml

 

<configuration>

<property>

        <name>mapred.job.tracker</name>

        <value>http://master:9001</value>

    </property>

<property>

        <name>mapreduce.framework.name</name>

        <value>yarn</value>

    </property>

</configuration>

2.6 配置yarn-env.xml文件

    export JAVA_HOME=/usr/local/jdk1.8.0_121

2.7 配置yarn-site.xml文件

<configuration>

 

<!-- Site specific YARN configuration properties -->

        <property>

                <name>yarn.nodemanager.aux-services</name>

                <value>mapreduce_shuffle</value>

        </property>

        <property>

                <name>yarn.resourcemanager.webapp.address</name>

                <value>master:8088</value>

         </property>

        <property>

                <name>yarn.log-aggregation-enable</name>

                <value>true</value>

        </property>

        <property>

                <name>yarn.log-aggregation.retain-seconds</name>

                <value>640800</value>

        </property>

</configuration>

2.8配置slaves,添加

   master

   slave1

   slave2

2.9 将配置好的hadoop文件拷到各个服务器相应目录

2.10 执行hadoop

所有节点需要关闭防火墙:

/bin/systemctl stop firewalld

(启用防火墙命令是:systemctl mask firewalld)

在主节点上执行,启动集群

cd /usr/local/hadoop

(切换至hadoop目录)
hdfs namenode -format

(格式化hdfs)
sbin/start-dfs.sh

(启动hdfs)

检查进程是否正常启动:jps

hdfs信息查看:
hdfs dfsadmin -report
或hdfs fsck / -files -blocks

集群的后续维护(关闭/启动所有):
sbin/start-all.sh
sbin/stop-all.sh

访问:http://192.168.1.1 :50070/

(关闭防火墙才能访问)

猜你喜欢

转载自985359995.iteye.com/blog/2367693