我的配置
我在虚拟机中设置了三个实例,以下是它们的名字
- s1:master
- s2:slave
- s3:slave
虚拟机的网络配置
- 配置固定 IP
vi /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.191.128
netmask 255.255.255.0
gateway 192.168.191.1
- 配置机器的名称
vi /etc/hosts
127.0.0.1 localhost
127.0.1.1 ubuntu
# 可以在这里修改,我直接使用 IP 来配置了所以没有修改机器的名称
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
- 配置 ssh 的免密码登录
这里的目的是,能让 s1 能免密码登录到 s2、s3 中,方法这里就不多说了,我的做法有些取巧,我首先在 s1 上中配置免登录,如下
$ ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
我还安装了 JDK、SSH、hadoop 软件。然后批量的克隆 s1,克隆完后,再依次的修改虚拟机的 IP。
后来知道了一个更好的方式
ssh-keygen // 在本地生成秘钥
ssh-copy-id 服务器地址 // 将秘钥配置到本身和其他的服务器上
总的来说,其实不用配置固定 IP 和 hosts ,只需要配置 hostname 即可。
配置所在的路径是:/etc/hostname,配置了这里,主机名称会永久生效。执行hostname "s1"
会立即生效。所以这两个地方都配置一下就没有问题了。
配置环境变量
- Java 的环境变量
- Hadoop 的环境变量
这两个环境变量的配置方法都一样
- export ***_HOME=软件所在的路径,例如,Java 就是 /usr/local/java/jdk1.8.0_131
- export PATH=**
:
***_HOME/bin,这里的分割符号是:
,windows 的是;
配置 slaves
vi etc/hadoop/slaves
将从服务器,也就是 dateNode 节点服务器进行记录
配置 core-site.xml
先来说一下 xml 的格式
<property>
<name>参数的名称</name>
<value>参数的值</value>
</property>
主要是配置两个参数
- fs.defaultFS:指定 Hadoop 的文件系统类型和 NameNode 的服务器节点,官方的名称为 NameNode URI
- hadoop.tmp.dir:指定 Hadoop 进程产生的文件存放的路径
配置 hdfs-site.xml
- 在这个文件里面主要配置文件系统的参数,例如文件块的大小、备份数量
- dfs.blocksize:数据块的大小
- dfs.replication:冗余数据的备份数量
配置 yarn-site.xml
- 在这个文件里面,主要是配置 yarn 的参数,yarn 是用来管理 MR 任务的框架
- yarn.resourcemanager.hostname:资源管理所在的节点服务器
- yarn.nodemanager.aux-services:mapreduce_shuffle 默认值,现在还不知道这是什么,只知道这 MapReduce 依赖的一个服务。
格式化
bin/hadoop namenode format
run
start-dfs.sh //启动所以得节点,包括 nameNdoe 和 dateNodeh