`

一.hadoop 使用Docker安装配置

 
阅读更多

 

一.安装hadoop 

   (这里需要有一定的docker知识)

   1.安装镜像

      我们抛弃了传统的vm方式,使用docker来安装部署hadoop.首先要准备一个镜像,可以使用Dockerfile构建一个合适自己的镜像,或者可以在共有仓库中找一个具有hadoop环境的镜像来使用也可以。由于我是配置的阿里云的加速器,所以在阿里云的仓库中找了一个具有hadoop环境的镜像。hadoop镜像地址

      使用命令拉到本地

      

docker pull registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop

   下载完成之后,通过docker images 可以查看到该镜像:

   

registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop   latest              44c31aee79de        24 months ago       927MB

 

 

  2.创建容器

    有了镜像之后,我们根据该镜像创建三个容器,分别是一个Master用来作为hadoop集群的namenode,剩下两个Slave用来作为datanode。

可以使用命令:

 

docker run -i -t --name Master -h Master registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop /bin/bash

 

 

命令中的-h为该容器设置了主机名,这里设置为Master,否则创建容器之后是一串随机的数字和字母不好辨认使用。–name指定了容器的名字,也是为了方便区分使用。

建立好Master节点的容器之后,再分别使用两次该命令,创建两个Slave节点。稍微改变其中的参数即可:

例如创建Slave1节点:

 

docker run -i -t --name Slave1 -h Slave1 registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop /bin/bash

 

 

这样集群的基本环境就准备好了。

 

  3.配置ssh  (为了多台机器无密码互相访问)

   首先在master将SSH运行起来。

   

/etc/init.d/ssh start

 然后生成秘钥,保存到authorized_keys中。

root@Master:/# ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):  
/root/.ssh/id_rsa already exists.
Overwrite (y/n)? y
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
47:43:2d:03:fa:93:ce:00:8a:3f:4d:bb:67:09:65:df root@Master
The key's randomart image is:
+---[RSA 2048]----+
|        ....     |
|       . .o .    |
|    . .   oo     |
| . . .o. o .     |
|. . .o..S..      |
| . o.. +.oE      |
|  o o. .o        |
|   . .+          |
|    .o           |
+-----------------+
root@Master:/# cd 
root@Master:~# cd .ssh/
root@Master:~/.ssh# cat id_rsa
id_rsa      id_rsa.pub  
root@Master:~/.ssh# cat id_rsa
id_rsa      id_rsa.pub  
root@Master:~/.ssh# cat id_rsa.pub > authorized_keys 
root@Master:~/.ssh# cat authorized_keys 
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDQ2SQCcb1Jxf4hpVlbWkCpywmR4r0zeAuzQ6AUBFDHqfXgMQj/ku5s0xtbjjQWlKShvAiV1wLSwuAHfzKfKG0RFhcAXJDTBrDQnN9lBKeEcD1XlBHwtm8N+37bQWSXDLimx1UsNWkUy3rPrB55kV8ofTztI+sZMoOcS34Scib3hjmrbAMC3O0naJkBSaTch7KyX9q3kzxmMixShgBdxPAp6qLIzluIxtI/GXV7M9lfY1+KOWfD01jzHH2sAWpeIrefmEtLwNlv4YRuk0uHRaXOmnfyNj2K4WhTEhJpYdK9KJ3jNXiZZNGKZt3UGDSowPMHfmmUC+Jr3imr3YyP9VFh root@Master

 接着在两个Slave上也执行同样的操作

 

 接着使用ip addr查看ip

root@Master:~/.ssh# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
2: tunl0@NONE: <NOARP> mtu 1480 qdisc noop state DOWN group default qlen 1
    link/ipip 0.0.0.0 brd 0.0.0.0
3: ip6tnl0@NONE: <NOARP> mtu 1452 qdisc noop state DOWN group default qlen 1
    link/tunnel6 :: brd ::
6: eth0@if7: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever

 然后在/etc/hosts里面把所有机器的ip都配置好

 

   

172.17.0.2      Master
172.17.0.3      Slave1
172.17.0.4      Slave2

 把master的公钥copy到从节点

 

 . 

ssh-copy-id -i Slave2
ssh-copy-id -i Slave1

 接着执行ssh Slave1就可以成功了,exit退出ssh

 

 

  4.配置hadoop

   

    hadoop-env.sh:修改有关java的环境(镜像里面已经帮我们配置好了)

 

export JAVA_HOME=/opt/tools/jdk1.8.0_77

   

 

   core-site.xml(定位文件系统的nameNode)

 

<configuration>
  <property>
    <name>fs.defaultFS</name>
    <value>hdfs://Master:9000</value>
  </property>
<property>
  <name>hadoop.tmp.dir</name>
  <value>/hadoop/tmp</value>
</property>
</configuration>

 

 

   mapred-site.xml(定位JobTraker所在主节点)

   

<configuration>
  <property>
    <name>mapred.job.tracker</name>
    <value>Master:9001</value>
  </property>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
  </property>
</configuration>

 

   hdfs-site.xml(hdfs配置)

   

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>1</value>
  </property>
  <property>
    <name>dfs.datanode.data.dir</name>
    <value>/hadoop/data</value>
  </property>
  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/hadoop/name</value>
  </property>
</configuration>

  

   yarn-site.xml

<configuration>
 <property>
<name>yarn.resourcemanager.address</name>
 <value>Master:8032</value>
</property>
<property>
    <name>yarn.resourcemanager.scheduler.address</name>
    <value>Master:8030</value> </property> <property>
    <name>yarn.resourcemanager.resource-tracker.address</name>
    <value>Master:8031</value>
</property>
<property>
<name>yarn.resourcemanager.admin.address</name>
<value>Master:8033</value>
</property>
<property>
    <name>yarn.resourcemanager.webapp.address</name>
    <value>Master:8088</value>
</property>
 <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>
 <property>
 <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
 <value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>

   

    slaves文件 

    把各个节点都加进去

    

Slave1
Slave2

 

 

   然后将这些文件通过scp发送到各个Slave节点上覆盖原来的文件:

 

    

scp core-site.xml hadoop-env.sh hdfs-site.xml mapred-site.xml yarn-site.xml Slave1:/opt/tools/hadoop/etc/hadoop/

 

  5.运行hadoop

      首先要格式化hadoop

      

hadoop namenode -format

     然后启动hadoop并用jps查看进程

 。  

root@Master:/opt/tools/hadoop/sbin# start-all.sh
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh
Starting namenodes on [Master]
Master: starting namenode, logging to /opt/tools/hadoop-2.7.2/logs/hadoop-root-namenode-Master.out
Slave2: starting datanode, logging to /opt/tools/hadoop-2.7.2/logs/hadoop-root-datanode-Slave2.out
Slave1: starting datanode, logging to /opt/tools/hadoop-2.7.2/logs/hadoop-root-datanode-Slave1.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /opt/tools/hadoop-2.7.2/logs/hadoop-root-secondarynamenode-Master.out
starting yarn daemons
starting resourcemanager, logging to /opt/tools/hadoop/logs/yarn--resourcemanager-Master.out
Slave2: starting nodemanager, logging to /opt/tools/hadoop-2.7.2/logs/yarn-root-nodemanager-Slave2.out
Slave1: starting nodemanager, logging to /opt/tools/hadoop-2.7.2/logs/yarn-root-nodemanager-Slave1.out
root@Master:/opt/tools/hadoop/sbin# jps
2097 ResourceManager
1747 NameNode
1941 SecondaryNameNode
873 NodeManager
2346 Jps
463 DataNode

  

     使用命令  hadoop dfsadmin -report  查看各个节点的状态

    

DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.

Configured Capacity: 188176871424 (175.25 GB)
Present Capacity: 168504856576 (156.93 GB)
DFS Remaining: 168504778752 (156.93 GB)
DFS Used: 77824 (76 KB)
DFS Used%: 0.00%
Under replicated blocks: 0
Blocks with corrupt replicas: 0
Missing blocks: 0
Missing blocks (with replication factor 1): 0

-------------------------------------------------
Live datanodes (3):

Name: 172.17.0.2:50010 (Master)
Hostname: Master
Decommission Status : Normal
Configured Capacity: 62725623808 (58.42 GB)
DFS Used: 28672 (28 KB)
Non DFS Used: 6557335552 (6.11 GB)
DFS Remaining: 56168259584 (52.31 GB)
DFS Used%: 0.00%
DFS Remaining%: 89.55%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Sat Apr 14 14:35:46 UTC 2018


Name: 172.17.0.4:50010 (Slave2)
Hostname: Slave2
Decommission Status : Normal
Configured Capacity: 62725623808 (58.42 GB)
DFS Used: 24576 (24 KB)
Non DFS Used: 6557339648 (6.11 GB)
DFS Remaining: 56168259584 (52.31 GB)
DFS Used%: 0.00%
DFS Remaining%: 89.55%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Sat Apr 14 14:35:48 UTC 2018


Name: 172.17.0.3:50010 (Slave1)
Hostname: Slave1
Decommission Status : Normal
Configured Capacity: 62725623808 (58.42 GB)
DFS Used: 24576 (24 KB)
Non DFS Used: 6557339648 (6.11 GB)
DFS Remaining: 56168259584 (52.31 GB)
DFS Used%: 0.00%
DFS Remaining%: 89.55%
Configured Cache Capacity: 0 (0 B)
Cache Used: 0 (0 B)
Cache Remaining: 0 (0 B)
Cache Used%: 100.00%
Cache Remaining%: 0.00%
Xceivers: 1
Last contact: Sat Apr 14 14:35:48 UTC 2018

 

    

分享到:
评论

相关推荐

    docker配置hadoop

    001

    docker一键安装hadoop集群

    4. **启动集群**:描述如何使用 `start-container.sh` 或 `start-file.sh` 启动 Docker 容器,并将它们配置为 Hadoop 集群。 5. **配置**:详细说明如何根据需求修改 `config` 目录中的配置文件,例如 core-site.xml...

    适合hadoop2.9.* 以及 hadoop2.7.* 的winutils.exe_hadoop.dll 配置文件

    - 考虑使用Docker或VMware等虚拟化技术在Windows上创建一个Linux环境,以获得更原生的Hadoop体验。 总之,`winutils.exe` 和 `hadoop.dll` 对于在Windows上运行Hadoop至关重要。通过正确配置和使用这些文件,用户...

    大数据实验报告,Hadoop安装与配置,Docker

    在本大数据实验报告中,我们将探讨如何通过Docker来安装和配置Hadoop环境,以便验证Hadoop对分布式文件系统(HDFS)和MapReduce的支持。实验的目标是深入了解Hadoop的配置、启动和验证过程,以及在分布式环境中...

    Docker hadoop zookeeper hbase 配置文件

    本配置文件集专注于利用 Docker 搭建一个 HBase 集群,其中涉及到的关键知识点包括 Docker 的基本操作、Hadoop 的分布式文件系统(HDFS)、Zookeeper 的协调服务以及 HBase 的数据存储模型。 首先,了解 Docker 是...

    基于Docker搭建Hadoop集群(2).docx

    首先,我们需要创建一个新的Docker容器,然后安装Hadoop集群所需的组件。接下来,我们可以使用Hadoop的命令来管理Hadoop集群。 在部署Hadoop集群时,我们需要注意一些重要的配置文件,例如hadoop-env.sh、core-site...

    hadoop-2.6.4 windows版本,bin目录包括hadoop.dll winutils.exe hadoop-2.6.0\bin

    或者,用户可以选择使用预装有Hadoop的Docker容器或者在Windows Subsystem for Linux (WSL)中部署Hadoop,以简化配置过程。 总的来说,这个hadoop-2.6.4的Windows版本提供了一个在Windows系统上运行Hadoop的基础...

    Hadoop hbase hive sqoop集群环境安装配置及使用文档

    在本文档中,我们将详细介绍如何搭建一个大数据集群环境,包括 Hadoop、HBase、Hive 和 Sqoop 的安装配置及使用。该文档将分为四部分:Hadoop 集群环境搭建、HBase 集群环境搭建、Hive 集群环境搭建和 Sqoop 集成...

    HadoopHbaseZookeeper集群配置

    下载后,需要按照特定的顺序和配置进行安装,例如先安装Hadoop,再安装Hbase,最后配置Zookeeper。 8. **Hadoop集群配置**:Hadoop的配置文件(如`core-site.xml`, `hdfs-site.xml`, `mapred-site.xml`, `yarn-site...

    hadoop的操作有图片

    - **运行WordCount示例**:使用**`bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar wordcount`**命令运行Hadoop自带的WordCount示例程序。 ### 7. 安装Java与Hadoop - **安装JDK**:...

    Docker(Hadoop-3.3.1+HBase-2.4.16+Zookeeper-3.7.1+Hive-3.1.3)配置文件

    Docker(Hadoop_3.3.1+HBase_2.4.16+Zookeeper_3.7.1+Hive_3.1.3 )配置文件 搭建集群环境

    hadoop on docker

    本人不了解go语言,对docker 也只是初步的学习了基本使用,因为想学习点hadoop东西,用实验室电脑配置太低,用虚拟机搭建hadoop集群太卡,所以用docker 尝试搭建一个3个节点的最简单的集群:1个namenode(192.168.0.2...

    hadoop-docker:hadoop docker

    hadoop-docker前言本项目使用docker-compose在单机上快速构建hadoop进行,方便基于hadoop的开发与测试。快速启动1.准备本地需要提前安装 && 2.创建 hadoop容器将分为主机和从属两个类型,其中master容器中运行...

    Docker搭建Hadoop集群

    里面包含Hadoop2.7,jdk1.8以及写好的Dockerfile文件,还有配置文件

    大数据hadoop winutils.exe

    4. **使用Docker或WSL**:如果遇到较多Windows上的兼容性问题,可以考虑使用Docker容器或者Windows Subsystem for Linux (WSL) 来模拟Linux环境,这将更方便地运行和调试Hadoop。 5. **安装cygwin或Msys2**:这两个...

    win10下搭建Hadoop环境(jdk+mysql+hadoop+scala+hive+spark) 3.docx

    Hadoop 2.8.4的安装包括下载解压、替换`hadooponwindows-master`文件、配置环境变量以及配置Hadoop的配置文件如`core-site.xml`、`hdfs-site.xml`、`yarn-site.xml`和`mapred-site.xml`。在这些文件中指定HDFS的名称...

    Ubuntu中Hadoop安装配置.rar

    hadoop安装与配置 本文基于Docker在ubuntu容器搭建hadoop集群,并进行配置。 查找ubuntu容器 sudo docker search ubuntu 下载ubuntu16.04版本镜像 sudo docker pull ubuntu:16.04 如果需要查看已经下载的镜像 sudo...

    Ubuntu中Hadoop安装配置.docx

    hadoop安装与配置 本文基于Docker在ubuntu容器搭建hadoop集群,并进行配置。 查找ubuntu容器 sudo docker search ubuntu 下载ubuntu16.04版本镜像 sudo docker pull ubuntu:16.04 如果需要查看已经下载的镜像 sudo...

Global site tag (gtag.js) - Google Analytics