文档章节

docker部署hdoop

centrald
 centrald
发布于 2016/04/21 01:18
字数 1168
阅读 22
收藏 0

docker基本用法:

2>下载镜像

docker pull ubuntu

1>启动镜像

docker run -ti ubuntu

2>列出所有镜像

docker images

3>列出所有的容器

docker ps -a

4>列出正在运行的容器

docker ps

5>启动容器

docker start  容器ID

6>进入容器

docker exec -ti 容器ID  /bin/bash

7>停止运行中的容器

docker stop 容器ID

8>删除容器

docker rm 容器ID

9>删除镜像

docker rmi 镜像ID

10>提交镜像

docker commit -m "提交信息" 容器ID 镜像:标签

eg:docker commit -m "java install" c024e9ecb174 ubuntu:java

11>镜像导出

 docker save -o ubuntu_hadoop.tar.gz ubuntu:hadoop
12>镜像导入

 

安装Docker

1>apt-get install apt-transport-https

2> apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9

3>bash -c "echo deb https://get.docker.io/ubuntu docker main > /etc/apt/sources.list.d/docker.list"

4>apt-get update

5>apt-get install lxc-docker -y

安装JAVA环境

1>使用Docker镜像创建容器

docker run -ti ubuntu

2>更新数据源(使用网易的源)

# vim sources.list

 

deb http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-security main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-updates main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-proposed main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ trusty-backports main restricted universe multiverse

# apt-get update

问题

  1. docker容器ping不同外网

    原因:默认DNS为谷歌服务器

    解决:#vi /etc/resolv.conf

    nameserver 223.5.5.5
    nameserver  223.6.6.6
     

3>.JAVA安装

    1>apt-get install software-properties-common python-software-properties
    2>add-apt-repository ppa:webupd8team/java
    3>apt-get update
    4>apt-get install oracle-java7-installer

    问题:java安装失败

     解决:下载tar包,进行安装配置

      一.让docker容器支持ssh服务

  1. 安装openssh-server

            root@d010c842a739:/# apt-get install openssh-server

        2.要正常启动SSH服务,需要/var/run/sshd存在,

            创建目录

            (1)root@d010c842a739:/# mkdir -p /var/run/sshd

            (2)启动sshd服务

            root@d010c842a739:/# /usr/sbin/sshd -D &
             [1] 593

        3.查看监听端口,22端口处于监听状态

        root@d010c842a739:/# netstat -antlpeu
        Active Internet connections (servers and established)
        Proto Recv-Q Send-Q Local Address           Foreign Address         State       User       Inode       PID/Program name
        tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      0          1114522     593/sshd        
        tcp6       0      0 :::22                   :::*                    LISTEN      0          1114524     593/sshd        
        4.修改SSH服务的安全登录配置,取消pam登录限制

        (1)root@d010c842a739:/# vim /etc/pam.d/sshd

        (2)注释pam限制

        #session    required     pam_loginuid.so

        5.创建ssh自动登录密钥

        (1)mkdir /root/.ssh

        (2) cd /root/.ssh/

        (3)将公钥拷贝到auth中

        vim authorized_keys

         (1>.ssh-keygen -t rsa 2.> vim id_rsa.pub)

        6.添加开机自启动ssh服务

        # vim ~/.bashrc

            #ssh autorun
            /usr/sbin/sshd  

        二.将jdk-7u80-linux-x64.tar.gz配置到docker中

            环境变量:

            1.#vim /etc/profile

            JAVA_HOME=/usr/local/jdk1.7
            export JAVA_HOME
            PATH=$JAVA_HOME/bin:$PATH
            export PATH
            2.使环境变量生效

            #source /etc/profile

            3.查看java版本,则配置成功

            # java -version
            java version "1.7.0_80"
4>将装好java环境的容器打包为镜像

# docker commit -m "java install" c024e9ecb174 ubuntu:java

配置hadoop环境

1>使用打包好的镜像创建容器

docker run -ti ubuntu:java

2>下载安装hadoop

安装目录:

/usr/local/apache/hadoop

3>配置hadoop环境变量

#vim /etc/profile

export HADOOP_HOME=/usr/local/apache/hadoop
export HADOOP_CONFIG_HOME=$HADOOP_HOME/etc/hadoop
export PATH=.:$HADOOP_HOME/bin:$PATH
export PATH=.:$HADOOP_HOME/sbin:$PATH

4>使环境变量生效

source /etc/profile

5>配置hadoop

1)创建三个目录

  • root@0c6acf88bac7:/usr/local/apache/hadoop# mkdir tmp
    root@0c6acf88bac7:/usr/local/apache/hadoop# mkdir namenode
    root@0c6acf88bac7:/usr/local/apache/hadoop# mkdir datanode

2)修改配置文件

1>root@0c6acf88bac7:/usr/local/apache/hadoop/etc/hadoop# vim core-site.xml

<configuration>
        <property>
                <name>fs.default.name</name>
                <value>hdfs://master:9000</value>
                <final>true</final>
                <description>master node</description>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>/usr/local/apache/hadoop/tmp</value>
                <description>Hadoop temporary directories</description>
        </property>
</configuration>

2>root@0c6acf88bac7:/usr/local/apache/hadoop/etc/hadoop# vim hdfs-site.xml

<configuration>
<property>
        <name>dfs.replication</name>
        <value>2</value>
        <final>true</final>
        <description>datanode count</description>
