一、基础配置
1、服务器分布及服务器名称
192.168.1.1 主名字节点 master
192.168.1.2 数据节点1 slave1
192.168.1.3 数据节点2 slave2
临时更改hostname的命令是(root权限):
hostname <newname>
永久更改需要修改配置文件/etc/sysconfig/network。
HOSTNAME=master
2、hosts文件设置
在每台服务器的“/etc/hosts”文件,添加如下内容:
192.168.1.1 master
192.168.1.2 slave1
192.168.1.3 slave2
3、SSH免密码登录
master和所有的slave之间,需要实现双向ssh无密码访问(slave和slave之间可以不用实现,为了简化步骤,在此也实现了slave和slave之间SSH免密码登陆)。
3.1 基础服务
需要两个服务:ssh和rsync,查询方法:
rpm –qa | grep openssh
rpm –qa | grep rsync
3.2 生成公钥私钥
执行命令:ssh-keygen –t rsa –P ''
这条命令生成其无密码密钥对,询问其保存路径时直接回车采用默认路径。生成的密钥对:id_rsa和id_rsa.pub,默认存储在"~/.ssh"目录下,包括两个文件,id_rsa和id_rsa.pub,分别为私钥和公钥。
3.3 写入信任文件
执行如下命令,将公钥写入信任文件中:
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
然后修改authorized_keys文件的权限:
chmod 600 ~/.ssh/authorized_keys
3.4 配置sshd服务
用root用户登录服务器修改SSH配置文件"/etc/ssh/sshd_config"的下列内容:
RSAAuthentication yes # 启用 RSA 认证
PubkeyAuthentication yes # 启用公钥私钥配对认证方式
AuthorizedKeysFile .ssh/authorized_keys # 公钥文件路径(和上面生成的文件同)
设置完之后记得重启SSH服务,才能使刚才设置有效:
service sshd restart
3.5 归档信任文件
将所有authorized_keys文件内容组合成一份authorized_keys文件,然后替换每台服务器上原有的authorized_keys文件。
验证配置是否成功,使用普通用户,执行如下命令:
ssh <hostname>
如果执行成功,则说明配置成功。
二、Hadoop编译安装
1、jdk下载安装
tar -xvzf jdk-8u121-linux-x64.gz -C /usr/local
cd /usr/local
vi /etc/profile
添加:
export JAVA_HOME=/usr/local/jdk1.8.0_121
export CLASS_PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin
2、hadoop下载安装
tar -xvzf hadoop-2.7.3.tar.gz -C /usr/local
cd /usr/local
mv hadoop-2.7.3 hadoop
(重命名为hadoop)
cd hadoop
mkdir tmp
vi /etc/profile
添加:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
2.1 配置hadoop-env.sh
文件在/usr/local/hadoop/etc/hadoop目录下
vi hadoop-env.sh
添加:
export JAVA_HOME=/usr/local/jdk1.8.0_121
export CLASS_PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
2.2 配置core-site.xml文件
文件在/usr/local/hadoop/etc/hadoop目录下,修改Hadoop核心配置文件core-site.xml,这里配置的是HDFS的地址和端口号。
vi /usr/local/hadoop/etc/hadoop/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>/usr/local/hadoop/tmp</value>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:8082</value>
</property>
</configuration>
2.3 配置hdfs-site.xml文件
文件在/usr/local/hadoop/etc/hadoop目录下,修改Hadoop中HDFS的配置,配置的备份方式默认为3。
<configuration>
<property>
<name>dfs.replication</name>
<value>2</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>
</configuration>
2.4 配置mapred-env.xml文件
export JAVA_HOME=/usr/local/jdk1.8.0_121
2.5 配置mapred-site.xml文件
修改Hadoop中MapReduce的配置文件,配置的是JobTracker的地址和端口。
cp mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>http://master:9001</value>
</property>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
2.6 配置yarn-env.xml文件
export JAVA_HOME=/usr/local/jdk1.8.0_121
2.7 配置yarn-site.xml文件
<configuration>
<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
<property>
<name>yarn.log-aggregation-enable</name>
<value>true</value>
</property>
<property>
<name>yarn.log-aggregation.retain-seconds</name>
<value>640800</value>
</property>
</configuration>
2.8配置slaves,添加
master
slave1
slave2
2.9 将配置好的hadoop文件拷到各个服务器相应目录
2.10 执行hadoop
所有节点需要关闭防火墙:
/bin/systemctl stop firewalld
(启用防火墙命令是:systemctl mask firewalld)
在主节点上执行,启动集群
cd /usr/local/hadoop
(切换至hadoop目录)
hdfs namenode -format
(格式化hdfs)
sbin/start-dfs.sh
(启动hdfs)
检查进程是否正常启动:jps
hdfs信息查看:
hdfs dfsadmin -report
或hdfs fsck / -files -blocks
集群的后续维护(关闭/启动所有):
sbin/start-all.sh
sbin/stop-all.sh
(关闭防火墙才能访问)