成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Docker中Hadoop環(huán)境搭建

zhichangterry / 1985人閱讀

使用騰訊云主機(jī),docker構(gòu)建集群測(cè)試環(huán)境。

環(huán)境

1、操作系統(tǒng): CentOS 7.2 64位

網(wǎng)路設(shè)置
hostname IP
cluster-master 172.18.0.2
cluster-slave1 172.18.0.3
cluster-slave2 172.18.0.4
cluster-slave3 172.18.0.5
Docker 安裝
curl -sSL https://get.daocloud.io/docker | sh

##換源
###這里可以參考這篇文章http://www.jianshu.com/p/34d3b4568059
curl -sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -s http://67e93489.m.daocloud.io

##開(kāi)啟自啟動(dòng)
systemctl enable docker
systemctl start docker
拉去Centos鏡像
docker pull daocloud.io/library/centos:latest

使用docker ps 查看下載的鏡像

創(chuàng)建容器

按照集群的架構(gòu),創(chuàng)建容器時(shí)需要設(shè)置固定IP,所以先要在docker使用如下命令創(chuàng)建固定IP的子網(wǎng)

docker network create --subnet=172.18.0.0/16 netgroup

docker的子網(wǎng)創(chuàng)建完成之后就可以創(chuàng)建固定IP的容器了

#cluster-master
#-p 設(shè)置docker映射到容器的端口 后續(xù)查看web管理頁(yè)面使用
docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-master -h cluster-master -p 18088:18088 -p 9870:9870 --net netgroup --ip 172.18.0.2 daocloud.io/library/centos /usr/sbin/init

#cluster-slaves
docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-slave1 -h cluster-slave1 --net netgroup --ip 172.18.0.3 daocloud.io/library/centos /usr/sbin/init

docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-slave2 -h cluster-slave2 --net netgroup --ip 172.18.0.4 daocloud.io/library/centos /usr/sbin/init

docker run -d --privileged -ti -v /sys/fs/cgroup:/sys/fs/cgroup --name cluster-slave3 -h cluster-slave3 --net netgroup --ip 172.18.0.5 daocloud.io/library/centos /usr/sbin/init

啟動(dòng)控制臺(tái)并進(jìn)入docker容器中:

docker exec -it cluster-master /bin/bash
安裝OpenSSH免密登錄

1、cluster-master安裝:

#cluster-master需要修改配置文件(特殊)
#cluster-master

#安裝openssh
[root@cluster-master /]# yum -y install openssh openssh-server openssh-clients

[root@cluster-master /]# systemctl start sshd
####ssh自動(dòng)接受新的公鑰
####master設(shè)置ssh登錄自動(dòng)添加kown_hosts
[root@cluster-master /]# vi /etc/ssh/ssh_config
#將原來(lái)的StrictHostKeyChecking ask
#設(shè)置StrictHostKeyChecking為no
#保存
[root@cluster-master /]# systemctl restart sshd

2、分別對(duì)slaves安裝OpenSSH

#安裝openssh
[root@cluster-slave1 /]#yum -y install openssh openssh-server openssh-clients

[root@cluster-slave1 /]# systemctl start sshd

3、cluster-master公鑰分發(fā)

在master機(jī)上執(zhí)行
ssh-keygen -t rsa
并一路回車(chē),完成之后會(huì)生成~/.ssh目錄,目錄下有id_rsa(私鑰文件)和id_rsa.pub(公鑰文件),再將id_rsa.pub重定向到文件authorized_keys

ssh-keygen -t rsa
#一路回車(chē)

[root@cluster-master /]# cat ~/.ssh/id_rsa.pub > ~/.ssh/authorized_keys

文件生成之后用scp將公鑰文件分發(fā)到集群slave主機(jī)

[root@cluster-master /]# ssh root@cluster-slave1 "mkdir ~/.ssh"
[root@cluster-master /]# scp ~/.ssh/authorized_keys root@cluster-slave1:~/.ssh
[root@cluster-master /]# ssh root@cluster-slave2 "mkdir ~/.ssh"
[root@cluster-master /]# scp ~/.ssh/authorized_keys root@cluster-slave2:~/.ssh
[root@cluster-master /]# ssh root@cluster-slave3 "mkdir ~/.ssh"
[root@cluster-master /]# scp ~/.ssh/authorized_keys root@cluster-slave3:~/.ssh

分發(fā)完成之后測(cè)試(ssh root@cluster-slave1)是否已經(jīng)可以免輸入密碼登錄

