集团站切换校区

验证码已发送,请查收短信

复制成功
微信号:togogoi
添加微信好友, 详细了解课程
已复制成功,如果自动跳转微信失败,请前往微信添加好友
打开微信
图标

学习文章

当前位置:首页 > >学习文章 > >

{大数据}hadoop集群搭建

发布时间: 2018-01-03 21:59:34

​​本集群搭建案例,以5节点为例进行搭建,角色分配如下:

hdp-node-01    NameNode  SecondaryNameNode

hdp-node-02    ResourceManager 

hdp-node-03 DataNode    NodeManager

hdp-node-04 DataNode    NodeManager

hdp-node-05 DataNode    NodeManager


部署图如下:



1. 服务器准备本案例使用虚拟机服务器来搭建HADOOP集群,所用软件及版本:

   12.0.0

   redhat  6.5  64bit

2. 网络环境准备

   采用NAT方式联网

   网关地址:192.168.195.2

   3个服务器节点IP地址:192.168.195.128、192.168.195.129、192.168.195.130

   子网掩码:255.255.255.0

3.服务器系统设置

   添加HADOOP用户

   为HADOOP用户分配sudoer权限

   同步时间

   设置主机名

       hdp-node-01

       hdp-node-02

       hdp-node-03

   配置内网域名映射:

       192.168.195.128          hdp-node-01

       192.168.195.129          hdp-node-02

       192.168.195.129          hdp-node-03

   配置ssh免密登陆

   配置防火墙


4.准备Linux环境

   以下是将ip地址改成静态的ip地址,如果用动态ip地址,以下操作可以不用做:

​        4.1:先将虚拟机的网络模式选为NAT

       4.2:​ 修改主机名(要用root)

               [root@hdp-node-01 ~]# vim /etc/sysconfig/network

               NETWORKING=yes

               HOSTNAME=hdp-node-01

               保存,然后重启机器

               [root@hdp-node-01 ~]# reboot


       4.3: 修改IP,两种方式:

               第一种:通过Linux图形界面进行修改(强烈推荐)

                   A、先在动态的ip地址状态下查询ip

                   B、进入Linux图形界面 -> 右键点击右上方的两个小电脑 -> 点击Edit connections -> 选中当前网络System eth0 -> 点击edit按钮 -> 选择IPv4 -> method选择为manual -> 点击add按钮 ->

                       添加IP:192.168.195.128 子网掩码:255.255.255.0 网关:192.168.192.2 DNS:144.144.144.144-> apply

               第二种:修改配置文件方式

                   vim /etc/sysconfig/network-scripts/ifcfg-eth0

                   DEVICE=eth0

                   TYPE=Ethernet

                   UUID=d0bae0f5-ea26-4844-b6e2-1c24945914ec

                   ONBOOT=no

                   NM_CONTROLLED=yes

                   BOOTPROTO=none

                   IPADDR=192.168.195.128

                   PREFIX=32

                   GATEWAY=192.168.195.2

                   DEFROUTE=yes

                   IPV4_FAILURE_FATAL=yes

                   IPV6INIT=no

                   NAME="System eth0"

                   HWADDR=00:0C:29:DC:BA:3E

                   LAST_CONNECT=1509437953

       4.4: 修改主机名和IP的映射关系

                vim /etc/hosts

                192.168.195.128 hdp-node-01

       4.5:关闭防火墙

                  #查看防火墙状态

                   service iptables status

                   #关闭防火墙

                   service iptables stop

                   #查看防火墙开机启动状态

                   chkconfig iptables --list

                    #关闭防火墙开机启动

                     chkconfig iptables off

                     或者修改防火墙的访问规则

                     [root@hdp-node-01 ~]# vim /etc/sysconfig/iptables

                       在该文件中加上

                           -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

                       重启防火墙

                       [root@hdp-node-01 ~]#service iptables restart


5:安装JDK

       (1) 上传jdk安装包,规划安装目录  /opt/jdk1.8.0_121 

       (2) 解压安装包

           [root@hdp-node-01 opt]# tar -zxvf jdk-8u121-linux-x64.gz –C /opt

       (3) 配置环境变量 /etc/profile

           vim /etc/profile

           #在文件对应的位置添加

           JAVA_HOME=/opt/jdk1.8.0_121

           PATH=$JAVA_HOME/bin:$PATH

           export JAVA_HOME PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

           #刷新配置

            source /etc/profile


6:安转hadoop-2.8.1


       先上传hadoop的安装包到服务器上去/home/hadoop/apps

       解压hadoop

       [hadoop@hdp-node-01 apps]$ tar zxvf hadoop-2.8.1.tar.gz

       注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop

       伪分布式需要修改5个配置文件    ​6.1:配置hadoop​

           第一个:hadoop-env.sh​

​                vim hadoop-env.sh​

​                # The java implementation to use.                export JAVA_HOME=/opt/jdk1.8.0_121


​            第二个:core-site.xml​

<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://hdp-node-01:9000</value>

</property>

<!-- 指定hadoop运行时产生文件的存储目录 -->

<property>

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