</property>
<property>
        <name>dfs.namenode.name.dir</name>
        <value>/usr/local/apache/hadoop/namenode</value>
        <final>true</final>
</property>
<property>
        <name>dfs.datanode.data.dir</name>
        <value>/usr/local/apache/hadoop/datanode</value>
        <final>true</final>
</property>
</configuration>

3>root@0c6acf88bac7:/usr/local/apache/hadoop/etc/hadoop# vim mapred-site.xml

<configuration>
<property>
        <name>mapred.job.tracker</name>
        <value>master:9001</value>
</property>
</configuration>

4>root@0c6acf88bac7:/usr/local/apache/hadoop/etc/hadoop# vim hadoop-env.sh

export JAVA_HOME=/usr/local/jdk1.7

6>格式化namenode

root@0c6acf88bac7:/usr/local/apache/hadoop/etc/hadoop# hadoop namenode -format

7>.将安装好hdoop环境的容器提交为镜像

docker commit -m "docker install" 容器ID ubuntu:hadoop

docker commit -m "hadoop install" 8ef06706f88d ubuntu:hadoop

 

1>配置IP与地址映射

vim /etc/hosts

172.17.0.2 master
172.17.0.3 slave1
172.17.0.4 slave2
 

2>

root@master:~# source /etc/profile
    javaapi下载

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.URI;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;

public class app {
	public static void main(String[] args) throws Exception {
		FileSystem fileSystem = FileSystem.get(new URI("hdfs://115.28.140.177:9000"), new Configuration());
		InputStream in = fileSystem.open(new Path("/dir1/hadoop-1.2.1.tar.gz"));
		OutputStream out = new FileOutputStream("e://hadoop.tar.gz");
		IOUtils.copyBytes(in, out, 4096,true);
	}
}

 

© 著作权归作者所有

共有 人打赏支持
上一篇: hadoop(二)
下一篇: spring
centrald
粉丝 13
博文 112
码字总数 120823
作品 0
杭州
程序员
私信 提问
用java读取hdfs的.lzo_deflate文件报错

linux环境没有问题,hadoop环境、配置也没有问题,并且通过hdoop fs -text 指令能正常打开该压缩文件。但是用java读取就报错了,请大神帮忙看看,谢谢 代码如下: public static void main(...

曾庆之
2016/09/10
542
3
利用Docker Registry服务实现多数据中心的部署优化

本文来源:Ghostcloud翻译(https://www.ghostcloud.cn/) 本文主要讲解了Docker在跨远程数据中心的部署中所起的作用,以及如何通过Docker技术实现多个数据中心的部署优化。 在生产环境中用D...

精灵云
2016/06/04
0
0
Linux下从零开始部署和使用Jaeger

原文链接:https://imscc.io/posts/trace/installjaegeronlinux/ 原文作者: 聪少 最近在折腾Jaeger,Jaeger官网都是介绍如何通过Docker部署,二进制部署文档基本没有(已咨询过作者,作者说...

abv123456789
2018/05/07
0
0
Docker 三剑客之 Docker Swarm

上一篇:Docker 三剑客之 Docker Compose 阅读目录: Docker Machine 创建 Docker 主机 Docker Swarm 配置集群节点 Docker Service 部署单个集群服务 Docker Stack 部署多个集群服务,以及 ...

那谁爸爸
2018/01/08
0
0
Hbase 1.0.1单机版安装

1.首先从官网上下载http://mirror.bit.edu.cn/apache/hbase/hbase-1.0.1/hbase-1.0.1-bin.tar.gz 安装包 2.解压缩到安装目录,tar -xvf hbase-1.0.1-bin.tar.gz 3.修改conf/hbase-site.xml <......

木偶
2015/05/11
0
0

没有更多内容

加载失败,请刷新页面

加载更多

《傲慢与偏见》的读书笔记与读后感作文2400字

《傲慢与偏见》的读书笔记与读后感作文2400字: 作者:孙苑馨;笔者按:读书这个习惯是我爸妈养出来的。小时候父母赚的钱除了吃饭穿衣剩下的就是买书了,他们除了买各种新鲜出版的文艺派图书...

原创小博客
13分钟前
0
0
oozie job 的挂了监控报警或重启

oozie Coordinator 的job 和actioni状态很多,但好像不支持设置某状态如failed后30分钟后自动重新拉启,因他的条件只有几种:触发条件可以是一个时间频率、一个dataset实例是否可用,或者可能...

hblt-j
31分钟前
1
0
python精简笔记-[6]-[if,for,while]语句

1.if 条件判断 语法: if 判断条件: 执行语句……elif 判断条件:    执行语句……elif 判断条件:    执行语句……else: 执行语句…… 实例1: n = input("请输...

平头哥-Enjoystudy
34分钟前
0
0
RxJava 是如何实现线程切换的(上)

前言 通过前一篇的从观察者模式出发,聊聊RxJava,我们大致理解了RxJava的实现原理,在RxJava中可以非常方便的实现不同线程间的切换。subscribeOn 用于指定上游线程,observeOn 用于指定下游线...

亭子happy
今天
2
0
想晋级高级工程师只知道表面是不够的!Git内部原理介绍

本文由云+社区发表 作者:腾讯工蜂用户:王二卫 从不一样的视角了解git,以便更好的使用git 一、git & git 版本库认识 git 是一个内容寻址的文件系统,其核心部分是一个简单的键值对数据库(...

腾讯云加社区
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部