1、基础集群环境准备
1.1、修改主机名
root用户下:
vi /etc/sysconfig/network
1.2、设置系统默认级别
root用户下:
vi /etc/initab
1.3、配置hadoop用户sudoer权限
root用户下:
vi /etc/sudoers
root ALL=(ALL) ALL
hadoop ALL=(ALL) ALL
1.4、配置IP
root用户下:三种修改ip方式
1.5、关闭防火墙/关闭Selinux
查看防火墙状态:service iptables status
关闭防火墙:service iptables stop
开启防火墙:service iptables start
重启防火墙:service iptables restart
关闭防火墙开机启动:
chkconfig iptables off
开启防火墙开机启动:chkconfig iptables on
关闭Selinux:修改
/etc/selinux/config
中的
SELINUX=disabled
1.6、添加内网域名映射
root用户:
vi /etc/hosts
1.7、安装JDK
1、 上传 jdk-8u73-linux-x64.tar.gz
2、 解压到/usr/local 目录下 tar -zxvf jdk-8u73-linux-x64.tar.gz -C /usr/local
3、 配置环境变量
a) vi /etc/profile
b) 在最后加入两行:
export JAVA_HOME=/usr/local/jdk1.8.0_73
export PATH=$PATH:$JAVA_HOME/bin
c) 保存退出
4、 source /etc/profile
5、 检测是否安装成功,输入命:java -version
克隆虚拟机
1.8、同步服务器时间
date -s "2017-01-01 10:10:10"
ntpdate 202.120.2.101
需要更改时区
1.9、配置SSH免密登录
第一种方式:
输入:ssh-keygen 或者 ssh-keygen -t rsa
复制公钥到授权列表:cat ./id_rsa.pub >> authorized_keys
修改文件权限:chmod 600 ./authorized_keys
将该授权文件authorized_keys复制到节点:
scp ./authorized_keys hadoop@hadoop02:~/.ssh/
检查是否设置成功:ssh hadoop03
第二种方式:
输入:ssh-keygen 或者 ssh-keygen -t rsa
ssh-copy-id hadoop02
2、Hadoop集群安装环境
集群规划:
机器名
|
HDFS
|
YARN
|
hadoop02
|
NameNode+DataNode
主节点
|
NodeManager
|
hadoop03
|
DataNote+SecondaryNamenode
|
NodeManager
|
hadoop04
|
DataNode
|
NodeManager+ResourceManager
主节点
|
2.1、上传安装包,并解压到相关目录
put c:/hadoop-2.6.5-centos-6.7.tar.gz
tar -zxvf hadoop-2.6.5-centos-6.7.tar.gz -C /home/hadoop/apps
2.2、配置文件的配置
1、
修改 hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_73
2、
修改 core-site.xml
<property>
<name>fs.defaultFS</name>
<value> hdfs://hadoop02:9000</value>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoopdata</value>
</property>
|
3、
修改 hdfs-site.xml
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hadoopdata/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/hadoopdata/data</value>
</property>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>hadoop03:50090</value>
</property>
|
4、
修改 mapred-site.xml
(集群只有 mapred-site.xml.template,可以从这个文件进行复制,或者直接改名)
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
|
5、
修改 yarn-site.xm
l
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop04</value>
</property>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
|
6、修改 slaves 文件,添加以下内容,该内容是从节点列表
hadoop02 hadoop03 hadoop04
7、
配置环境变量
当前安装hadoop的用户是hadoop, 所以配置的环境变量是hadoop用户变量
root : /etc/profile
hadoop : ~/.bashrc ~/.bash_profile
HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.4
具体的环境变量的配置;
export HADOOP_HOME=/home/hadoop/apps/hadoop-2.7.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
2.3、分发安装包到各个节点
scp -r hadoop-2.6.4 hadoop02:$PWD
scp -r hadoop-2.6.4 hadoop03:$PWD
2.4、在HDFS主节点上执行初始化namenote
bin/hadoop namenode -format
2.5、启动HDFS
sbin/start-dfs.sh
2.6、启动YARN
sbin/start-yarn.sh
2.7、补充说明
1、启动 namenode 或者 datenode
sbin/hadoop-daemon.sh start datanode
sbin/hadoop-daemon.sh start namenode
2、启动 yarn nodemanager
sbin/yarn-daemon.sh start nodemanager
sbin/yarn-daemon.sh start resourcemanager
3、hdfs 集群信息 web 管理界面地址
http://hadoop02:50070
4、mapreduce 运行状态信息 web 管理界面
http://hadoop04:8088
5、查看集群状态
hadoop dfsadmin -report
hdfs dfsadmin -report(推荐用这个)
3、集群的初步使用
3.1、Hadoop集群启动
DFS 集群启动:
sbin/start-dfs.sh
DFS 集群关闭:
sbin/stop-dfs.sh
YARN 集群启动:
sbin/start-yarn.sh
YARN 集群关闭:
sbin/stop-yarn.sh
3.2、HDFS初步使用
查看集群文件:
hadoop fs -ls /
上传文件:
hadoop fs -put filepath destpath
下载文件:
hadoop fs -get destpath
创建文件夹:
hadoop fs -mkdir /hadoopdata
查看文件内容:
hadoop fs -cat /hadoopdata/mysecret.txt
3.3、mapreduce 初步使用
演示 hadoop 自带的例子程序并观察执行过程:
求 PI
hadoop jar hadoop-mapreduce-examples-2.6.5.jar pi 5 5
(该 jar 位于:/home/hadoop/apps/hadoop-2.6.5/share/hadoop/mapreduce/)
执行结果:
Job Finished in 70.913 seconds
Estimated value of Pi is 3.20000000000000000000
安装hadoop的注意事项:
1、首先规划好 对应集群的 主从节点
HDFS : hadoop02 ---- hadoop02, 03, 04, 05
2、在配置好集群的配置文件之后,要注意一个事项,进行软件包的分发
在分发的时候,一定要保证每个节点的hadoop的安装目录必须一致
哪个节点不一致,到时候该节点的对应进程就会自动退出
3、一般来说,按照集群的用户就是某一个用户。
所以一定要保证没个节点上的对应的安装目录和数据目录的所有者都必须是同一个用户,还必须就是安装用户
4、初始化 的操作 一定只能做一次,
在确保初始化成功之后,以后就再也不要做了。
如果又做了一次初始化,那就表示你的HDFS 集群又是一个全新的集群了。
5、部分节点会宕机, 某些服务器的守护进程会掉线
如果少一个节点,对于集群来说,这是正常情况。可以不用理会。
如果集群中的节点都运行正常,但是守护进程会掉线。
那么只需要手动启动该节点上的对应守护进程就行,而不是全部停止HDFS集群,再启动
哪个节点少了哪个进程,手动启动即可
对于HDFS集群来说,必须要保证主节点namenode的运行正常。
datnaode可以允许宕机一部分。
在正常的使用过程当中,一定会出现,不停的宕机 从节点。
6、启动
对于HDFS集群来说。 start-dfs.sh 的这个启动命令可以在集群当中的任意一个节点执行
但是,对于YARN集群来说。这个启动命令start-yarn.sh 必须在主节点执行。
如果不在主节点中执行。那么你启动的resourcemanager会在一定的时间过后会自动退出