<value>/home/hadoop/apps/hadoop-2.8.1/tmp</value>

</property>

</configuration>

        

             第三个:hdfs-site.xml

​<configuration>

<property>

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

<value>/home/hadoop/data/name</value>

</property>

<property>

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

<value>/home/hadoop/data/data</value>

</property>

<property>

<name>dfs.replication</name>

<value>2</value>

</property>

<property>

<name>dfs.secondary.http.address</name>

<value>hdp-node-01:50090</value>

</property>

<property>

<name>dfs.blocksize</name>

<value>134217728</value>

</property>

</configuration>

​注意:需要先创建/home/hadoop/data/name和/home/hadoop/data/data两个目录

[hadoop@hdp-node-01 ~]$ mkdir -p ~/data/name

[hadoop@hdp-node-01 ~]$ mkdir -p ~/data/data


​第四个:mapred-site.xml​

       mv mapred-site.xml.template mapred-site.xml

       vim mapred-site.xml


<!-- 指定mr运行在yarn上 -->

<property>

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

<value>yarn</value>

</property>

第五个:yarn-site.xml​

<!-- 指定YARN的老大(ResourceManager)的地址 -->

<property>

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

<value>hdp-node-01</value>

</property>

<!-- reducer获取数据的方式 -->

<property>

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

<value>mapreduce_shuffle</value>

</property>



第六个:vi  slaves

hdp-node-02

hdp-node-03



6.2: 将hadoop添加到环境变量​

       vim /etc/profile​

​HADOOP_HOME=/home/hadoop/apps/hadoop-2.8.1JAVA_HOME=/opt/jdk1.8.0_121

PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

export JAVA_HOME PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

​        source /etc/profile


6.3:​格式化namenode(是对namenode进行初始化)

       hdfs namenode -format​


6.4:配置datanode将上面配置好的hadoop-2.8.1拷贝到hdp-node-02和hdp-node-03机器

[hadoop@hdp-node-01 apps]$ scp -r hadoop-2.8.1 hadoop@hdp-node-02:/home/hadoop/apps


注意:在hdp-node-02机器中/home/hadoop目录,要先创建apps


6.5:启动hadoop 先启动HDFS

       sbin/start-dfs.sh

       再启动YARN

       sbin/start-yarn.sh


6.6:验证是否启动成功 使用jps命令验证

       27408 NameNode

       28218 Jps

       27643 SecondaryNameNode

       28066 NodeManager

       27803 ResourceManager

       27512 DataNode

       http://192.168.195.128:50070 (HDFS管理界面)


7:配置ssh免登陆

   以下操作只需要在namenode机器中配置即可

   A、用root用户登录修改SSH配置文件"/etc/ssh/sshd_config"的下列内容。


       检查下面几行前面”#”注释是否取消掉:

               RSAAuthentication yes # 启用 RSA 认证

               PubkeyAuthentication yes # 启用公钥私钥配对认证方式

               AuthorizedKeysFile  %h/.ssh/authorized_keys # 公钥文件路径

        然后重启sshd服务

                [root@hdp-node-04 .ssh]# service sshd restart

       B、生成ssh免登陆密钥

               #进入到我的home目录


               [hadoop@hdp-node-01 hadoop]$ cd ~/.ssh

               [hadoop@hdp-node-01 .ssh]$ ssh-keygen -t rsa (四个回车)

           执行完这个命令后,会生成两个文件id_rsa(私钥)、id_rsa.pub(公钥)

           将公钥拷贝到要免密登陆的目标机器上

               [hadoop@hdp-node-01 .ssh]$ cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

               [hadoop@hdp-node-01 .ssh]$ ssh-copy-id hadoop@hdp-node-01

               [hadoop@hdp-node-01 .ssh]$ssh-copy-id hadoop@hdp-node-02

               [hadoop@hdp-node-01 .ssh]$ssh-copy-id hadoop@hdp-node-03

               [hadoop@hdp-node-01 .ssh]$ssh  hadoop@hdp-node-02

           与本机完成免密登录,将authorized_keys权限改成600            


---------------------------

       ssh免登陆:

       生成key:

---------------------------

       ssh免登陆:

       生成key:

       ssh-keygen

       复制从A复制到B上:

       ssh-copy-id B


       验证:

           ssh localhost/exit,ps -e|grep ssh

           ssh A  #在B中执行

​8:测试:


​        1、查看集群状态命令:

            hdfs  dfsadmin  -report ​


       2、上传文件到HDFS从本地上传一个文本文件到hdfs的/wordcount/input目录下

             [HADOOP@hdp-node-01 ~]$ HADOOP fs -mkdir -p /wordcount/input

             [HADOOP@hdp-node-01 ~]$ HADOOP fs -put /home/HADOOP/somewords.txt  /wordcount/input




上一篇: {大数据}HDFS详解

下一篇: {大数据}Zookeeper简介

十五年老品牌
微信咨询:togogoi 咨询电话:18922156670 咨询网站客服:在线客服

相关课程推荐

在线咨询 ×

您好,请问有什么可以帮您?我们将竭诚提供最优质服务!