`
zhoumeng87
  • 浏览: 69785 次
文章分类
社区版块
存档分类
最新评论

hadoop集群搭建

阅读更多

第一步:搭建配置新的虚拟机

 

格式化之前先把tmp目录下所有与Hadoop有关的信息全部删除

rm -rf /tmp/hadoop-centos*

 

开启之后jps只有Java的进程:sudo vi /etc/hosts 里面加 bogon

1.sudo赋权

Root用户 vi /etc/sudoers

/root  n(查找下一个结果)

centos  ALL=(ALL)     NOPASSWD:ALL

 

2.修改ens33网卡(桥接模式静态IP)

创建官网:www.fhadmin.org 软链接

ln –s /etc/sysconfig/network-scripts/ifcfg-ens33 ens33

修改配置文件

vi /etc/sysconfig/network-scripts/ifcfg-ens33

TYPE=Ethernet

BOOTPROTO=static

DEFROUTE=yes

PEERDNS=yes

PEERROUTES=yes

IPV4_FAILURE_FATAL=no

IPV6INIT=yes

IPV6_AUTOCONF=yes

IPV6_DEFROUTE=yes

IPV6_PEERDNS=yes

IPV6_PEERROUTES=yes

IPV6_FAILURE_FATAL=no

IPV6_ADDR_GEN_MODE=stable-privacy

NAME=ens33

UUID=51248a5b-aece-4777-ab51-7b5e61602180

DEVICE=ens33

ONBOOT=yes

IPADDR=192.168.12.206

NETMASK=255.255.255.0

GATEWAY=192.168.12.1

DNA1=219.141.136.10

DNS2=202.106.196.115

DNS3=8.8.8.8

DNS4=114.114.114.114

 

改完后重启network服务

    sudo systemctl restart network

虚拟机上右键-->设置-->网络适配器-->桥接模式

检测是否连接网络官网:www.fhadmin.org  ping www.baidu.com

3.修改主机名

sudo  vi  /etc/hostname

原来内容全部删除 写入s126

重启虚拟机

4.安装JDK和Hadoop

1.上传文件包

2.解压        tar –zxvf ****

3.创建软链接      ln –s *** hadoop

 

tar -zxvf jdk-8u121-linux-x64.tar.gz

ln -s jdk1.8.0_121 java

rm -rf jdk-8u121-linux-x64.tar.gz

 

tar -zxvf hadoop-2.8.0.tar.gz

ln -s hadoop-2.8.0 hadoop

rm -rf hadoop-2.8.0.tar.gz

 

4.配置环境变量

sudo vi /etc/profile

#java

JAVA_HOME=/home/centos/java

export PATH=$PATH:$JAVA_HOME/bin

 

#hadoop

HADOOP_HOME=/home/centos/hadoop

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

 

vi ~/hadoop/etc/hadoop/hadoop-env.sh

#java

export JAVA_HOME=/home/centos/java

 

5.刷新配置文件

source /etc/profile

5.关闭防火墙

sudo systemctl stop firewalld关闭防火墙

sudo systemctl start firewalld开启防火墙

sudo systemctl disable firewalld禁用防火墙(开机不启动)

sudo systemctl enable firewalld使用防火墙(开机启动)

sudo systemctl status firewalld查看防火墙状态

第二步:Hadoop集群搭建

1.独立模式

1、 将hadoop的jar包上传服务器

2、 解压tar包

tar –zxvf ****

3、 创建软连接

ln –s *** hadoop

4、 配置环境变量

[vi /etc/profile]

最下面加上

#hadoop

HADOOP_HOME=/home/centos/hadoop

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

最后保存文件加载环境变量配置文件

source /etc/profile

5、 修改hadoop环境变量配置文件配置jdk路径

[$HADOOP_HOME/etc/hadoop/hadoop-env.sh]

 

6、 测试

hadoop version

 

默认hadoop就是独立模式。

 

特点:运行任务是一个java进程,就相当于运行一个java程序

 

2.伪分布式模式配置

修改hdfs配置文件

vi ~/hadoop/etc/hadoop/core-site.xml

        cd ~/hadoop/etc/hadoop

[core-site.xml]

<configuration>

        <property>

                <name>fs.defaultFS</name>

                <value>hdfs://192.168.12.126:9000</value>

        </property>

</configuration>

 

vi ~/hadoop/etc/hadoop/hdfs-site.xml

[hdfs-site.xml]

<configuration>

        <property>

                <name>dfs.replication</name>

                <value>1</value>

        </property>

</configuration>

 

设置ssh免密登录

ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa

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

chmod 600 ~/.ssh/authorized_keys

 

检测方式:ssh localhost/主机真实ip

 

格式化文件系统

hadoop namenode -format

 

启动文件系统

jps                 检测Java开启的进程

start-dfs.sh        启动文件系统(启动了三个java进程)

jps                 再次检测Java开启的进程(应该是4个)

 

 

配置yarn资源管理器

cd ~/hadoop/etc/hadoop

 

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

 

vi mapred-site.xml

     <configuration>

    <property>

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

        <value>yarn</value>

    </property>

</configuration>

 

vi yarn-site.xml

<configuration>

    <property>

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

        <value>mapreduce_shuffle</value>

    </property>

</configuration>

 

start-dfs.sh  &&  start-yarn.sh  &&  jps

3.完全分布式

配置/etc/hosts文件(本地静态DNS)

首行加上 : bogon

增加:

192.168.12.201 s201

192.168.12.202 s202

192.168.12.203 s203

 

1.设置ssh免密登录:

(现在别的主机ssh 主机IP 然后把宿主机复制过去的权限600)

效果:官网:www.fhadmin.org 从主机上能通过ssh免密登录

目的:在主机上通过ssh执行命令

设置的方式:

                  首先给主机设置ssh免密登录,将主机的公钥(id_rsa.pub)通过scp命令发送到其他          主机,在其他主机上将获取到的公钥追加到~/.ssh/authorized_keys。

         主机:

ssh-keygen  –t  rsa  –P  ''  –f  ~/.ssh/id_rsa

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

chmod 600 ~/.ssh/authorized_keys

 

scp ~/.ssh/id_rsa.pub centos@192.168.12.202:~/.ssh/id_rsa.pub.s201

scp ~/.ssh/id_rsa.pub centos@192.168.12.203:~/.ssh/id_rsa.pub.s201

s202:

         s203:

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

 

2.shell脚本的操作:

主机写分发脚本cpTo,查看脚本xcall。赋予执行权限。移动到/usr/local/bin目录下,以便我们能在任何地方使用脚本

 

[cpTo]

#脚本的目的是:修改完了主机的文件以后,可以通过它分发到其他主机,实现同步

#脚本的用法:cpTo 文件(绝对路径/相对路径)

#!/bin/bash

#获取参数的绝对路径

dirname=`cd $(dirname $1); pwd`

basename=`basename $1`

echo ${dirname}/${basename}

for i in s202 s203

do

        echo "=================$i ${dirname}/${basename}=================="

                  #如果其他机器没有父目录创建父目录

        ssh $i mkdir -p ${dirname}

                  #远程拷贝文件

        scp  $1 ${i}:${dirname}/${basename}

done

 

[xcall.sh]

#作用是通过ssh远程运行命令,比如查看jps,在比如删除/tmp

#用法:xcall 命令

#!/bin/bash

for host in s201 s202 s203

do

        echo "====================echo $host $@==========================="

                  #ssh远程执行命令

#$@获取所有参数

#source /etc/profile 因为ssh远程执行命令不去加载/etc/profile,所以很多命令没法用

        ssh $host "source /etc/profile && $@"

Done

 

3.软件安装的操作

安装 官网:www.fhadmin.org jdk、hadoop、配置环境变量JAVA_HOME、HADOOP_HOME,可以通过xcall脚本来         同步安装

在主机上修改hosts文件,给主机配置所有机器的dns服务,使用cpTo脚本分发到其他         机器,让其他机器也有dns服务

注意:/etc/hosts是root用户的文件,所以需要切换到root执行

dns服务: 可以将域名解析为ip地址。比如ping s201,解析成ping 192.168.12.201

 

4.配置文件操作

在主机上修改hadoop的配置文件:

[Hadoop-en.sh]  [core-site.xml]  [hdfs-site.xml]  [mapred-site.xml]  [yarn-site.xml] [slaves]

通过cpTo脚本进行分发(可以分发上一级目录来全部分发)

1、[hadoop-env.sh]配置javahome

2、[core-site.xml]配置连接url

[core-site.xml]

<configuration>

    <property>

        <name>fs.defaultFS</name>

        <value>hdfs://s201:9000</value>

    </property>

</configuration>

3、[hdfs-site.xml]配置的是副本数

<configuration>

    <property>

        <name>dfs.replication</name>

        <value>3</value>

    </property>

</configuration>

4、[mapred-site.xml]配置运行map任务采用的集群资源管理框架

<configuration>

    <property>

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

        <value>yarn</value>

    </property>

</configuration>

5、[yarn-site.xml]配置RM的节点和数据传输方式

<configuration>

         <property>

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

              <value>s126</value>

    </property>

    <property>

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

        <value>mapreduce_shuffle</value>

    </property>

</configuration>

6、[slaves]配置datanode节点和NM节点

s201

s202

s203

 

5.主机格式化文件系统

只需要在主机格式化文件系统(xcall删除数据目录/tmp/hadoop*,日志文件/logs/*)

启动hdfs文件系统和yarn框架

xcall查看启动是否成功/看web

 

第三步:配置项目

1、 将要统计的文件(wordcount.txt)上传到hdfs

hdfs dfs –put 本地文件 hdfs目录

hdfs dfs -put  wordCount2.txt /user

 

2、 运行任务

hadoop jar jar包 com.zdjy.bigdata.wordCount.hadoop.WordCountApp hdfs输    入文件

hdfs输出目录

hadoop jar wordCount.jar com.zdjy.WordCountApp /user/wordCount2.txt /saa

 

3、 查看结果

hdfs dfs –cat hdfs输出目录下的文本文件 (hdfs dfs -cat /saa/*)

4.关闭文件系统

hdfs dfs -mkdir /user

hdfs dfs -ls -R /

hdfs -dfs -put wordCount2.txt /user

hdfs dfs -put  wordCount2.txt /user

hdfs dfs -ls -R /

hadoop jar wordCount-0.0.1-SNAPSHOT.jar

com.zdjy.bigdata.wordCount.hadoop.WordCountApp

/user/wordCount2.txt /out

hdfs dfs -cat /out/*

 

5.在浏览器上看web(sudo systemctl stop firewalld关闭防火墙)

http://192.168.12.206:50070

         文件系统:50070

         yarn:8088

ssh免密登录与手动单独启动每一个进程

设置ssh免密登录的原因:我们start-dfs.sh/start-yarn.sh他们都是通过ssh来远程控制每一台主机的进程的启动

[start-dfs.sh]

if [ -n "$HADOOP_SECURE_DN_USER" ]; then

  echo \

    "Attempting to start secure cluster, skipping datanodes. " \

    "Run start-secure-dns.sh as root to complete startup."

else

  "$HADOOP_PREFIX/sbin/hadoop-daemons.sh" \

    --config "$HADOOP_CONF_DIR" \

    --script "$bin/hdfs" start datanode $dataStartOpt

fi

 

[Hadoop-daemons.sh]

exec "$bin/slaves.sh" --config $HADOOP_CONF_DIR cd "$HADOOP_PREFIX" \; "$bin/hadoop-daemon.sh" --config $HADOOP_CONF_DIR "$@"

 

[slaves.sh]

for slave in $SLAVE_NAMES ; do

 ssh $HADOOP_SSH_OPTS $slave $"${@// /\\ }" \

   2>&1 | sed "s/^/$slave: /" &

 if [ "$HADOOP_SLAVE_SLEEP" != "" ]; then

   sleep $HADOOP_SLAVE_SLEEP

 fi

done

 

我们手动启动每一个进程

主机启动namenode

         hadoop-daemon.sh start namenode

所有机器手动启动datnode

         hadoop-daemon.sh start datanode

在主机上手动启动datanode

         ssh s202 “source /etc/profile && hadoop-daemon.sh start datanode”

在主机上脚本启动所有datanode

         hadoop-daemons.sh start datanode

在主机启动secondarynamenode

 

主机启动resourcemanager

         yarn-daemon.sh start resourcemanager

所有机器启动nodemanager

         yarn-daemon.sh start nodemanager

在主机启动所有的nodemanager

         yarn-daemons.sh start nodemanager

 

start-dfs.sh=NN,DNs,2NN

start-yarn.sh=RM,NMs

 

start-all.sh= start-dfs.sh && start-yarn.sh

0
0
分享到:
评论

相关推荐

    hadoop集群搭建(超级详细)

    在大数据领域,Hadoop是一个广泛使用的开源框架,用于存储和处理海量数据。本文将详细讲解如何搭建一个...这个超详细的教程覆盖了从零开始到集群搭建完成的全过程,按照步骤执行,可以轻松掌握Hadoop集群搭建技术。

    Hadoop集群搭建详细简明教程

    本教程“Hadoop集群搭建详细简明教程”将带你逐步走进Hadoop的世界,了解并掌握如何构建一个高效稳定的Hadoop集群。 Hadoop是由Apache基金会开发的一个开源项目,其核心包括两个主要组件:Hadoop Distributed File ...

    Hadoop集群搭建(全)

    Hadoop集群搭建详解 Hadoop是一个开源的分布式计算平台,由 Apache 软件基金会开发,核心组件包括HDFS(Hadoop Distributed Filesystem)和MapReduce。HDFS是一个分布式文件系统,提供了对文件系统的命名空间和...

    3.基于hadoop集群搭建hbase

    ### 基于Hadoop集群搭建HBase集群详解 #### 一、引言 随着大数据技术的迅猛发展,海量数据的高效存储与处理成为企业关注的重点。Hadoop作为一款能够处理大量数据的基础框架,被广泛应用于各类场景之中。然而,在...

    hadoop集群搭建文档资料

    以上内容是Hadoop集群搭建的基础步骤和关键知识点,具体的实施过程中可能需要根据实际环境进行调整。提供的文档资料应详细记录了每一步的操作,帮助读者理解和实践Hadoop集群的搭建。通过这份文档,你可以学习到...

    完全分布式hadoop集群搭建(含SSH免密码登录)(详细版)

    非常详细的hadoop集群搭建教程,包含SSH免密码登录,基本上按照教程上一步一步操作就能搭建成功,非常适合大数据初学者使用

    Hadoop集群搭建教程(ubuntu) (1).docx

    详细的Hadoop集群搭建过程,有6部分,前提是能连接网络,前三部都是很简单免密要仔细看,推荐JAVA版本1.8,Hadoop版本2.2.7 这两个版本都是稳定的

    Hadoop集群搭建笔记

    非常详细的linux上的hadoop集群搭建文档,可供参考,希望大家能够从中获益

    hadoop集群搭建文档

    hadoop集群搭建文档,欢迎您下载使用欢迎您下载使用欢迎您下载使用欢迎您下载使用欢迎您下载使用

    linux下的hadoop集群搭建与相关配置

    详细的hadoop集群搭建步骤

    Hadoop集群搭建超详细步骤及注意点

    ### Hadoop集群搭建详解 Hadoop作为大数据处理领域的重要工具之一,其集群的搭建对于企业级数据处理至关重要。本文将详细介绍Hadoop集群的搭建步骤及其注意事项,帮助读者顺利完成Hadoop集群的部署。 #### 一、...

    Hadoop集群搭建

    Hadoop集群搭建详细的描述了hadoop集群的搭建过程,值得大家去学习。

    bboss-docs-hadoop集群搭建

    bboss hadoop集群搭建 hadoop集群搭建 hadoop集群搭建 hadoop集群搭建 hadoop集群搭建

    hadoop集群搭建详细步骤

    "Hadoop 集群搭建详细步骤" 本文将详细介绍 Hadoop 集群搭建的步骤,从伪分布式到克隆并将其成功转化为集群搭建。我们将从 Hadoop 伪分布式搭建过程开始,然后将一台机器克隆 2 台机器,最后将这三台伪分布式改装成...

    基于centos的大数据hadoop集群搭建说明文档

    【标题】:基于CentOS的大数据Hadoop集群搭建详解 【描述】:本教程专为初学者设计,详细阐述了如何手动搭建Hadoop集群,步骤详尽,易于理解。 【标签】:Hadoop集群搭建 【正文】: Hadoop是一个开源的分布式...

    hadoop集群搭建步骤

    该文档提供了linux环境中搭建hadoop集群(大数据)的步骤,个人认为比较详细,供大家学习

    mac环境下hadoop集群搭建

    搭建一个Hadoop集群是一个复杂的过程,但为了更好的理解,我们将这个过程拆解成几个主要步骤,并且由于本文档是在Mac环境下进行Hadoop集群搭建的指南,我们需要专注于特定于Mac和VMware Fusion的步骤。 1. 创建...

Global site tag (gtag.js) - Google Analytics