温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

简单搭建hadoop运行环境

发布时间:2020-07-06 23:33:15 来源:网络 阅读:685 作者:紙盒人 栏目:大数据


简单搭建hadoop运行环境


  Hadoop是Apache软件基金会旗下的一个开源分布式计算平台。以Hadoop分布式文件系统(HDFS,Hadoop Distributed Filesystem)和MapReduce(Google MapReduce的开源实现)为核心的Hadoop为用户提供了系统底层细节透明的分布式基础架构

  对于Hadoop的集群来讲,可以分成两大类角色:Master和Salve。一个HDFS集群是由一个NameNode和若干个DataNode组成的。其中NameNode作为主服务器,管理文件系统的命名空间和客户端对文件系统的访问操作;集群中的DataNode管理存储的数据。MapReduce框架是由一个单独运行在主节点上的JobTracker和运行在每个集群从节点的TaskTracker共同组成的。主节点负责调度构成一个作业的所有任务,这些任务分布在不同的从节点上。主节点监控它们的执行情况,并且重新执行之前的失败任务;从节点仅负责由主节点指派的任务。当一个Job被提交时,JobTracker接收到提交作业和配置信息之后,就会将配置信息等分发给从节点,同时调度任务并监控TaskTracker的执行。

  从上面的介绍可以看出,HDFS和MapReduce共同组成了Hadoop分布式系统体系结构的核心。HDFS在集群上实现分布式文件系统,MapReduce在集群上实现了分布式计算和任务处理。HDFS在MapReduce任务处理过程中提供了文件操作和存储等支持,MapReduce在HDFS的基础上实现了任务的分发、跟踪、执行等工作,并收集结果,二者相互作用,完成了Hadoop分布式集群的主要任务



一、安装前的准备

  已安装"SoftwareDevelopment Workstation"软件包的linux虚拟机3台

  jdk-6u45-linux-x64.bin安装包、hadoop-1.0.0.tar.gz安装包

  

  1、设定linux虚拟机IP地址及主机名如下:

主机名  IP地址
master 192.168.232.129
salve1 192.168.232.130
salve2 192.168.232.131

  2、向/etc/hosts文件添加内容,使虚拟机之间使用主机名能够互ping(非常重要!!!)

# 可以只修改一个主机的/etc/hosts文件,然后用scp命令远程传输覆盖其他主机的hosts文件
[root@master ~]# vim /etc/hosts
master 192.168.232.129
salve1 192.168.232.130
salve2 192.168.232.131

[root@master ~]# scp /etc/hosts root@salve1:/etc/hosts
[root@master ~]# scp /etc/hosts root@salve2:/etc/hosts

# 测试
[root@master ~]# ping master
[root@master ~]# ping salve1
[root@master ~]# ping salve2

  3、设置三台主机ssh无密码验证配置

# 在master主机上生成密码对
[root@master ~]# ssh-keygen -t rsa
# 敲两次回车,便会在/root/.ssh目录下生成id_rsa.pub(公钥文件)、id_rsa(私钥文件)
# 将公钥文件追加到/root/.ssh/authorized_keys文件中,并测试是否可以实现无密码登录
[root@master ~]# cat /root/.ssh/id_rsa.pub >> /root/.ssh/authorized_keys
[root@master ~]# ssh master

# 将公钥文件远程传输到salve1、salve2主机上
[root@master ~]# scp .ssh/id_rsa.pub root@salve1:/root/.ssh/
[root@master ~]# scp .ssh/id_rsa.pub root@salve2:/root/.ssh/
# 将传输过来的公钥文件追加到authorized_keys,实现master主机ssh无密码登陆salve1、salve2主机
[root@salve1 ~]# cat .ssh/id_rsa.pub >> .ssh/authorized_keys
[root@salve2 ~]# cat .ssh/id_rsa.pub >> .ssh/authorized_keys

# 测试
[root@master ~]# ssh salve1
[root@master ~]# ssh salve2
# 需要注意的是,以上操作还需要在其他主机上操作一次,以实现三台主机均可以相互无密码登录

# 如果在以上操作完成后,出现登录失败的情况,请修改三个主机的ssh配置文件,修改以下参数,并重启ssh服务
[root@master ~]# vim /etc/ssh/ssh_config
RSAAuthentication yes    # 启用RSA认证
PubkeyAuthentication yes # 启用公钥、私钥配对认证
[root@master ~]# service sshd restart



二、开始安装配置

   1、Java环境安装(如果在安装linux时安装了SoftwareDevelopment Workstation软件包,这一步可跳过)

    

    1.1、安装JDK

    所有机器上都要安装JDK,现在就在master主机安装,然后其他主机按照步骤重复进行即可

# 创建/usr/java目录,将jdk-6u45-linux-x64.bin复制到此目录下,赋予执行权限,并执行
[root@master ~]# mkdir /usr/java
[root@master ~]# cp jdk-6u45-linux-x64.bin /usr/java/
[root@master ~]# cd /usr/java/
[root@master java]# chmod +x jdk-6u45-linux-x64.bin
[root@master java]# ./jdk-6u45-linux-x64.bin
[root@master java]# lsjdk1.6.0_45  jdk-6u45-linux-x64.bin

