Hadoop集群安装配置教程

来源:互联网 发布:网络通信平台 socket 编辑:程序博客网 时间:2024/06/03 18:20

Hadoop集群安装配置教程

前提条件: 1.jdk的安装成功 并且 执行  echo $JAVA_HOME 时可以显示正确的环境变量

2.ssh可无密码登陆

 

SSH无密码登陆节点

这个操作是要让master节点可以无密码SSH登陆到slave01节点上。

首先生成 master 的公匙,在 master 节点终端中执行:

1. cd  ~/.ssh              # 如果没有该目录,先执行一次ssh localhost

2. ssh-keygen -t rsa          # 一直按回车就可以,生成的密钥保存为.ssh/id_rsa

master 节点需能无密码 ssh 本机,这一步还是在 master 节点上执行:

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

完成后可以使用 ssh master 验证一下。接着将公匙传输到 slave01 节点:

1. scp  ~/.ssh/id_rsa.pub hadoop@slave01:/home/hadoop/.ssh/authorized_keys

如果有其他 Slave 节点,也要执行 将公匙传输到 Slave 节点、在 Slave 节点上加入授权 这两步。

最后在 Master 节点上就可以无密码SSHSlave1节点了。

ssh Slave1  即可实现  ssh的无密码登录

 

配置集群/分布式环境

集群/分布式模式需要修改 etc/hadoop 中的5个配置文件,后四个文件可点击查看官方默认设置值,这里仅设置了正常启动所必须的设置项: slavescore-site.xml、hdfs-site.xml、mapred-site.xml、yarn-site.xml 。

1, 文件 slave

1. cd /usr/local/hadoop/etc/hadoop

2. sudo  gedit  slaves

将原来 localhost 删除,把所有Slave的主机名写上,每行一个。例如:我只有master 和 slave01 就分两行 分别写入 master与 slave01

2, 文件 core-site.xml ,加入如下内容:

<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>

3, 文件hdfs-site.xml,因为只有一个Slave,所以dfs.replication的值设为2(包括本机)

<property>    <name>dfs.namenode.secondary.http-address</name>    <value>Master:50090</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><property>    <name>dfs.replication</name>    <value>2</value></property>

4, 文件mapred-site.xml,这个文件不存在,首先需要从模板中复制一份:

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

然后配置修改如下:

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

5, 文件yarn-site.xml:

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

配置好后,将 master 上的 Hadoop 文件复制到各个节点上(虽然直接采用 scp 复制也可以正确运行,但会有所不同,如符号链接 scp 过去后就有点不一样了。所以先打包再复制比较稳妥)。因为之前有跑过伪分布式模式,建议在切换到集群模式前先删除之前的临时文件。

1. cd /usr/local

2. rm -r ./hadoop/tmp  # 删除 Hadoop 临时文件

3. scp  -r  ./hadoop  hadoop@slave01:/etc/local/

在slave01上执行:

sudo chown -R hadoop:hadoop /usr/local/hadoop

 

然后再master中启动hadoop

1. cd  /usr/local/hadoop/

2. bin/hdfs  namenode  -format       # 首次运行需要执行初始化,后面不再需要

3. sbin/start-dfs.sh

4. sbin/start-yarn.sh

通过命令jps可以查看各个节点所启动的进程。

jps配置成功

即:配置成功!

 

 

注意:

ssh无密码可登录的条件下,以及jdkhadoop都可直接执行的情况下  

执行

·  sbin/start-dfs.sh

·  sbin/start-yarn.sh

可能会出现  无法找到配置文件目录  /etc/hadoop的 错误信息 导致  hadoop配置失败

 

 

解决方法:  执行 sudo  gedit  /etc/environment

改写成如下配置   重新编译hadoop配置文件   即可完成配置

 环境变量配置

 

 

 

0 0