Ansible安裝
[root@cluster-master /]# yum -y install epel-release
[root@cluster-master /]# yum -y install ansible
#這樣的話ansible會(huì)被安裝到/etc/ansible目錄下

此時(shí)我們?cè)偃ゾ庉媋nsible的hosts文件

vi /etc/ansible/hosts
[cluster]
cluster-master
cluster-slave1
cluster-slave2
cluster-slave3

[master]
cluster-master

[slaves]
cluster-slave1
cluster-slave2
cluster-slave3
配置docker容器hosts

由于/etc/hosts文件在容器啟動(dòng)時(shí)被重寫(xiě),直接修改內(nèi)容在容器重啟后不能保留,為了讓容器在重啟之后獲取集群hosts,使用了一種啟動(dòng)容器后重寫(xiě)hosts的方法。
需要在~/.bashrc中追加以下指令

:>/etc/hosts
cat >>/etc/hosts<
source ~/.bashrc

使配置文件生效,可以看到/etc/hosts文件已經(jīng)被改為需要的內(nèi)容

[root@cluster-master ansible]# cat /etc/hosts
127.0.0.1   localhost
172.18.0.2  cluster-master
172.18.0.3  cluster-slave1
172.18.0.4  cluster-slave2
172.18.0.5  cluster-slave3
用ansible分發(fā).bashrc至集群slave下
ansible cluster -m copy -a "src=~/.bashrc dest=~/"
軟件環(huán)境配置

下載JDK1.8并解壓縮至/opt 目錄下

下載hadoop3 到/opt目錄下,解壓安裝包,并創(chuàng)建鏈接文件

tar -xzvf hadoop-3.2.0.tar.gz
ln -s hadoop-3.2.0 hadoop
配置java和hadoop環(huán)境變量

編輯 ~/.bashrc文件

# hadoop
export HADOOP_HOME=/opt/hadoop-3.2.0
export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

#java
export JAVA_HOME=/opt/jdk8
export PATH=$HADOOP_HOME/bin:$PATH

使文件生效:

source .bashrc
配置hadoop運(yùn)行所需配置文件
cd $HADOOP_HOME/etc/hadoop/

1、修改core-site.xml


    
        hadoop.tmp.dir
        /home/hadoop/tmp
        A base for other temporary directories.
    
    
    
        fs.default.name
        hdfs://cluster-master:9000
    
    
    fs.trash.interval
        4320
    

2、修改hdfs-site.xml



   dfs.namenode.name.dir
   /home/hadoop/tmp/dfs/name
 
 
   dfs.datanode.data.dir
   /home/hadoop/data
 
 
   dfs.replication
   3
 
 
   dfs.webhdfs.enabled
   true
 
 
   dfs.permissions.superusergroup
   staff
 
 
   dfs.permissions.enabled
   false
 
 

3、修改mapred-site.xml



  mapreduce.framework.name
  yarn


    mapred.job.tracker
    cluster-master:9001


  mapreduce.jobtracker.http.address
  cluster-master:50030


  mapreduce.jobhisotry.address
  cluster-master:10020


  mapreduce.jobhistory.webapp.address
  cluster-master:19888


  mapreduce.jobhistory.done-dir
  /jobhistory/done


  mapreduce.intermediate-done-dir
  /jobhisotry/done_intermediate


  mapreduce.job.ubertask.enable
  true

4、yarn-site.xml


    
   yarn.resourcemanager.hostname
   cluster-master
 
 
   yarn.nodemanager.aux-services
   mapreduce_shuffle
 
 
   yarn.nodemanager.aux-services.mapreduce.shuffle.class
   org.apache.hadoop.mapred.ShuffleHandler
 
 
   yarn.resourcemanager.address
   cluster-master:18040
 

   yarn.resourcemanager.scheduler.address
   cluster-master:18030
 
 
   yarn.resourcemanager.resource-tracker.address
   cluster-master:18025
  
   yarn.resourcemanager.admin.address
   cluster-master:18141
 

   yarn.resourcemanager.webapp.address
   cluster-master:18088
 

   yarn.log-aggregation-enable
   true
 

   yarn.log-aggregation.retain-seconds
   86400
 

   yarn.log-aggregation.retain-check-interval-seconds
   86400
 

   yarn.nodemanager.remote-app-log-dir
   /tmp/logs
 

   yarn.nodemanager.remote-app-log-dir-suffix
   logs
 
