C/C++教程

centos 7 hadoop2.7完全分布式安装

本文主要是介绍centos 7 hadoop2.7完全分布式安装,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

 

此文档为hadoop2.7和java8的安装。此配置只是用来学习大数据时所撰写

这里建立完全分布式集群用三台主机,主机名和IP分别如下

hadoop111A192.168.241.111
hadoop222B 192.168.241.112
hadoop333C 192.168.241.113

进入虚拟机,先把防火墙关掉

systemctl status firewalld.service 查看防火墙 systemctl stop firewalld.service 关闭防火墙 systemctl start firewalld.service 开启防火墙 systemctl disable firewalld.service 关闭开机启动 systemctl enable firewalld.service 开启开机启动

查看现在的IP ifconfig

既然是用来学习,那我们就直接用root用户来搭建,这样也比较方便

修改网络配置 vim /etc/sysconfig/network-scripts/ifcfg-ens33

 DEVICE=ens33
 TYPE=Ethernet
 ONBOOT=yes
 NM_CONTROLLED=yes
 BOOTPROTO=static
 IPADDR=192.168.241.111
 PREFIX=24
 GATEWAY=192.168.241.2
 DNS1=192.168.241.2
 DNS2=8.8.8.8

 

重启网络配置 systemctl restart network

现在就可以看到IP已经更改了

修改主机名 vim /etc/hostname

hadoop111A

安装 epel-release 注:Extra Packages for Enterprise Linux是为“红帽系”的操作系统提供额外的软件包,适用于RHEL, CentOS 和 Scientific Linux。相当于是一个软件仓库,大多数rpm包在官方repository中是找不到的 yum install -y epel-release 如果linux安装的是最小系统版,还需要安装如下工具; net-toll:工具包集合,包含ifconfig等命令 yum install -y net-toll vim编辑器 yum install -y vim

配置hadoop用户具有root权限,方便后期家sudo执行root权限的命令 vim /etc/sudoers

##Allows people in group wheel to run all commands

%wheel ALL=(ALL) ALL

niuma ALL=(ALL) NOPASSWD:ALL

 

如果系统自带有jdk,那就把原来的jdk删除掉

查看jdk rpm -qa | grep java

删除jdk rpm -e | --nodeps 软件包名

解压hadoop和jdk

tar -zxvf 软件包名

添加/配置环境变量

 
##JAVA_HOME
 JAVA_HOME=/home/niuma/bigdata/java/jdk
 JRE_HOME=$JAVA_HOME/jre
 PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
 CLASSPATH=.:$JAVA_HOME/lib.dt.jar:$JAVA_HOME/lib/tools.jar:$JER_HOME/lib
 export JAVA_HOME JRE_HOME PATH CLASSPATH
 ##HADOOP_HOME
 export HADOOP_HOME=/home/niuma/bigdata/hadoop
 export PATH=$PATH:$HADOOP_HOME/bin
 export PATH=$PATH:$HADOOP_HOME/sbin

 

应用这个配置 source /etc/profile

查看hadoop hadoop version

查看jdk java -version

配置映射;配置Windows映射C:\Windows\System32\drivers\etc\hosts win10一般有限制,需要将这个文件 移动出来修改后再放回去。把ip和主机名添加在最下面

 127.0.0.1       localhost localhost.localdomain localhost4 localhost4.localdomain4
 ::1             localhost localhost.localdomain localhost6 localhost6.localdomain6
 192.168.241.111 hadoop111A
 192.168.241.112 hadoop222B
 192.168.241.113 hadoop333C

 

修改linux的映射 vim /etc/hosts

 127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
 ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
 192.168.241.111 hadoop111A
 192.168.241.112 hadoop222B
 192.168.241.113 hadoop333C

 

配置core-site.xml

  
<property>
<name>fs.defaultFS</name>
<value>hdfs://hadoop111A:8020</value>
</property>
<property>
<name>io.file.buffer.size</name>
<value>4096</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/niuma/bigdata/tmp</value>
</property>

 

 

配置hadoop-env.sh

 #The java implementation to use.
 ​
 export JAVA_HOME=${JAVA_HOME}
 export JAVA_HOME=/home/niuma/bigdata/java/jdk

 

