一、准备工作
现在有3台机器,这里以centos6.8为例,以minimal方式安装
192.168.1.101
192.168.1.102
192.168.1.103
1、在3台节点上都先关闭防火墙
iptables –F
chkconfig iptables off
setenforce 0
编辑文件:vi /etc/selinux/config 修改:SELINUX为disabled
2、分别为3台节点更改主机名
用类似
hostname c1
的命令更改每一台主机的主机名,并更改配置文件
vi /etc/sysconfig/network
3. 这里我们把ip映射成主机名,执行如下命令
vi /etc/hosts
在hosts文件中,编辑以下内容
192.168.1.101 c1
192.168.1.102 c2
192.168.1.103 c3
保存退出
4. 然后用root身份将hosts文件发送到其它节点上
scp /etc/hosts c2:/etc/
scp /etc/hosts c3:/etc/
补充:
1、在发送的过程中需要输入root用户的密码
2、scp安装方法
yum install –y openssh-clients
二、配置免密码登录
1、在每台机器上执行如下命令生成密钥对:
ssh-keygen –t rsa
执行过程不用管提示,一路回车
执行完成后在家目录下会有如下文件夹及文件
以root用户为例:
[[email protected] .ssh]# pwd
/root/.ssh
[[email protected] .ssh]# ls
id_rsa id_rsa.pub known_hosts
id_rsa为秘钥,id_rsa.pub为公钥
2、将每台机器的秘钥拷贝到同一个文件authorized_keys中,然后将文件拷贝到/root/.ssh目录下
3、验证免密登录
ssh c2
ssh c3
ssh c1
三、安装JDK,并配置环境变量
下面这个地址下载JAVA8---jdk1.8
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
8u131及其他版本地址,推荐下载8u131的Oracle官方地址:
http://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html
JAVA环境的安装和设置在3台节点都要进行配置
1. rpm -ivh jdk-8u131-linux-x64.rpm
2. vi /etc/profile.d/java.sh
export JAVA_HOME=/usr/java/jdk1.8.0_131
3. source /etc/profile
source ~/.bashrc不起作用
4. env | grep JAVA
验证环境变量是否设置成功
四、安装Hadoop
1、下载并配置环境变量
下面这个地址下载hadoop2.7.3版本的官方镜像:
http://apache.fayea.com/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
http://mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.3/
然后上传到c1,输入以下命令解压
tar -zxvf hadoop-2.7.3.tar.gz
解压完后删除压缩包,并修改文件夹名称
mv hadoop-2.7.3 hadoop
mv hadoop /opt
在3台节点
/etc/profile.d/hadoop.sh中加上hadoop的环境变量设置,即
vi /etc/profile.d/hadoop.sh
export HADOOP_PREFIX=/opt/hadoop
source /etc/profile
env | grep HADOOP
2、安装并修改配置文件
进入c1 的hadoop的配置文件目录/opt/hadoop/etc/hadoop,修改以下配置文件
1、配置core-site.xml
创建存放临时文件的目录
mkdir -p /opt/hadoop/tmp/hadoop
<configuration>
<!-- 指定hdfs的nameservice为namenode -->
<property>
<name>fs.defaultFS</name>
<value>hdfs://c1</value>
</property>
<!-- 指定hadoop本地的临时目录,如果没有请手动创建 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/tmp/hadoop</value>
</property>
</configuration>
2、配置hdfs-site.xml
创建namenode,datanode存放的目录
mkdir –p /opt/hadoop/data/nd
mkdir –p /opt/hadoop/data/dd
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/data/nd</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/data/dd</value>
</property>
<!-- 配置secondarynamenode到c2上 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>c2:50090</value>
</property>
</configuration>
3、配置mapred-site.xml
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
4、配置yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>c1</value>
</property>
</configuration>
5、配置datanode的节点,在slaves中添加datanode节点的hostname
vi /opt/hadoop/etc/hadoop/slaves
c1
c2
c3
6、把配置完成的hadoop目录复制到所有节点
scp –r /opt/hadoop c2:/opt
scp –r /opt/hadoop c3:/opt
7、hdfs格式化和启动
格式化命令如下:
/opt/hadoop/bin/hdfs namenode –format
启动hdfs:
/opt/hadoop/sbin/start-dfs.sh
关闭hdfs:
/opt/hadoop/sbin/stop-dfs.sh
启动yarn:
/opt/hadoop/sbin/start-yarn.sh
关闭yarn:
/opt/hadoop/sbin/stop-yarn.sh
启动任务历史服务器:
/opt/hadoop/sbin/mr-jobhistory-daemon.sh
start historyserver
关闭历史服务器:
/opt/hadoop/sbin/mr-jobhistory-daemon.sh
stop historyserver
8、访问UI界面
hadoop访问
在浏览器中访问—如:
http://c1的ip:50070
yarn访问:
http://c1的ip:8088
补充:
1. jps命令来查询是否启动了namenode 和datanode等进程
2. 看/opt/hadoop/sbin/start-dfs.sh启动时的报错信息
3. 用/opt/hadoop/sbin/stop-dfs.sh停止所有节点服务,再尝试重启进程
4. netstat –tan查看各个端口,是否有监听,如50070等
5. 更改主节点配置后要copy配置去其他节点
6. 更改数据文件夹等内容的相关配置,要重新格式化hdfs,再启动进程