打包hadoop 向slaves分發(fā)
tar -cvf hadoop-dis.tar hadoop hadoop-3.2.0
使用ansible-playbook分發(fā).bashrc和hadoop-dis.tar至slave主機(jī)
---
- hosts: cluster
  tasks:
    - name: copy .bashrc to slaves
      copy: src=~/.bashrc dest=~/
      notify:
        - exec source
    - name: copy hadoop-dis.tar to slaves
      unarchive: src=/opt/hadoop-dis.tar dest=/opt

  handlers:
    - name: exec source
      shell: source ~/.bashrc

將以上yaml保存為hadoop-dis.yaml,并執(zhí)行

ansible-playbook hadoop-dis.yaml

hadoop-dis.tar會(huì)自動(dòng)解壓到slave主機(jī)的/opt目錄下

Hadoop 啟動(dòng) 格式化namenode
hadoop namenode -format

如果看到storage format success等字樣,即可格式化成功

啟動(dòng)集群
cd $HADOOP_HOME/sbin
start-all.sh

啟動(dòng)后可使用jps命令查看是否啟動(dòng)成功

注意:
在實(shí)踐中遇到節(jié)點(diǎn)slaves 上的datanode服務(wù)沒(méi)有啟動(dòng),查看slave上目錄結(jié)構(gòu)發(fā)現(xiàn)
沒(méi)有生成配置文件中設(shè)置的文件夾,比如:core-site.xml中


        hadoop.tmp.dir
        /home/hadoop/tmp
        A base for other temporary directories.
    

hdfs-site.xml文件中:


   dfs.namenode.name.dir
   /home/hadoop/tmp/dfs/name
 
 
   dfs.datanode.data.dir
   /home/hadoop/data
 

手動(dòng)到節(jié)點(diǎn)中生成這些文件夾,之后刪除master中這些文件夾和$HADOOP_HOME下的logs文件夾,之后重新格式化namenode

hadoop namenode -format

再次啟動(dòng)集群服務(wù):

start-all.sh

這時(shí)在到從節(jié)點(diǎn)觀察應(yīng)該會(huì)看到節(jié)點(diǎn)服務(wù)

驗(yàn)證服務(wù)

訪問(wèn)

http://host:18088
http://host:9870

來(lái)查看服務(wù)是否啟動(dòng)

部分轉(zhuǎn)載:https://www.jianshu.com/p/d7f...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/74815.html

相關(guān)文章

  • Docker搭建Hadoop集群

    摘要:搭建集群首先搭建環(huán)境版本大于安裝主機(jī)監(jiān)控程序和加速器這里使用了的版本,因?yàn)榘惭b方便放開(kāi)更改放開(kāi)配置配置配置配置配置配置文件追加配置和在文件第一行中添加測(cè)試鏈接文件 Docker搭建Hadoop集群 首先搭建Docker環(huán)境,Docker版本大于1.3.2 安裝主機(jī)監(jiān)控程序和加速器(curl -sSL https://get.daocloud.io/daomonit/install.s...

    Yu_Huang 評(píng)論0 收藏0
  • 基于Docker搭建Hadoop集群之升級(jí)版

    摘要:總之,項(xiàng)目還算很受歡迎吧,這篇博客將介紹項(xiàng)目的升級(jí)版。一項(xiàng)目介紹將打包到鏡像中,就可以快速地在單個(gè)機(jī)器上搭建集群,這樣可以方便新手測(cè)試和學(xué)習(xí)。之前的版本使用為集群提供服務(wù),由于網(wǎng)絡(luò)功能更新,現(xiàn)在并不需要了。運(yùn)行參考第二部分啟動(dòng),并運(yùn)行。 摘要: kiwenlau/hadoop-cluster-docker是去年參加Docker巨好玩比賽開(kāi)發(fā)的,得了二等獎(jiǎng)并贏了一塊蘋(píng)果手表,目前這個(gè)項(xiàng)目...

    Zoom 評(píng)論0 收藏0
  • Docker搭建Zookeeper集群

    Docker搭建Zookeeper集群 這之前的準(zhǔn)備和Docker搭建Hadoop集群是一樣的,請(qǐng)關(guān)注上一篇筆記。 第一步根據(jù)上次wiki中的方法啟動(dòng)docker容器 docker run --rm -it -h zoo1 --name zoo1 ice/hadoop /bin/bash docker run --rm -it -h zoo2 --name zoo2 ice/hadoop /bin...

    CNZPH 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<