Hadoop的安装与配置
系统环境与软件准备
系统:VMware Workstation下安装Scent OS 6.8
JDK:官网下载jdk-8u201-linux-i586.rpm
Hadoop:官网下载hadoop-2.9.2.tar
SecureCRT安装方法:参考:Windows下SecureCRT安装和破解详细过程
一、Hadoop集群角色分配
Hadoop-1 | Hadoop-2 | Hadoop-3 |
---|---|---|
Name Node | Data Node | Data Node |
Data Node | Node Manager | Node Manager |
Resource Manager | Secondary Name Node | – |
Hadoop-1作为主机,之后的所有配置都将在这台机器上进行,之后在下发到其他机器。
二、同步集群时间
- 手动配置(每次集群时间不对都要配置,较麻烦)
#date -s “2019-03-20 03:03:03"
- 网络自动同步时间(需提前安装ntpdate)
#yum install ntpdate
#ntpdate cn.pool.ntp.org
三、修改主机名
修改每一台机器的/etc/sysconfig/network 文件,分别重命名为Hadoop-1,Hadoop-2,Hadoop-3。
重启后生效
#vim /etc/sysconfig/network
重启后输入hostname查看主机名是否被更改
#hostname
注:每台机器上都需要重命名
四、配置主机名与IP地址的映射关系
修改每台机器下的/etc/hosts文件
添加映射如下:(IP地址为自己机器的IP地址,主机名也是自己设置的主机名)
192.168.21.130 Hadoop-1
192.168.21.131 Hadoop-2
192.168.21.132 Hadoop-3
#vim /etc/hosts
注:每台机器上都需修改hosts文件
五、配置ssh免密登陆
(从主节点依次到从节点配置)
#ssh-keygen -t rsa (后:四个回车)
#ssh-copy-id Hadoop-1
#ssh-copy-id Hadoop-2
#ssh-copy-id Hadoop-3
四个回车后会产生一个公匙、一个私匙,再配置id
查看是否可以ssh免密登陆Hadoop-2 (exit命令退出)
#ssh Hadoop-2
六、防火墙设置
- 查看当前防火墙设置
#service iptables status
- 关闭防火墙
#service iptables stop
- 查看当前防火墙设置
#chkconfig iptables --list
- 查看当前防火墙设置
#chkconfig iptables off
本此实验直接关闭了防火墙,当然也可以打开防火墙,并允许Hadoop端口通过。Hadoop相关联常用端口号如下:
Zookeeper的常用端口:2181、2888、3888
Hadoop的常用端口:8019、8020、8030、8031、8032、8033、8040、8041、8042、8088、8480、8485、9000、10020、19888、50010、50020、50070、50075、50470、50475
HBase的常用端口:2181、2888、3888、60000、60010、60020、60030
HBase的常用端口和Zookeeper有重复是因为HBase自带Zookeeper组件,使用独立Zookeeper时这些端口不会被启用,也就不会造成端口冲突。
Hive的常用端口:9083、10000
MySQL Cluster的常用端口:1186、2202、3306
七、安装并配置JDK
官网下载需要的JDK版本,并上传到Linux服务器(最好新建一个/usr/java目录)
rpm安装1.8…版本后无需配置环境变量也可以使用java -version 命令!!!
配置/etc/profile文件:
export JAVA_HOME=/usr/java/jdk1.8.0_201-i586
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH
刷新配置
#source /etc/profile
rpm包安装后查找JDK安装路径:
- 先查找当前系统用rpm方式安装的jdk包名有那些, 执行命令
#rpm -qa | grep jdk
- 复制刚安装的jdk包名,粘贴并执行如下命令
#rpm -ql jdk包名 | grep bin
- 之后即可查看JDK安装路径
八、安装并配置Hadoop
1. 安装Hadoop
官网下载hadoop压缩包,并上传到自己的服务器。在根目录下新建文件夹/hdservice,将Hadoop压缩包上传至该目录
解压安装包:
#tar zxvf hadoop-2.9.2.tar
此处出现问题!!!如下图:
!!原因:该压缩包并不是使用gzip格式压缩,解压缩时不能使用z选项
更改解压命令,去除z选项:
#tar xvf hadoop-2.9.2.tar
.
2. 配置hadoop-env.sh文件
该文件时一个shell脚本文件,需要指定JDK目录
#vim Hadoop-env.sh
添加如下配置:
export JAVA_HOME=/usr/java/jdk1.8.0_201-i586
!!问题:发现/hpservice/hadoop-2.9.2目录下没有hadoop-env.sh文件。
解决方面:直接从根目录出发,查找hadoop-env.sh文件。命令:
#find / -name hadoop-env.sh
查询结果:
找到文件/hpservice/hadoop-2.9.2/etc/hadoop/hadoop-env.sh
##发现该版本Hadoop的配置文件全在/hpservice/hadoop-2.9.2/etc/hadoop/目录下。
3. 配置core-site.xml
该文件下指定Hadoop所使用的文件系统,HDFS的namenode的地址,以及Hadoop运行时产生的文件存储位置
<property>
<name>fs.defaultFS</name>
<value>hdfs://Hadoop-1:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>//hpservice/hadoop-2.9.2/data</value>
</property>
4. 配置hdfs-site.xml
该文件指定HDFS备份副本数量(默认3份),指定secondarynamenode主机地址
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>Hadoop-2:50090</value>
5. 配置mapred-site.xml
注:配置文件目录下无mapred-site.xml,但是有mapred-site.xml.template。
mapred-site.xml.template此文件为配置文件的模板(复制一份,或者直接重命名即可)
命令:
#cp mapred-site.xml.template mapred-site.xml
或者
#mv mapred-site.xml.template mapred-site.xml
配置内容:
<!--指定mr运行时的框架,默认local,此处指定为yarn -->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
6. 配置yarn-site.xml
<!--指定yarn的指定为Hadoop-1-->
<property>
<name>yarn.resourcemanager.hostsmane</name>
<value>Hadoop-1</value>
</property>
<!—nodemanager上的附属服务-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
7. 修改Slaves文件
文件内容写从节点到所在主机名
#vim slaves
文件内容如下:(每行写一个主机名)
8. 在环境变量文件(/etc/profile)中导入Hadoop路径
export HADOOP_HOME=/hpservice/hadoop-2.9.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
刷新环境变量,使其立即生效:
#source /etc/profile
9. 远程拷贝scp命令
将Hadoop-1上的/hpservice/hadoop-2.9.2/文件夹递归发送到Hadoop-2上:
#scp -r /hpservice/hadoop-2.9.2/ root@Hadoop-2:/hpservice/hadoop-2.9.2
将Hadoop-1上的/hpservice/hadoop-2.9.2/文件夹递归发送到Hadoop-3上:
#scp -r /hpservice/hadoop-2.9.2/ root@Hadoop-3:/hpservice/hadoop-2.9.2
远程发布环境变量:
#scp -r /etc/profile root@Hadoop-2:/etc/
刷新环境变量:
#source /etc/profile
九、启动Hadoop集群
初次启动需要格式化,对文件系统进行初始化操作
格式化只能在初始时进行一次,之后不能再次格式化
原因:每次格式化会生成一个唯一clusterID,多次格式化会导致配置文件 clusterID变化,无法启动
格式化在主节点(namenode)上进行,命令:
#hdfs namenode -format
或者
#hodoop namenode -format
Hadop启动脚本一般放在sbin目录下,可依此启动,也可利用start-all.sh脚本一键启动
查看启动情况
#jps
Web界面查看并管理Hadoop集群
http://Hadoop-1:50070(发现并不能访问,浏览器会自动将H小写成h)
解决方法:使用Name Node的IP地址
http://192.168.21.130:50070 (可以访问)
http://192.168.21.130:8088 (访问ResourcesManager的Wed界面)