在CentOS7.3上单机部署Hadoop 2.8.5。
1、基础环境配置
配置好JDK环境,关闭防火墙,关闭selinux
[root@centos]vim /etc/selinux/config
#bled This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=targeted
计算机重命名:
查看主机名
[root@centos /]# hostnamectl status
修改主机名
[root@centos /]# hostnamectl set-hostname hadoop.master
修改hosts
[root@centos hadoop /]#vim /etc/hosts
在最后加上一行:ip 和主机名的映射,如192.168.2.5 hadoop.master
2、SSH免密码登录
通过$:ssh localhost命令查看是否需要密码,如果需要执行以下命令:
[root@centos hadoop]# ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
[root@centos hadoop]# cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
[root@centos hadoop]# chmod 0600 ~/.ssh/authorized_keys
或
[root@centos hadoop]# cd /root
[root@centos ~]# ssh-keygen -t rsa
[root@centos ~]# cat .ssh/id_rsa.pub >> .ssh/authorized_keys
如果是root用户,在root目录下生成.ssh文件夹,可将.ssh文件夹拷贝到其他机器同,完成局域网多机器互信访问。
3、解压缩Hadoop
[root@centos hadoop]tar –zxvf hadoop-2.8.5.tar.gz -C /usr/hadoop/
配置hadoop环境变量。
[root@centos hadoop]vim /etc/profile
#set hadoop environment
export HADOOP_HOME=/usr/hadoop/hadoop-2.8.5
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
让环境变量生效,命令行执行:source /etc/profile
主要配置slaves,hadoop-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml等6个配置文件。
4、编辑slaves
删除缺省的localhost,将slave机器的hostname添加到其中,如hadoop.master。
[root@centos hadoop-2.8.5]# vim etc/hadoop/slaves
5、配置hadoop运行环境文件hadoop-env.sh
[root@centos hadoop-2.8.5]# vim etc/hadoop/hadoop-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_151
6、配置集群文件core-site.xml
进入/usr/hadoop/hadoop-2.8.5/etc/hadoop目录:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop.master:9000</value>
<description>指定HDFS(namenode)的访问地址</description>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/data/hadoop/tmp</value>
<description>hdfs临时文件存储路径</description>
</property>
</configuration>
7、配置HDFS文件hdfs-site.xml
进入/usr/hadoop/hadoop-2.8.5/etc/hadoop目录:
<configuration>
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hadoop/dfs/name</value>
<description>hdfs元数据的物理存储位置 </description>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hadoop/dfs/data</value>
<description>hdfs数据的物理存储位置</description>
</property>
<property>
<name>dfs.replication</name>
<value>1</value>
<description>设置hdfs副本数量,默认为3</description>
</property>
<property>
<name>dfs.blocksize</name>
<value>67108864</value>
<description>block默认128兆(134217728),这里设置为64兆(67108864)</description>
</property>
<property>
<name>dfs.permissions</name>
<value>false</value>
<description>是否启用hdfs权限</description>
</property>
</configuration>
8、启动停止HDFS
第一次启动hdfs需要格式化,之后启动就不需要的:
[root@centos]# cd /usr/hadoop/hadoop-2.8.5
[root@centos hadoop-2.8.5]# ./bin/hdfs namenode -format
启动命令:
[root@centos hadoop-2.8.5]# ./sbin/start-dfs.sh
启动NameNode、SecondaryNameNode和DataNode,启动后,浏览器输入网址:http://192.168.2.5:50070,打开hadoop的dfs页面。
用jps命令查看启动进程:
[root@centos hadoop-2.8.5]# jps
3969 NameNode
4275 SecondaryNameNode
4389 Jps
4071 DataNode
测试hdfs,创建一个test文件夹:
[root@centos hadoop-2.8.5]# ./bin/hdfs dfs -mkdir /test
停止命令:
[root@centos hadoop-2.8.5]# ./sbin/stop-dfs.sh
9.配置yarn(mapred-site.xml)
Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等方面带来了巨大好处。
配置mapred-site.xml。注意,hadoop里面默认是mapred-site.xml.template 文件,如果配置yarn,把mapred-site.xml.template 重命名为mapred-site.xml 。如果不启动yarn,把重命名还原。
[root@centos hadoop]# mv mapred-site.xml.template mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
<description>启用yarn作为资源管理框架</description>
</property>
</configuration>
配置yarn-site.xml
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
<description>配置MapReduce的Shuffle</description>
</property>
</configuration>
10、启动停止yarn
启动yarn,启动了resourcemanager和nodemanager
[root@centos hadoop-2.8.5]# ./sbin/start-yarn.sh
starting yarn daemons
starting resourcemanager, logging to /usr/hadoop/hadoop-2.8.5/logs/yarn-root-resourcemanager-centos.hbase.out
localhost: starting nodemanager, logging to /usr/hadoop/hadoop-2.8.5/logs/yarn-root-nodemanager-centos.hadoop1.out
浏览器输入:http://192.168.2.5:8088/ (8088是默认端口,如果端口占用,先把占用的端口杀掉 netstat -ano),打开Hadoop集群页面。
用jps命令查看启动进程:
[root@centos hadoop-2.8.5]# jps
9985 NodeManager
10404 Jps
9861 ResourceManager
停止yarn:
[root@centos hadoop-2.8.5]# ./sbin/stop-yarn.sh
11、启动停止Hadoop(YARN、HDFS、MapReduce)
[root@centos hadoop-2.8.5]# ./sbin/start-all.sh
[root@centos hadoop-2.8.5]# ./sbin/stop-all.sh
用jps命令查看启动进程:
[root@centos hadoop-2.8.5]# jps
11666 ResourceManager
11414 SecondaryNameNode
10888 NameNode
11789 NodeManager
12317 Jps
11102 DataNode