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。