Hadoop环境搭建

Posted 泷十三

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Hadoop环境搭建相关的知识,希望对你有一定的参考价值。

啥是大数据?问啥要学大数据?

 

在我看来大数据就很多的数据,超级多,咱们日常生活中的数据会和历史一样,越来越多!!!

大数据有四个特点(4V):大 多样 快 价值
学完大数据我们可以做很多事,比如可以对许多单词进行次数查询(本节最后的实验),可以对股市进行分析,所有的学习都是为了赚大钱!
(因为是在Linux下操作,所以用到的全是Linux命令,不懂可以百度,这篇文章有一些简单命令。常用Linux命令 常用VI命令
 
第一步 安装虚拟机配置环境
1.下载虚拟机,可以用自己的,没有的可以下载这个虚拟机 passowrd:u8lt
2.导入镜像 ,可以用这个镜像 password:iqww (不会创建虚拟机的可以看看这个,不过没有这个复杂,因为导入就能用)
3.更换主机名,vi /etc/sysconfig/network 改HOSTNAME=hadoop01 (你这想改啥改啥,主要是为了清晰,否则后面容易懵)
注:在这里打开终端

 

 4.查看网段,从编辑-虚拟网络编辑器查看,改虚拟机网段,我的是192.168.189.128-254(这个你根据自己的虚拟机配置就行,不用和我一样,只要记住189.128这个段就行)

 

 

 5.添加映射关系,输入:vim /etc/hosts

打开文件后下面添加 192.168.189.128 hadoop01 (红色部分就是你们上面知道的IP)(这里必须是hadoop01,为了方便后面直接映射不用敲IP)

6.在配置文件中将IP配置成静态IP 输入: vim /etc/sysconfig/network-scripts/ifcfg-eth0 (物理地址也要一样哦!不知道IP的可以输入:ifconfig 查看一下)

 

 7.重启虚拟机 输入:reboot (重启后输入 ping www.baidu.com 能通就说明没问题)

第二步 克隆第一台虚拟机,完成第二第三虚拟机的配置

1.首先把第一台虚拟机关闭,在右击虚拟机选项卡,管理-克隆 即可(克隆两台 一台hadoop02 一台hadoop03)

2.克隆完事后,操作和第一部基本相同唯一不同的地方是克隆完的虚拟机有两块网卡,我们把其中一个网卡注释就好(一定牢记!通过这里的物理地址一定要和配置文件中的物理地址相同) 输入:vi /etc/udev/rules.d/70-persistent-net.rules 在第一块网卡前加# 将第二块网卡改为eth0

 

 3.当三台机器全部配置完之后,再次在hosts文件中加入映射达到能够通过名称互相访问的目的 输入:vim /etc/hosts (三台都要如此设置)(改完之后记得reboot重启)

 

 第三步 使三台虚拟机能够通过SHELL免密登录

1.查看SSH是否安装 rmp -qa | grep ssh (如果没有安装,输入sudo apt-get install openssh-server)
2.查看SSH是否启动 ps -e | grep sshd (如果没有启动,输入sudo /etc/init.d/ssh start)
3.该虚拟机生成密钥 ssh-keygen -t rsa(连续按下四次回车就可以了)

4.将密钥复制到另外一台虚拟机文件夹中并完成免密登录 输入:ssh-copy-id -i ~/.ssh/id_rsa.pub root@hadoop02 (同样把秘钥给hadoop03)
(输入完后直接下一步,如果下一步失败再来试试改这个 修改/etc/ssh/ssh_config中的StrictHostKeyCheck ask )
5.之后输入 ssh hadoop02就可以正常访问第二台虚拟机啦

注:可能你不太理解这是怎么回事,我这样解释一下,免密登录是为了后面进行集群操作时方便,生成秘钥就像是生成一个钥匙,这个钥匙是公钥,公钥可以打开所有门,之后把这个钥匙配两把,一把放在hadoop02的那里,一把放在hadoop03的那里,这样hadoop01可以对hadoop02和hadoop03进行访问。

 

6.在第二台和第三台虚拟机上进行同样操作 是三台虚拟机能够进行免密互相访问。

 

 

 

 第三步 安装JDK

 

1.下载软件Xshell,电脑上有了的不用下载,没有的可以下载这个 Xshell password:8w83

2.下载jdk包 jdk包 password:938z

3.上传jdk-8u162-linux-x64.tar.gz到Linux上

打开Xshell,新建会话

 

 

 

 

 输入用户名密码后完成会话建立,将文件拖到文件夹/export/servers就行了

 

 注意:如果错误或者失败,可能是文件夹权限不够导致的,去指定文件夹下输入 chmod 777 * 再次拖动即可

4.在指定文件夹下解压jar包 输入:tar -zxvf jdk-8u162-linux-x64.tar.gz -C /export/servers/

5.设置环境变量,在/etc/profile文件最后追加相关内容 输入:vi /etc/profile

追加: export JAVA_HOME=/export/servers/jdk1.8.0_162
    export PATH=$PATH:$JAVA_HOME/bin

 

6.刷新环境变量 输入:source /etc/profile

7.测试是否成功 输入:java -version(如果显示出版本号即为成功)

8.将这个jar包给hadoop02和hadoop03分发过去 (分发比较省事,这样就不用去02和03上再配一遍了)

输入: scp -r /export/servers/jdk1.8.0_162/ hadoop02:/export/servers/
    scp -r /export/servers/jdk1.8.0_162/ hadoop03:/export/servers/

第四步 Hadoop集群搭建

1.下载hadoop-2.7.4.tar.gz 安装包 hadoop-2.7.4.tar.gz 安装包 password:0tnt

2.将下载的hadoop-2.7.4.tar.gz 安装包上传到主节点hadoop01 的 /export/software目录下(步骤同上一步,用Xshell传就行)

3.将文件解压到/export/servers 目录 输入:tar -zxvf hadoop-2.7.4.tar.gz -C /export/servers/(注意在指定文件夹下解压,否则会出错)

4.配置Hadoop环境变量 输入:vi /etc/profile

在后面追加: export HADOOP_HOME=/export/servers/hadoop-2.7.4

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

 

5.验证安装是否成功 输入:hadoop version (显示版本即为成功)

 第五步 Hadoop集群搭建

1.配置Hadoop集群主节点hadoop01 修改hadoop-env.sh文件,去掉注释。修改如下: export JAVA_HOME=/export/servers/jdk

2.修改core-site.xml文件

<configuration>
      <property>
              <name>fs.defaultFS</name>
<value>hdfs://hadoop01:9000</value>
      </property>
      <property>
              <name>hadoop.tmp.dir</name>
              <value>/export/servers/hadoop-2.7.4/tmp</value>
      </property>
</configuration>

3.修改hdfs-site.xml文件

<configuration>
        <property>
              <name>dfs.replication</name>
              <value>3</value>
      </property>
      <property>
              <name>dfs.namenode.secondary.http-address</name>
              <value>hadoop02:50090</value>
      </property>
</configuration>

4.修改mapred-site.xml文件

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

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

5.修改yarn-site.xml文件

<configuration>

<!-- Site specific YARN configuration properties -->
<property>
<name>yarn.resourcemanager.hostname</name>
<value>hadoop01</value>
</property>

<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<!--定义nodemanager上要提供给正在运行的容器的全部可用资源大小-->
      <name>yarn.nodemanager.resource.memory-mb</name>
      <value>2048</value>
  </property>
  <property>
      <name>yarn.scheduler.maximum-allocation-mb</name>
      <value>2048</value>
  </property>
<!--资源管理器中分配给每个容器请求的最小内存限制-->
  <property>
      <name>yarn.scheduler.minimum-allocation-mb</name>
      <value>2048</value>
  </property>
  <property>
<!--nodemanager可以分配的cpu核数-->
      <name> yarn.nodemanager.resource.cpu-vcores </name>
      <value>1</value>
  </property>

</configuration>

6.修改slaves文件。打开该配置文件,先删除里面的内容(默认localhost),然后配置如下内容。

hadoop01
hadoop02
hadoop03

7.将集群主节点的配置文件分发到其他子节点

完成Hadoop集群主节点hadoop01的配置后,还需要将系统环境配置文件、JDK安装目录和Hadoop安装目录分发到其他子节点hadoop02和hadoop03上,具体指令:

$ scp /etc/profile hadoop02:/etc/profile
$ scp /etc/profile hadoop03:/etc/profile
$ scp -r /export/servers/hadoop-2.7.4/ hadoop02:/export/servers/
$ scp -r /export/servers/hadoop-2.7.4/ hadoop03:/export/servers/

执行完成后,分别在hadoop02和hadoop03上执行指令source /etc/profile 使配置文件生效。

第六步 Hadoop集群测试

 

下面把三台虚拟机进行配置,昨天已经将配置文件修改

 

有两种模式可以选择

 

1.单节点逐个开启(没有懂没关系!下面有图,对照着,看那个虚拟机需要什么服务就开什么服务)

 

在主节点上执行指令启动/关闭HDFS NameNode进程;

 

hadoop-daemon.sh start namenode

 

在每个从节点上执行指令启动/关闭HDFS DataNode进程;

 

hadoop-daemon.sh start datanode

 

在主节点上执行指令启动/关闭YARN ResourceManager进程;

 

yarn-daemon.sh start resourcemanager

 

在每个从节点上执行指令启动/关闭YARN nodemanager进程;

 

yarn-daemon.sh start nodemanager

 

在节点hadoop02执行指令启动/关闭SecondaryNameNode进程。

 

hadoop-daemon.sh start secondarynamenode

 

2.脚本一键开启(脚本这个昨天我试着做,没有成功,今天我逐个开启)

 

实验现象:(端口不用一样,进程对应开启就行)
Hadoop01
0
Hadoop02
0
Hadoop03
0
集群开启后默认开启50070和8088这两个端口
0
为了后续方便查看,请在本地windows系统的C:\\Windows\\System32\\drivers\\etc 的hosts文件中添加集群服务的ip映射,具体内容如下:
0
如果发现权限不够,修改hosts安全中的权限即可(改完记得把权限改回去)
 
0
为了能够顺利进行,我们把每个节点的防火墙关闭(不关闭有时候会出现各种错误。。。。)
关闭防火墙 service iptables stop
关闭开机自启动防火墙 chkconfig iptables off
0
现在就来看实验现象,冲冲冲!!!
输入:http://hadoop01:50070 可以看到HDFS集群状态(记得是http!!!)
0
输入:http://hadoop01:8088 可以查看YARN集群状态(单词看不懂没关系,需要啥查就完事了)
0
这些数值都是我们在之前的配置文件中输入好的
0
集群都搭建好了,开始初次体验HADOOP的魅力~
先来看看大数据检查单词
0
本来想体现大数据的魅力我在桌面建一个大的txt传到虚拟机中,懒了,直接在虚拟机中复制粘贴吧
我们在/export/data中建立了108个father和一个son的txt(主节点上)
0
0
下面我们在HDFS上建立一个文件夹并把刚才的txt文件传过去
创建文件夹 hadoop fs -mkdir -p /wordcount/input
传输文件到文件夹 hadoop fs -put /export/data/words.txt /wordcount/input
运行hadoop-mapreduce-examples-2.7.4.jar包,实现词频统计。
进入Hadoop解压包中的/share/hadoop/mapreduce/目录下,使用ll指令查看
在jar包位置,执行如下指令:
hadoop jar hadoop-mapreduce-example-2.7.4.jar wordcount /wordcount/input/ /wordcount/output/
0
运行成功后,我们就来检验一下
查看输出目录情况 hadoop fs -ls /wordcount/output
查看检测的情况 hadoop fs -cat /wordcount/output/part-r-00000
0
还可以在Windows下查看下载
0
噔噔蹬蹬!108个爸爸和1个儿子的故事。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

以上是关于Hadoop环境搭建的主要内容,如果未能解决你的问题,请参考以下文章

Eclipse搭建Hadoop开发环境二三事

Eclipse搭建Hadoop开发环境二三事

在Eclipse下搭建Hadoop开发环境

在Eclipse下搭建Hadoop开发环境

Hadoop运行环境搭建

入门、快速搭建Docker分布式项目环境