# 安装完成后发现当前目录下多了 jdk1.6.0_45 文件夹,安装结束

   1.2、配置环境变量

# 编辑/etc/profile文件,在尾部追加以下内容
[root@master ~]# vim /etc/profile
# set java environment
export JAVA_HOME=/usr/java/jdk1.6.0_45
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin:$$JAVA_HOME/jre/bin

# 执行下面命令使其配置立即生效,并进行测试
[root@master ~]# source /etc/profile
[root@master ~]# java -version
java version "1.6.0_45"
OpenJDK Runtime Environment (rhel-2.4.3.3.el6-x86_64 u45-b15)
OpenJDK 64-Bit Server VM (build 24.45-b08, mixed mode)

   1.3、安装配置其他主机(同上,略)




  2、hadoop集群安装配置

    

    2.1、hadoop集群安装

    所有机器上都要安装JDK,现在就在master主机安装,然后其他主机按照步骤重复进行即可

# 将软件包解压到/usr/目录下,并重命名
[root@master ~]# tar –zxvf hadoop-1.0.0.tar.gz -C /usr/
[root@master ~]# cd /usr/
[root@master usr]# mv hadoop-1.0.0 hadoop

# 在hadoop目录下创建tmp文件夹
[root@master usr]# cd hadoop
[root@master hadoop]# mkdir tmp

   2.2、配置环境变量

# 编辑/etc/profile文件,在尾部追加以下内容
[root@master ~]# vim /etc/profile
# set hadoop path
export HADOOP_HOME=/usr/hadoop
export PATH=$PATH:$HADOOP_HOME/bin

# 执行下面命令使其配置立即生效
[root@master ~]# source /etc/profile

   

  2.3、配置hadoop

    1)配置hadoop-env.sh

    该文件位于/usr/hadoop/conf目录下

[root@master conf]# vim hadoop-env.sh

# 如果是自己配置的JDK,则添加以下内容
# set java enviroment
export JAVA_HOME=/usr/java/jdk1.6.0_45

# 如果是安装SoftwareDevelopment Workstation软件包,则添加以下内容
# set java enviromentexport JAVA_HOME=/usr

    2)配置core-site.xml文件

[root@master conf]# vim core-site.xml
<configuration>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/hadoop/tmp</value>
                <description>A base for other temporary directories</description>
        </property>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://192.168.232.129:9000</value>
        </property>
</configuration>

    3)配置hdfs-site.xml文件

[root@master conf]# vim hdfs-site.xml
<configuration>
        <property>
                <name>dfs.replication</name>
                <value>1</value>
        </property>
</configuration>

    4)配置mapred-site.xml文件

[root@master conf]# vim mapred-site.xml
<configuration>
        <property>
                <name>mapred.job.tracker</name>
                <value>http://192.168.232.129:9001</value>
        </property>
</configuration>

    5)配置masters文件

# 将原来的localhost去掉
[root@master conf]# vim masters
192.168.232.129  # master主机的IP地址
# master    # master主机名(要保证hosts文件已修改)

    6)配置salves文件

[root@master conf]# vim slaves
192.168.232.130    # salve1的IP地址
192.168.232.131    # salve2的IP地址
# salve1    # salve1主机名(要保证hosts文件已修改)
# salve1    # salve2主机名(要保证hosts文件已修改)

   

    master主机配置完成


   2.4、配置salve1主机、salve2主机

# 只需要将配置好的hadoop文件夹远程传输到salve1和salve2上即可
[root@master ~]# scp -r /usr/hadoop root@salve1:/usr/
[root@master ~]# scp -r /usr/hadoop root@salve2:/usr/
# 并且修改salve1主机、salve2主机的/etc/profile文件
[root@salve1 ~]# vim /etc/profile
# set hadoop pathexport HADOOP_HOME=/usr/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
# 执行下面命令使其配置立即生效
[root@salve1 ~]# source /etc/profile


    配置完成



三、启动及验证

   

   1、格式化HDFS文件系统(只需一次,下次启动不再需要格式化)

[root@master ~]# hadoop namenode -format

   2、启动hadoop

[root@master ~]# start-all.sh

   3、验证hadoop

    3.1、用java自带的jps查看进程

# 在master上查看
[root@master ~]# jps
5434 JobTracker
4447 SecondaryNameNode
5221 NameNode
5535 Jps
# 在salve1上查看
[root@salve1 ~]# jps
4313 Jps
4260 TaskTracker
4171 DataNode

    3.2、用"hadoop dfsadmin -report"查看Hadoop集群的状态

[root@master ~]# hadoop dfsadmin -report

    3.3、用网页查看集群

    1)访问http://192.168.232.129:50030

    2)访问http://192.168.232.129:50070

    


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI