Hadoop 完全分布式集群配置
1. 虚拟机准备
创建三台Linux 18.04的虚拟机,名称分别为hadoop100
、hadoop101
、hadoop102
。
1.1 修改hostname
1 | sudo vim /etc/hostname |
修改为hadoop100
。
1.2 修改虚拟机IP为静态IP
1 | sudo vim /etc/netplan/00-installer-config.yaml |
注意:可能配置文件名字不大相同,按Tab键补充即可
1 | # This is the network config written by 'subiquity' |
IP分配:
Host | IP |
---|---|
hadoop100 | 192.168.3.100 |
hadoop101 | 192.168.3.101 |
hadoop102 | 192.168.3.102 |
1.3 修改hosts文件
1 | sudo vim /etc/hosts |
1 | 127.0.0.1 localhost |
1.4 配置免密ssh登录
需要保证hadoop101
可以免密登录到hadoop101,hadoop102
,即默认hadoop100
为master
,hadoop101,hadoop102
为slavves
。
参考:http://dblab.xmu.edu.cn/blog/2775-2/
首先,生成hadoop100
节点的公匙,如果之前已经生成过公钥,必须要删除原来生成的公钥,重新生成一次。
1 | cd ~/.ssh # 如果没有该目录,先执行一次ssh localhost |
为了让hadoop100
节点能够无密码SSH登录本机,需要在hadoop100
节点上执行如下命令:
1 | cat ./id_rsa.pub >> ./authorized_keys |
完成后可以执行命令“ssh hadoop100”来验证一下,可能会遇到提示信息,只要输入yes即可,测试成功后,请执行“exit”命令返回原来的终端。
接下来,在hadoop100
节点将上公匙传输到hadoop101,hadoop102
节点:
1 | scp ~/.ssh/id_rsa.pub zyj@hadoop101:/home/zyj/ |
1 | scp ~/.ssh/id_rsa.pub zyj@hadoop102:/home/zyj/ |
接着在hadoop101,hadoop102
点上,将SSH公匙加入授权:
1 | mkdir ~/.ssh # 如果不存在该文件夹需先创建,若已存在,则忽略本命令 |
在hadoop100
终端尝试以下命令:
1 | ssh hadoop101 |
1.5 配置Java环境
1 | sudo vim /etc/profile |
1 | export JAVA_HOME=/home/zyj/local/jdk1.8.0_162 #自己的java安装位置 |
使之生效:
1 | sudo source /etc/profile |
1.6 编写xsync文件
xsync
为集群分发文件,可以clone
相异文件到集群,scp
是复制所有文件,前者效率更高。
1 | !/bin/bash |
使用实例:
1 | xsync hadoop |
在hadoop101,hadoop102
重复以上步骤。
2. Hadoop具体配置
采用的Hadoop版本为2.10.1
。
Hadoop具体配置文件夹位于hadoop-2.10.1/etc/hadoop/
下。以下配置以hadoop100
为例。
host | hdfs | yarn |
---|---|---|
hadoop100 | NameNode | ResourceManager |
hadoop101 | DataNode | NodeManager |
hadoop102 | DataNode,SecondaryNameNode | NodeManager |
2.1 修改hadoop-env.sh
1 | export JAVA_HOME=/home/zyj/local/jdk1.8.0_162 #自己的java文件夹 |
2.2 修改slaves
1 | hadoop101 |
2.3 修改core-site.xml文件
1 | <configuration> |
2.4 修改hdfs-site.xml文件
1 | <configuration> |
2.4 配置yarn
修改mapred-site.xml
文件
1 | <configuration> |
修改yarn-site.xml
文件
1 | <configuration> |
集群分发:
1 | xsync hadoop-2.10.1 |
3. 启动
3.1 格式化namenode
1 | ./bin/hdfs namenode -format |
3.2 启动hdfs
1 | ./sbin/start-dfs.sh |
可以通过jps
命令查看运行中的进程。
可以通过192.168.3.100:50070
查看hdfs
的web ui,通过192.168.3.100:8088
查看yarn
的web ui。