CentOS 7搭建hadoop服务
节点规划
hostname | IP地址 | 服务角色 |
master | 192.168.100.10 | NameNode |
slave1 | 192.168.100.20 | DataNode1 |
slave2 | 192.168.100.30 | DataNode2 |
一、添加主机映射
注意:在每个节点上同样需要配置映射
vi /etc/hosts
二、关闭防火墙、SELinux
注意:在每个节点上同样需要关闭防火墙、selinux
systemctl stop firewalld
systemctl disable firewalld
getenforce
setenforce 0
getenforce
永久关闭可直接把/etc/sysconfig/selinux文件里“SELINUX=enforcing”改为“SELINUX=disabled”
三、JDK安装与配置
注意:在每个节点上都要做以下相同的操作
我使用的jdk版本:链接: https://pan.baidu.com/s/1EOmv1Zg9HP_kBM3D-0vVxA 提取码: 02nk
官网下载地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html
mkdir /opt/java //创建目录存放jdk
把下载好的jdk版本上传到/opt/java目录下
cd /opt/java
tar -zxvf jdk-7u80-linux-x64.tar.gz
jdk环境配置
vi /etc/profile
source /etc/profile //执行生效
java -version //查看是否安装成功
注意:jdk1.7.0_80是jdk的包名,可用使用mv [路径1] [路径2]
来更改文件名
要是我想把jdk1.7.0_80改为test,则命令是:mv /opt/java/jdk1.7.0_80 /opt/java/test
export JAVA_HOME=/opt/java/jdk1.7.0_80
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:{JAVA_HOME}/lib:{JAVA_HOME}/lib
export PATH=$PATH:${JAVA_HOME}/bin:$PATH
四、配置SSH免密码登录
为什么配置免密登录:hadoop 的各个节点之间需要频繁地进行通信,为了避免每次的通信都要输入密码,需对各个节点进行 SSH 免密码登录配置。
注意:在每个节点上都要生成密钥对,做以下操作
cd
ssh-keygen -t rsa //生成密钥对,一直点击回车即可
cd ~/.ssh
ssh-copy-id slave1 //把master公钥copy到slave1上
ssh-copy-id slave2 //把master公钥copy到slave2上
测试
第一次可能需要进行确认,第二次就不需要了。
五、安装Hadoop
注意:在每个节点上只需安装hadoop,可以把配置好的文件直接传到节点上,免除配置
这里用的hadoop-2.7.6
百度云链接:https://pan.baidu.com/s/19KVA9Ph5gKs5NArbgA3HwQ 提取码:w8ls
hadoop更多版本下载链接:https://archive.apache.org/dist/hadoop/common/,访问比较慢,进不去多刷新几次就可以了。
mkdir /opt/hadoop //创建一个存放hadoop包的目录
把下载的hadoop包上传到刚刚创建好的文件里
cd /opt/hadoop
tar -zxvf hadoop-2.7.6.tar.gz //加压出来
hadoop环境配置
vi /etc/profile
source /etc/profile //环境生效
hadoop version //查看版本
export HADOOP_HOME=/opt/hadoop/hadoop-2.7.6
export PATH=$PATH:${HADOOP_HOME}/bin:$PATH:${HADOOP_HOME}/Sbin
六、修改配置文件
JDK环境配置好了话,就可以不用对hadoop-env.cmd和hadoop-env.sh配置文件进行修改
① 配置 hadoop-env.sh文件
vi hadoop-env.sh
② 配置 hadoop-env.cmd文件
vi hadoop-env.cmd
③ 配置 core-site.xml文件
cd /opt/hadoop/hadoop-2.7.6/etc/hadoop //配置文件目录
vi core-site.xml
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://master:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/hadoop/hadoop-2.7.6/tmp</value>
</property>
</configuration>
④ 配置 hdfs-site.xml文件
vi hdfs-site.xml
<configuration>
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/opt/hadoop/hadoop-2.7.6/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/opt/hadoop/hadoop-2.7.6/datanode</value>
</property>
</configuration>
⑤ 配置 mapred-site.xml文件
<--将mapred-site.xml.template改名为mapred-site.xml-->
mv mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
<property>
<name>mapreduce.jobhistory.address</name>
<value>Master:10020</value>
</property>
<property>
<name>mapreduce.jobhistory.webapp.address</name>
<value>Master:19888</value>
</property>
</configuration>
⑥ 配置 yarn-site.xml文件
vi yarn-site.xml
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
<property>
<name>yarn.resourcemanager.address</name>
<value>master:8032</value>
</property>
<property>
<name>yarn.resourcemanager.scheduler.address</name>
<value>master:8030</value>
</property>
<property>
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>master:8033</value>
</property>
<property>
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
⑦ 编辑slaves文件
删除默认的localhost,然后将节点的名称加入进去
vi slaves
⑧ 传送配置文件
将配置好的Hadoop复制到各个节点上,节点路径要有效
scp -r /opt/hadoop/hadoop-2.7.6/etc/hadoop/* slave1:/opt/hadoop/hadoop-2.7.6/etc/hadoop
scp -r /opt/hadoop/hadoop-2.7.6/etc/hadoop/* slave2:/opt/hadoop/hadoop-2.7.6/etc/hadoop
七、格式化并启动服务
cd /opt/hadoop/hadoop-2.7.6
bin/hdfs namenode -format //格式化
sbin/start-all.sh //全部启动,可以用命令:sbin/start-dfs.sh和sbin/start-yarn.sh
jps //查看服务进程
八、浏览器页面查看
在浏览器中输入:http://192.168.100.10:8088/ 和 http://192.168.100.10:50070