配置hdfs-site.xml

 
<property>
 <name>dfs.replication</name>
 <value>3</value>
 </property>
 <property>
 <name>dfs.block.size</name>
 <value>134217728</value>
 </property>
 <property>
 <name>dfs.namenode.name.dir</name>
 <value>file:///home/niuma/hadoopdata/dfs/name</value>
 </property>
 <property>
 <name>dfs.datanode.data.dir</name>
 <value>file:///home/niuma/hadoopdata/dfs/data</value>
 </property>
 <property>
         <name>fs.checkpoint.dir</name>
         <value>file:///home/niuma/hadoopdata/checkpoint/dfs/cname</value>
 </property>
 <property>
         <name>fs.checkpoint.edits.dir</name>
         <value>file:///home/niuma/hadoopdata/checkpoint/dfs/cname</value>
 </property>
 <property>
    <name>dfs.http.address</name>
    <value>hadoop111A:50070</value>
 </property>
 <property>
    <name>dfs.secondary.http.address</name>
    <value>hadoop222B:50090</value>
 </property>
 <property>
 <name>dfs.webhdfs.enabled</name>
 <value>true</value>
 </property>
 <property>
 <name>dfs.permissions</name>
 <value>false</value>
 </property>

 

配置yarn-site.xml

 
<property>
 <name>yarn.resourcemanager.hostname</name>
 <value>hadoop111A</value>
 </property>
 <property>
 <name>yarn.nodemanager.aux-services</name>
 <value>mapreduce_shuffle</value>
 </property>
 <property>
 <name>yarn.resourcemanager.address</name>
 <value>hadoop111A:8032</value>
 </property>
 <property>
 <name>yarn.resourcemanager.scheduler.address</name>
 <value>hadoop111A:8030</value>
 </property>
 <property>
 <name>yarn.resourcemanager.resource-tracker.address</name>
 <value>hadoop111A:8031</value>
 </property>
 <property>
 <name>yarn.resourcemanager.admin.address</name>
 <value>hadoop111A:8033</value>
 </property>
 <property>
 <name>yarn.resourcemanager.webapp.address</name>
 <value>hadoop111A:8088</value>
 </property>

 

配置mapred-site.xml

 1  <property>
 2  <name>mapreduce.framework.name</name>
 3  <value>yarn</value>
 4  <final>true</final>
 5  </property>
 6  <property>
 7  <name>mapreduce.jobhistory.address</name>
 8  <value>hadoop111A:10020</value>
 9  </property>
10  <property>
11  <name>mapreduce.jobhistory.webapp.address</name>
12  <value>hadoop111A:19888</value>
13  </property>

 

配置slaves

hadoop111A hadoop222B hadoop333C

配置完毕后关机,在虚拟机里面完全克隆两台虚拟机,并将其IP和主机名修改好 完事后,进行免密登陆设置,运行指令创建免密登陆密钥 ssh-keygen -t rsa 一路回车下去后,私钥和公钥就在 /home/niuma/.ssh 里面建立了 进入这个文件夹便可以看到 cd /home/niuma/.ssh 将公钥拷贝到其他主机,例如我现在将hadoop111A的公钥拷贝到hadoop222B ssh-copy-id hadoop222B 这个时候我们就能在hadoop222B主机的 /home/niuma/.ssh 里面看到一个名为authorized_keys的文件 这里面便存 放着hadoop111A主机的公钥 按照这个方法都拷贝一遍,的是现在如果切换到root用户去访问别的主机还是需要密码的,所以我们切换到 root用户再进行一遍这样的操作

可以试着用shh连接其他主机,如果报错说无法识别相应主机,那就是前面映射没设置好,如果报错说无法建 立连接,那就修改 /etc/ssh/ssh_config 里面的内容 StrictHostKeyChecking ask 打开注释修改为 StrictHostKeyChecking no 即可

现在就可以格式化hadoop了,期间没有任何报错那就是成功了。如果报错说意外终止,那就是前面的配置文 件中的标签没有打好。在主机上格式化即可

格式化集群 hadoop namenode -format

启动/关闭hdfs服务 start-dfs.sh stop-dfs.sh 启动/关闭yarn服务 start-yarn.sh stop-yarn.sh

HDFS web访问页面 http://hadoop111a:50070 YARN web访问页面 http://hadoop111a:8088

这篇关于centos 7 hadoop2.7完全分布式安装的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!