ITPub博客

首页 > 大数据 > Hadoop > 好程序员大数据培训分享Hadoop分布式集群

好程序员大数据培训分享Hadoop分布式集群

原创 Hadoop 作者:好程序员 时间:2020-10-16 16:08:04 0 删除 编辑

   好程序员大数据培训分享 Hadoop 分布式集群 的详细介绍,首先Hadoop 的搭建有三种方式,单机版适合开发调试 ; 伪分布式版,适合模拟集群学习 ; 完全分布式,生产使用的模式。这篇文件介绍如何搭建完全分布式的 hadoop 集群,一个主节点,三个数据节点为例来讲解。

   基础环境

   环境准备

   1 、软件版本

   四台服务器配置,系统:centos6.5 、内存: 1G (视自己配置而定)、硬盘: 20G (视自己配置而定)

   四台服务器分配的IP 地址:

   192.168.10.131

   192.168.10.132

   192.168.10.133

   192.168.10.134

   规划:131 用作主节点用作 master ,其它三台为数据节点 132 133 134 用作 salve1~3

   jdk 和生成保持一致使用 1.8 版本

   hadoop 使用 2.7.3 版本

   2 host 配置和主机名 ( 四台 )

   修改四台服务器的hosts 文件

   vim /etc/hosts

   192.168.10.131 master

   192.168.10.132 slave1

   192.168.10.133 slave2

   192.168.10.134 slave3

   分别斯塔服务器的主机名:HOSTNAME master 为例说明

   vi /etc/sysconfig/network

   HOSTNAME=master

   执行reboot 后生效,完成之后依次修改其它 salve 服务器为: slave1~3

   3 、服务器安装 jdk( 四台 )

   建议使用yum 安装 jdk, 也可以自行下载安装

   yum -y install java-1.8.0-openjdk*

   配置环境变量,修改配置文件vim/etc/profile

   export JAVA_HOME=/usr/lib/jvm/jre-1.8.0-openjdk.x86_64

   export PATH=$JAVA_HOME/bin:$PATH

   export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

   使用souce 命令让立刻生效

   source /etc/profile

   免密登陆

   一、首先关闭四台服务器的防火墙和SELINUX

   查看防火墙状态

   service iptables status

   关闭防火墙

   service iptables stop

   chkconfig iptables off

   关闭SELINUX 后,需要重启服务器

   —关闭 SELINUX

   # vim /etc/selinux/config

   —注释掉

   #SELINUX=enforcing

   #SELINUXTYPE=targeted

   —添加

   SELINUX=disabled

   二、免密码登录本机

   下面以配置master 本机无密码登录为例进行讲解,用户需参照下面步骤完成 salve1~3 三台子节点机器的本机无密码登录 ;

   1) 生产秘钥

   ssh-keygen -t rsa

   2) 将公钥追加到” authorized_keys ”文件

   cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

   3) 赋予权限

   chmod 600 .ssh/authorized_keys

   4) 验证本机能无密码访问

   ssh master

   最后,依次配置salve1~3 无密码访问

   二、master 本机无密码登录 slave1 slave2 slave3 ,以 master 无密码登录 slave1 为例进行讲解:

   1) 登录 slave1 ,复制 master 服务器的公钥” id_rsa.pub ”到 slave1 服务器的” root ”目录下。

   scp root@master:/root/.ssh/id_rsa.pub /root/

   2) master 的公钥 (id_rsa.pub) 追加到 slave1 authorized_keys

   cat id_rsa.pub >> .ssh/authorized_keys

   rm -rf id_rsa.pub

   3) master 上面测试

   ssh slave1

   三、配置slave1~slave3 本机无密码登录 master

   下面以slave1 无密码登录 master 为例进行讲解,用户需参照下面步骤完成 slave2~slave3 无密码登录 master

   1) 登录 master ,复制 slave1 服务器的公钥” id_rsa.pub ”到 master 服务器的” /root/ ”目录下。

   scp root@slave1:/root/.ssh/id_rsa.pub /root/

   2) slave1 的公钥 (id_rsa.pub) 追加到 master authorized_keys 中。

   cat id_rsa.pub >> .ssh/authorized_keys

   rm -rf id_rsa.pub // 删除 id_rsa.pub

   3) slave1 上面测试

   ssh master

   依次配置slave2 slave3

   到此主从的无密登录已经完成了。

   Hadoop 环境搭建

   配置master hadoop 环境

   1 master 上解压缩安装包及创建基本目录

   # 下载

   wget http://apache.claz.org/hadoop/common/hadoop-2.7.3/hadoop-2.7.

   # 解压

   tar -xzvf hadoop-2.7.3.tar.gz -C /usr/local

   # 重命名

   mv hadoop-2.7.3 hadoop

   2 、配置 master hadoop 环境变量

   1) 配置环境变量,修改配置文件 vi/etc/profile

   export HADOOP_HOME=/usr/local/hadoop

   export PATH=$PATH:$HADOOP_HOME/bin

   使得hadoop 命令在当前终端立即生效

   source /etc/profile

   下面配置,文件都在:/usr/local/hadoop/etc/hadoop 路径下

   2 、配置 core-site.xml

   修改Hadoop 核心配置文件 /usr/local/hadoop/etc/hadoop/core-site.xml ,通过 fs.default.name 指定 NameNode IP 地址和端口号,通过 hadoop.tmp.dir 指定 hadoop 数据存储的临时文件夹。

   <configuration>

   <property>

   <name>hadoop.tmp.dir</name>

   <value>file:/usr/local/hadoop/tmp</value>

   <description>Abase for other temporary directories.</description>

   </property>

   <property>

   <name>fs.defaultFS</name>

   <value>hdfs://master:9000</value>

   </property>

   </configuration>

   特别注意:如没有配置hadoop.tmp.dir 参数,此时系统默认的临时目录为: /tmp/hadoo-hadoop 。而这个目录在每次重启后都会被删除,必须重新执行 format 才行,否则会出错。

   3 、配置 hdfs-site.xml

   修改HDFS 核心配置文件 /usr/local/hadoop/etc/hadoop/hdfs-site.xml ,通过 dfs.replication 指定 HDFS 的备份因子为 3 ,通过 dfs.name.dir 指定 namenode 节点的文件存储目录,通过 dfs.data.dir 指定 datanode 节点的文件存储目录。

   <configuration>

   <property>

   <name>dfs.replication</name>

   <value>3</value>

   </property>

   <property>

   <name>dfs.name.dir</name>

   <value>/usr/local/hadoop/hdfs/name</value>

   </property>

   <property>

   <name>dfs.data.dir</name>

   <value>/usr/local/hadoop/hdfs/data</value>

   </property>

   </configuration>

   4 、配置 mapred-site.xml

   拷贝mapred-site.xml.template mapred-site.xml ,在进行修改

   cp /usr/local/hadoop/etc/hadoop/mapred-site.xml.template /usr/local/hadoop/etc/hadoop/mapred-site.xml

   vim /usr/local/hadoop/etc/hadoop/mapred-site.xml

   <configuration>

   <property>

   <name>mapreduce.framework.name</name>

   <value>yarn</value>

   </property>

   <property>

   <name>mapred.job.tracker</name>

   <value>http://master:9000</value>

   </property>

   </configuration>

   5 、配置 yarn-site.xml

   <configuration>

   <! Site specific YARN configuration properties >

   <property>

   <name>yarn.nodemanager.aux-services</name>

   <value>mapreduce_shuffle</value>

   </property>

   <property>

   <name>yarn.resourcemanager.hostname</name>

   <value>master</value>

   </property>

   </configuration>

   6 、配置 masters 文件

   修改/usr/local/hadoop/etc/hadoop/masters 文件,该文件指定 namenode 节点所在的服务器机器。删除 localhost ,添加 namenode 节点的主机名 master; 不建议使用 IP 地址,因为 IP 地址可能会变化,但是主机名一般不会变化。

   vi /usr/local/hadoop/etc/hadoop/masters

   ## 内容

   master

   7 、配置 slaves 文件 (Master 主机特有 )

   修改/usr/local/hadoop/etc/hadoop/slaves 文件,该文件指定哪些服务器节点是 datanode 节点。删除 locahost ,添加所有 datanode 节点的主机名,如下所示。

   vi /usr/local/hadoop/etc/hadoop/slaves

   ## 内容

   slave1

   slave2

   slave3

   配置hadoop-slave hadoop 环境

   下面以配置slave1 hadoop 为例进行演示,用户需参照以下步骤完成其他 slave2~3 服务器的配置。

   1) 复制 hadoop slave1 节点

   scp -r /usr/local/hadoop slave1:/usr/local/

   登录slave1 服务器,删除 slaves 内容

   rm -rf /usr/local/hadoop/etc/hadoop/slaves

   2) 配置环境变量

   vi /etc/profile

   ## 内容

   export HADOOP_HOME=/usr/local/hadoop

   export PATH=$PATH:$HADOOP_HOME/bin

   使得hadoop 命令在当前终端立即生效 ;

   source /etc/profile

   依次配置其它slave 服务

   启动集群

   1 、格式化 HDFS 文件系统

   进入master ~/hadoop 目录,执行以下操作

   bin/hadoop namenode -format

   格式化namenode ,第一次启动服务前执行的操作,以后不需要执行。

   2 、然后启动 hadoop

   sbin/start-all.sh

   3 、使用 jps 命令查看运行情况

   #master 执行 jps 查看运行情况

   25928 SecondaryNameNode

   25742 NameNode

   26387 Jps

   26078 ResourceManager

   #slave 执行 jps 查看运行情况

   24002 NodeManager

   23899 DataNode

   24179 Jps

   4 、命令查看 Hadoop 集群的状态

   通过简单的jps 命令虽然可以查看 HDFS 文件管理系统、 MapReduce 服务是否启动成功,但是无法查看到 Hadoop 整个集群的运行状态。我们可以通过 hadoopdfsadmin-report 进行查看。用该命令可以快速定位出哪些节点挂掉了, HDFS 的容量以及使用了多少,以及每个节点的硬盘使用情况。

   hadoop dfsadmin -report

   输出结果:

   Configured Capacity: 50108030976 (46.67 GB)

   Present Capacity: 41877471232 (39.00 GB)

   DFS Remaining: 41877385216 (39.00 GB)

   DFS Used: 86016 (84 KB)

   DFS Used%: 0.00%

   Under replicated blocks: 0

   Blocks with corrupt replicas: 0

   Missing blocks: 0

   Missing blocks (with replication factor 1): 0

   ……

   5 hadoop 重启

   sbin/stop-all.sh

   sbin/start-all.sh

   错误

   在搭建完成启动的时候,发生过两个错误:

   1 xxx:Error:JAVA_HOMEisnotsetandcouldnotbefound

   这个错误意思没有找到jdk 的环境变量,需要在 hadoop-env.sh 配置。

   vi /usr/local/hadoop/etc/hadoop/hadoop-env.sh

   ## 配置项

   export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64

   2 Theauthenticityofhost 0.0.0.0(0.0.0.0) can tbeestablished.

   解决方案关闭SELINUX

   — 关闭 SELINUX

   # vim /etc/selinux/config

   — 注释掉

   #SELINUX=enforcing

   #SELINUXTYPE=targeted

   — 添加

   SELINUX=disabled



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69913864/viewspace-2727470/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-03-20

  • 博文量
    327
  • 访问量
    140370