Hadoop在docker上的配置

Hadoop在docker上的配置

标签: hadoop,docker
参看使用docker搭建hadoop集群

目录结构

安装docker

参见docker官网文档

1 获取镜像

这里使用阿里云中的一个hadoop环境镜像
docker pull registry.cn-hangzhou.aliyuncs.com/kaibb/hadoop
下载完成后通过 docker images 查看镜像

2 启动容器

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

这里的-h和–name分别指定了主机名和容器名

3 配置无秘ssh环境

查看镜像的环境变量
echo ${PATH}
java环境已经在镜像中被配置完成
配置不需要密码的SSH访问

1,运行ssh

/etc/init.d/ssh start

2,生成秘钥保存秘钥

ssh-keygen -t rsa    (yes,enter,enter...然后密码为开机密码)
cat id_rsa.pub > authorized_keys
cat authorzied_keys 

3,在各个节点分别生成秘钥,实现免除秘钥访问需要每个节点都包含三个节点的keygen

使用指令
scp id_rsa.pub m1:/root/.ssh/id_rsa.pub.s1
scp id_rsa.pub m1:/root/.ssh/id_rsa.pub.s2
可将秘钥传至主节点其中m1为节点的ip地址,使用ip addr命令可查
最后从master节点中讲authorized_keys 复制到slave1和2
scp authorized_keys s1:/root/.ssh/
配置成功后,ssh 节点ip即可互相登录
编辑hosts文件,即可使用主机名登录
/etc/hosts

4,配置hadoop

hadoop-env.sh:修改有关java的环境
export JAVA_HOME=/opt/tools/jdk1.8.0_77
core-site.xml

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

hdfs-site.xml

<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>

mapred-site.xml

<configuration>
  <property>
    <name>mapreduce.framework.name</name>
    <value>yarn</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>

这些文件都位于节点的
/opt/tools/hadoop/etc/hadoop/

5,运行hadoop

在/opt/tools/hadoop/sbin下运行脚本
./start-all.sh
分别启动三个节点
使用jps查看相关进程是否启动

6,本地文件和docker容器的互传

首先需要取得容器的全称ID和名称

docker ps -a
docker inspect -f '{{.Id}}'  [-name] [-shortid]

本机传容器

docker  cp  本地文件路径 ID全称:容器路径

容器传本机

docker cp ID全称:容器路径 本地路径

7,hadoop运行jar包

1)将训练数据放入/input里面

hdfs dfs -put ~/train/* /input

2)跑程序

hadoop jar /opt/project_jars/oops.jar org.java.hadoop.CountryNumber -libjars /opt/project_jars/oops.jar /input /output/wxdt1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值