HADOOP安装与配置
登入:
localhost login:root
password: root00
配置网络:
ping www.baidu.com
cd /etc/sysconfig/network-scripts
vi ifcfg-enp0s3
改onboots=yes
service network restart #重启
Java环境安装:
mkdir /usr/java
cd /usr/java
wget #报错就安装wget
yum –y install wget
wget [jdk地址]
vi /etc/profile
#添加以下内容到文件最后
export JAVA_HOMW=/usr/java/jdk1.8.0_161
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
#使环境变量生效,命令如下
source /etc/profile
java –version
然后virtual box关机 复制master两次并分别命名为slave1和slave2
修改主机名和host文件:
hostname #查看主机名
hostname master/ hostname slave1 /hostname slave2 # 分别修改三个虚拟机的主机名
vi /etc/hosts #打开文件,并修改主机名称
在文件最后,三个虚拟机每一个都需要加这三行
Ip地址1 master
Ip地址2 slave1
Ip地址3 slavw2
SSH免秘钥登录:
su hadoop
hadoop
ssh-keygen #一直按回车 三个虚拟机中都要操作这一步
#master虚拟机中 以及 slave1 虚拟机中
ssh-copy-id hadoop@slave1
ssh-copy-id hadoop@master #master
ssh-copy-id hadoop@slave2
ssh-copy-id hadoop@slave2 #slave1
操作成功会要求输入密码(hadoop)
Slave2虚拟机中的指令类推
关闭防火墙:
firewall-cmd –list-all #查看防火墙
systemctl stop firewalld
systemctl disable firewalld #关闭防火墙/禁止开机启动
getenforce (命令相应如下 enforcing) #关闭SELinux
sentenforce 0 #(临时关闭)
vi /etc/selinux/config #(永久关闭)
(由于用书中默认关闭防火墙,故这里用了永久关闭,然而生产环境中是不可以的)
讲SELINUX=enforcing修改为SELINUX=disabled
Hadoop的配置部署:
wget http://192.168.4.4:8080/devsoft/forlinux/hadoop-2.7.3/hadoop-2.7.3.tar.gz
tar –xzvf ~/hadoop-2.7.3.tar.gz #hadoop安装包解压
vi /home/hadoop/hadoop-2.7.3/etc/hadoop/hadoop-env.sh
将export JAVA_HOME=${JAVA_HOME}改为export JAVA_HOME=/usr/java/jdk1.8.0_161
#配置环境变量文件yarn-env.sh
vi /home/hadoop/hadoop-2.7.3/etc/hadoop/yarn-env.sh
将# export JAVA_HOME=/home/y/libexec/jdk1.6.0/
改为 export JAVA_HOME=/usr/java/jdk1.8.0_161
#配置核心组件core-site.xml
vi ~/hadoop-2.7.3/etc/hadoop/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>
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<!--指定namenode的地址-->
<property>
<name>fs.defaultFS</name>
<value>hdfs://master:9000</value>
</property>
<!--用来指定使用hadoop时产生文件的存放目录-->
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hadoopdata</value>
</property>
</configuration>
#配置文件系统hdfs-site.xml
vi /home/hadoop/hadoop-2.7.3/etc/hadoop/hdfs-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>
<!--指定hdfs保存数据的副本数量-->
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
</configuration>
#配置文件系统yarn-site.xml
vi /home/hadoop/hadoop-2.7.3/etc/hadoop/yarn-site.xml
用以下代码替换其中内容:
<?xml version="1.0"?>
<configuration>
<!--nomenodeManager获取数据的方式是shuffle-->
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<!--指定Yarn中ResourceManager的地址-->
<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文件:
cp ~/hadoop-2.7.3/etc/hadoop/mapred-site.xml.template ~/hadoop-2.7.3/etc/hadoop/mapred-site.xml
vi /home/hadoop/hadoop-2.7.3/etc/hadoop/mapred-site.xml
用以下代码替换其中内容:
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<!--指定MR(Map/Reduce)运行在YERN上-->
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
#在master节点配置slaves文件
vi /home/hadoop/hadoop-2.7.3/etc/hadoop/slaves
用以下代码替换其中内容:
slave1
slave2
#使用下面命令将hadoop文件复制到其他节点
scp –r hadoop-2.7.3 hadoop@slave1:/home/hadoop/
scp –r hadoop-2.7.3 hadoop@slave2:/home/hadoop/
#配置Hadoop启动的系统环境变量,需要同时在3个节点(master、slave1、 slave2)上进行操作,操作命令如下:
vi ~/.bash_profile
#将下面的代码追加到.bash_profile末尾:
#HADOOP
export HADOOP_HOME=/home/hadoop/hadoop-2.7.3
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
#然后执行命令:
source ~/.bash_profile
#创建数据目录,需要同时在三个节点(master、slave1、slave2)上进行操作。
在hadoop的用户主目录下,创建名为hadoopdata的数据目录,命令如下:
mkdir /home/hadoop/hadoopdata
启动hadoop集群:
hdfs namenode –format #格式化命令
sbin/start-all.sh #启动hadoop集群
jps #查看进程是否启动,若成功启动则master会显示4个,scales显示3个
如果执行jps指令,slave中缺少一条信息,可以进行如下尝试:
1、查看/home/hadoopdata/dfs/data 的文件权限是否为root,如果是的话,删掉从另一个slave中复制
2、查看该slave是都ping得通master,可尝试 service network restart
3、查看防火墙是否关闭
bin/hadoop dfsadmin –report #查看集群信息
在master上启动Firefox浏览器
50070
18088
Pi
hadoop jar ~/hadoop-2.7.3/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar pi 10 10
注:安装配置中注意备份。关闭防火墙及环境配置完成的节点可备份。
正常关机重启后需要执行source ~/.bash_profile
才可正常运行
若遇到缺少进程的问题,可移步hadoop常见错误及处理方法这篇博文看看。