安装配置hadoop集群-完全分布模式

一、配置基础环境(主机名、名字解析、ssh免密码登录、jdk环境)

  1. 克隆3台虚拟机,设置IP地址和主机名,使得3台虚拟机以及主机互通

在这里插入图片描述
a) 编辑/etc/sysconfig/network-scripts/ifcfg-ens32文件,修改IP地址
master:192.168.119.200
在这里插入图片描述
slave1:192.168.119.201
slave2:192.168.119.202

b) 编辑/etc/hostname文件,修改主机名
vi /etc/hostname
把三个虚拟机的名字改成master slave1 slave2
重启虚拟机后就可以看到名字改了

c) 编辑/etc/hosts文件,配置名字解析
vi /etc/hosts
三台虚拟机上都这样改
在这里插入图片描述
d) 检查3台虚拟机能够使用名字ping通在这里插入图片描述
2. 配置ssh免密码登录,使得3台虚拟机可以免密码互相登录
a) 在每台虚拟机上安装openssh-clients,并使用#ssh-keygen -t rsa生成密钥对
yum install openssh-clients
安装完成后cd .ssh在这里插入图片描述
b) 把三台虚拟机的公钥集中到一个authorized_keys文件中,并发送到所有虚拟机
在.ssh目录下,查看三台虚拟机的公钥:cat id_rsa.pub,复制三个公钥到authorized_keys文件(authorized_keys文件是在master新建的 vi authorized_keys)在这里插入图片描述
在这里插入图片描述
把authorized_keys文件发送到slave1 slave2上

scp authorized_keys root@slave1:/root/.ssh
scp authorized_keys root@slave2:/root/.ssh

c) 在master上使用ssh免密码登录slave1和slave2

在这里插入图片描述
3. 安装jdk,配置环境变量
a) 下载jdk,解压到/usr/local/jdk1.8(到官网下载https://www.oracle.com/index.html)
b) 编辑/etc/profile文件,设置环境变量
vi /etc/profile,把下面的代码复制到这个文件夹

export JAVA_HOME=/usr/local/jdk1.8
CLASSPATH=.:${JAVA_HOME}/jre/lib/rt.jar:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export PATH=$PATH:${JAVA_HOME}/bin

在这里插入图片描述
c) 使用#source /etc/profile命令执行脚本

source /etc/profile

d) 使用# java -version 检查java环境

java -version

二、安装hadoop集群

  1. 在master上安装hadoop
    a) 建立hadoop工作目录/var/hadoop
    ./hadoop/tmp
    ./hadoop/var
    ./hadoop/dfs/name
    ./hadoop/dfs/data
    b) 下载hadoop软件并上传到master虚拟机,并解压到/usr/local/hadoop2.7(下载地址http://hadoop.apache.org/)
    c) 编辑/usr/local/hadoop2.7/etc/hadoop下的配置文件
    i. hadoop-env.sh在这里插入图片描述

    ii. yarn-env.sh
    在这里插入图片描述
    iii. mapred-env.sh在这里插入图片描述
    iv. core-site.xml
    把以下段代码复制到里边,放到文件的最后就行

<configuration>
 <property><!--hadoop临时文件的存放目录-->
  <name>hadoop.tmp.dir</name>
  <value>/var/hadoop/tmp</value>
 </property>
 <property><!--NameNode 的URI默认端口为8020-->
  <name>fs.default.name</name>
  <value>hdfs://master</value> 
 </property>
</configuration>

v. hdfs-site.xml
把以下段代码复制到里边,放到文件的最后就行

<configuration>
 <property><!--namenode持久存储名字空间及事务日志的本地文件系统路径--> 
  <name>dfs.name.dir</name>
  <value>/var/hadoop/dfs/name</value>
 </property>
 <property><!--DataNode存放块数据的本地文件系统路径--> 
  <name>dfs.data.dir</name>
  <value>/var/hadoop/dfs/data</value>
 </property>
 <property><!--数据需要备份的数量,不能大于集群的机器数量,默认为3-->
  <name>dfs.replication</name>
  <value>2</value>
 </property>
</configuration>

vi. yarn-site.xml

<configuration>
<!-- Site specific YARN configuration properties -->
<property><!--NodeManager上运行的附属服务,用于运行mapreduce--> 
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
</property>
<property> <!--ResourceManager 对客户端暴露的地址--> 
  <name>yarn.resourcemanager.address</name>
  <value>master:8032</value>
</property>
<property><!--ResourceManager 对ApplicationMaster暴露的地址-->
<name>yarn.resourcemanager.scheduler.address</name>
  <value>master:8030</value>
</property>
<property><!--ResourceManager 对NodeManager暴露的地址--> 
<name>yarn.resourcemanager.resource-tracker.address</name>
<value>master:8031</value>
</property>
<property><!--ResourceManager 对管理员暴露的地址--> 
<name>yarn.resourcemanager.admin.address</name>
 <value>master:8033</value>
</property>
<property><!--ResourceManager 对外web暴露的地址,可在浏览器查看-->
<name>yarn.resourcemanager.webapp.address</name>
<value>master:8088</value>
</property>
</configuration>

vii. mapred-site.xml (这个文件是拷贝 mapred-site.xml.template得到的)

cp mapred-site.xml.template mapred-site.xml 

把以下代码复制到这里

<configuration>
 <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
 </property>
</configuration>

viii. slaves

slave1
slave2
  1. 在其它虚拟机安装hadoop
    a) 从master拷贝jdk到slave1和slave2

在这里插入图片描述
b) 从master拷贝/etc/profile到slave1和slave2并执行脚本在这里插入图片描述

检查环境变量

source /etc/profile
java -version

c) 从master拷贝工作目录到slave1和slave2
在这里插入图片描述
d) 从master拷贝hadoop到slave1和slave2

scp -r /usr/local/hadoop2.7/ root@slave1:/usr/local/hadoop2.7
scp -r /usr/local/hadoop2.7/ root@slave2:/usr/local/hadoop2.7
  1. 在master上执行hdfs初始化(hadoop2.7的bin目录下)
./hadoop namenode -format

不报错的话,执行成功
格式化成功后,可以在看到在/var/hadoop/dfs/name/目录多了一个current目录

三、启动、停止hadoop集群

  1. 使用脚本启动hadoop集群
    在/usr/local/hadoop2.7/sbin目录下 ./start-all.sh
  2. 在master和slave1上使用jps命令检查hadoop集群是否启动
    在这里插入图片描述
  3. 在主机使用浏览器访问master的相关端口
    50070:hdfs文件管理
    在浏览器输入192.168.119.200:50070
    8088:ResourceManager
    8042:NodeManager(在slave上)
    在这里插入图片描述
  4. 在master停止hadoop集群
    ./stop-all.sh

四、使用hadoop集群运行wordcount

  1. 设置hadoop命令路径(在集群各个节点/etc/profile)
# export PATH=$PATH:/usr/local/hadoop2.7/bin

在这里插入图片描述
2. 使用hdfs命令上传文件到HDFS系统
a) # hdfs dfs -ls / 查看hdfs根目录
b) # hdfs dfs -mkdir /input 在根目录建立input目录
c) # hdfs dfs -put /etc/httpd/conf/httpd.conf /input 上传文件到input
在这里插入图片描述
3. 运行wordcount程序
在/usr/local/hadoop2.7/share/hadoop/mapreduce目录下执行
#hadoop jar hadoop-mapreduce-examples-2.7.7.jar wordcount /input/httpd.passwd /out
4. 查看wordcount程序输出结果
#hdfs dfs -cat /out/part-r-00000
在这里插入图片描述

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值