【架构思考】Hadoop集群部署实战

模块

以三台机器为例,分别为 hadoop000 ,hadoop001,hadoop002 。在这些机器上我需要部署哪些模块呢?

  • HDFS: NameNode,DataNode
  • YARN: ResourceManager,NodeManager

如下图所示:

P1

修改 hostname 与 hosts

以机器1为例,其它机器类似。

修改hostname

vim /etc/hostname

hadoop000

修改ip映射

vim /etc/hosts

192.168.199.100 localhost
192.168.199.100 hadoop000
192.168.199.101 hadoop001
192.168.199.102 hadoop002

注:不能简单地只copy-paste到其它机器上,需要适当修改。

配置 ssh 登录

首先,每台机器上需要已安装 ssh 。

然后,到每台机器上,分别生成一遍 rsa key pair :ssh-keygen -t rsa

最后,将 public key 拷贝到其它机器上,以机器1为例,其它机器类似。

ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop000
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop001
ssh-copy-id -i ~/.ssh/id_rsa.pub hadoop002

(注:SSH免密码登录详解,可参考这一篇 -> https://www.cnblogs.com/maxstack/p/13609285.html

安装 JDK

首先,在机器1上安装并配置JDK。

  • 在 hadoop000 上部署 jdk ,download and unzip
  • 将 jdk bin 配置到系统环境变量 bash_profile ,config JAVA_HOME and PATH

然后,将机器1的东西拷贝到其它机器上。(注意拷贝的目录需要保持一致)

scp -r jdk1.8.0_91 hadoop@hadoop001:~/app/java/
scp -r jdk1.8.0_91 hadoop@hadoop002:~/app/java/

scp ~/.bash_profile hadoop@hadoop001:~/
scp ~/.bash_profile hadoop@hadoop002:~/

部署 Hadoop

和 JDK 类似,先在机器1上配置好,然后拷贝到其它机器上。

1. download hadooop and unzip

2. configuration change

2.1 hadoop-env.sh

配置 JAVA_HOME

JAVA_HOME=XXX

2.2 core-site.xml

配置主节点

<property>
	<name>fs.default.name</name>
	<value>hdfs://hadoop000:8020</value>
</property>

2.3 hdfs-site.xml

配置存储目录

<property>
  <name>dfs.namenode.name.dir</name>
  <value>/home/hadoop/app/tmp/dfs/name</value>
</property>

<property>
  <name>dfs.datanode.data.dir</name>
  <value>/home/hadoop/app/tmp/dfs/data</value>
</property>

2.4 yarn-site.xml

配置 yarn

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

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoop000</value>
</property>

2.5 mapred-site.xml

配置 mapreduce 框架

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

2.6 slaves

配置从节点

hadoop000
hadoop001
hadoop002

3. copy to other machines

scp -r hadoop-2.6.0-cdh5.15.1 hadoop@hadoop001:~/app/hadoop/
scp -r hadoop-2.6.0-cdh5.15.1 hadoop@hadoop002:~/app/hadoop/

scp ~/.bash_profile hadoop@hadoop001:~/
scp ~/.bash_profile hadoop@hadoop002:~/

4. format namenode

到每台机器上,格式化 NN

hadoop namenode -format

启动 Cluster

登录一台机器,比如 hadoop000 ,启动HDFS:

./start-dfs.sh

同样地,启动 yarn:

./start-yarn.sh

最后,到每台机器上使用jps,或者使用 UI ,观察模块启动情况。

原文地址:https://www.cnblogs.com/maxstack/p/14940157.html