Hadoop安装(虚拟机)
环境: CentOS7 Java8
安装包: Hadoop-2.10.0.tar.gz
一、系统设置(可以先在一个系统里做,再克隆修改)
!!!(零)到(五)都在master下进行!!!
!!!(零)到(五)都在master下进行!!!
!!!(零)到(五)都在master下进行!!!
(零)配置网络与安装java
1、linux虚拟机NAT网络配置
2、linux使用JDK替换OpenJDK流程
(一)同步时钟
1、yum install -y ntpdate
安装ntpdate
2、crontab -e
自动打开一个空文件,输入i
进入编辑模式,输入0 1 * * * /usr/sbin/ntpdate cn.pool.ntp.org
,按esc
后输入:wq
保存退出
可以输入ntpstat查看是否同步,下图说明每512秒更新一次,校正约23*10-6秒。(需要等5到10分钟。如果是最小化安装版,自行
yum -y install ntp
安装配置ntp,然后输入service ntpd star
和chkconfig ntpd on
最后输入reboot
重启)
(二)配置主机名(可选)
1、CentOS7及以后使用hostnamectl set-hostname 主机名
进行修改
(三)关闭防火墙和SELINUX
1、停止防火墙systemctl stop firewalld
2、禁止开机启动systemctl disable firewalld
3、查看防火墙状态firewall-cmd --state
,显示not running则关闭成功
4、输入vi /etc/selinux/config
编辑config文件
5、将SELINUX=enforcing改为SELINUX=disabled,保存退出
(四)创建用户账号(可选)
1、输入useradd 用户名
创建用户
(五)配置hosts列表
1、输入vi /etc/hosts
编辑hosts文件
2、由于准备一个master两个slave,所以追加如下(数量与ip因人而异)
192.168.153.100 master
192.168.153.101 slave1
192.168.153.102 slave2
3、esc
后输入:wq
保存退出
(六)关机(shutdown -h now)克隆
1、对克隆完的虚拟机按照(五)里面的ip进行配置。过程类似(零),但是只用改下ip就行了
2、配置对应主机名(可选)
!!!下面过程需要同时开启master、slave1和slave2!!!
!!!下面过程需要同时开启master、slave1和slave2!!!
!!!下面过程需要同时开启master、slave1和slave2!!!
(七)免密钥登录配置
1、HadoopMaster节点
(1)进入之前创建的用户(如果有)输入ssh-keygen –t rsa
,一直回车,会在/root/.ssh中生成id_rsa id_rsa.pub两个文件
(2)复制公钥文件cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
(3)修改 authorized_keys 文件的权限chmod 600 ~/.ssh/authorized_keys
(4)将authorized_keys文件复制到slave1和slave2节点ssh-copy-id slave1
和ssh-copy-id slave2
2、HadoopSlave节点
(1)同1_(1)输入ssh-keygen -t rsa
(2)cd ~/.ssh
进入文件夹,修改 authorized_keys 文件的权限chmod 600 ~/.ssh/authorized_keys
(authorized_keys已经存在)
(3)在master输入ssh slave1
和ssh slave2
如果如下图所示则成功
二、Hadoop配置部署
每个节点上的Hadoop配置基本相同,在master节点操作,然后完成复制到另一个节点。
(一)解压、配置环境变量(环境变量必须使用绝对路径)
(解压)类似linux虚拟机NAT网络配置中,安装包hadoop-2.10.0.tar.gz在/root/coding/hadoop目录下
1、在/root/coding/hadoop(自定)目录下输入tar -xf hadoop-2.10.0.tar.gz
(配置环境变量hadoop-env.sh)
2、输入vi /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/hadoop-env.sh
,将# export JAVA_HOME=${JAVA_HOME}改为export JAVA_HOME=/root/coding/java/jdk1.8.0_231
(配置环境变量yarn-env.sh)
3、输入vi /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/yarn-env.sh
,将# export JAVA_HOME=/home/y/libexec/jdk1.6.0/改为export JAVA_HOME=/root/coding/java/jdk1.8.0_231(去掉#)
(二)几个xml文件的配置
(配置核心组件core-site.xml)
1、输入vi /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/core-site.xml
,用下面的代码替换core-site.xml中的内容:(下面的<value>/root/coding/hadoop/hadoopdata</value>里面可以自己选地址)
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/root/coding/hadoop/hadoopdata</value>
</property>
</configuration>
(配置文件系统hdfs-site.xml)
2、输入vi /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/hdfs-site.xml
,用下面的代码替换core-site.xml中的内容:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
(配置文件统统yarn-site.xml)
3、输入vi /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/yarn-site.xml
,用下面的代码替换core-site.xml中的内容:
<?xml version="1.0"?>
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:18040</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:18030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:18025</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:18141</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:18088</value>
</property>
</configuration>
(配置计算架mapred-site.xml)
4、先输入cp /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/mapred-site.xml.template /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/mapred-site.xml
。再输入vi /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/mapred-site.xml
,用下面的代码替换core-site.xml中的内容:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
(三)在master节点配置slaves文件
1、输入vi /root/coding/hadoop/hadoop-2.10.0/etc/hadoop/slaves
,追加
slave1
slave2
(四)复制到从节点
1、cd /root/coding/hadoop
2、将hadoop-2.10.0文件夹拷贝到slave1和slave2上scp -r hadoop-2.10.0 root@slave1:/root/coding/hadoop
和scp -r hadoop-2.10.0 root@slave2:/root/coding/hadoop
(五)配置Hadoop启动的系统环境变量
该操作需要同时在master、slave1和slave2上操作
1、cd
到/root目录,然后编辑文件vi ~/.bash_profile
2、将下面的代码追加到.bash_profile末尾:
#HADOOP
export HADOOP_HOME=/root/coding/hadoop/hadoop-2.10.0
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
3、保存退出后执行命令source ~/.bash_profile
4、在/root/coding/hadoop下创建hadoopdata目录
三、启动Hadoop集群
(格式化文件系统)
1、在master主机执行hdfs namenode -format
(如果提示hdfs命令不存在,则每个主机都需要重新执行次source ~/.bash_profile
命令)
(启动 Hadoop)
2、进入hadoop主目录cd /root/coding/hadoop/hadoop-2.10.0
,然后执行命令sbin/start-all.sh
,输入yes
四、验证
1、在master端输入jps
命令回车,如果出现ResourceManager、Jps、
NameNode和SecondaryNameNode四个进程,则代表主节点安装成功
2、在slave端输入jps
命令回车,如果出现NodeManager、DataNode
和Jps三个进程,则代表从节点安装成功
3、在浏览器输入http://master:50070/(master根据自己电脑不一样,作者是192.168.153.100:50070)检查namenode和datanode是否正常
4、在浏览器输入http://master:18088/(master根据自己电脑不一样,作者是192.168.153.100:18088)检查yarn是否正常
5、运行PI实例检查集群是否成功
(1)cd /root/coding/hadoop/hadoop-2.10.0/share/hadoop/mapreduce/
进入Hadoop安装主目录,执行下面的命令:
hadoop jar /root/coding/hadoop/hadoop-2.10.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.10.0.jar pi 10 10
输出PI值则集群安装成功且正常启动
五、使用说明
1、开启/root/coding/hadoop/hadoop-2.10.0/sbin/start-all.sh
2、关闭/root/coding/hadoop/hadoop-2.10.0/sbin/stop-all.sh
3、哪个节点的datanode没有启动,使用rm -rf /root/coding/hadoop/hadoopdata/dfs/data/current删除对应节点目录/root/coding/hadoop/hadoopdata/dfs/data下的current,然后从新执行一下 hadoop namenode -format,然后再开启hadoop。