亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

vmware虛擬機redhat7.2下docker容器怎么安裝hadoop

發布時間:2021-11-16 10:25:29 來源:億速云 閱讀:163 作者:小新 欄目:云計算

這篇文章主要介紹了vmware虛擬機redhat7.2下docker容器怎么安裝hadoop,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

ip配置:

# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=dadee176-cc84-43f4-9ea9-e30a30ca3abf
DEVICE=eno16777736
ONBOOT=yes
#20160708 add
IPADDR0=192.168.128.130
PREFIXO0=24
GATEWAY0=192.168.128.1
#DNS1=
#DNS2=

DNS配置
 

# cat /etc/resolv.conf
# Generated by NetworkManager


# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com

nameserver 192.168.128.1

本地yum配置

# 掛載iso文件
# mkdir -p /media/cdrom
# vi /etc/fstab
'''
/opt/rhel-server-7.2-x86_64-dvd.iso /media/cdrom   iso9660    defaults,ro,loop  0 0
'''
# mount -a
# df -lh
'''
/dev/loop0             3.8G  3.8G     0 100% /media/cdrom
'''

# vi /etc/yum.repos.d/rhel-media.repo 
[rhel-media]
name=Red Hat Enterprise Linux 7.2
baseurl=file:///media/cdrom
enabled=1
gpgcheck=1
gpgkey=file:///media/cdrom/RPM-GPG-KEY-redhat-release

# 清理緩存
# yum clean
# 將服務器上的軟件包信息在本地緩存,以提高 搜索安裝軟件的速度
# yum makecache

主機名修改

hostnamectl --staticset-hostname rhels7-docker

一、安裝docker

因國內訪問docker官網速度問題,這里使用國內的加速鏡像 daocloud.io

curl -sSL https://get.daocloud.io/docker | sh

安裝過程將會創建一個用戶組 docker

查看docker版本

docker version

啟動docker,并查看狀態

systemctl start docker.service
systemctl status docker.service

顯示系統信息(前提:docker服務處于啟動狀態)

docker info

二、拉取centos鏡像

docker pull daocloud.io/library/centos:centos7

三、啟動鏡像

1、先查看本地鏡像

docker images

如下:

vmware虛擬機redhat7.2下docker容器怎么安裝hadoop

說明:centos是安裝完hadoop后的鏡像,daocloud.io/library/centos是剛剛拉取的,下面的操作都是基于此進行的

2、啟動

docker run -h master --dns=192.168.128.1 -it daocloud.io/library/centos:centos7

說明:

    -h master    #指定主機名

    --dns=192.168.128.1    #因人而異,配置錯誤將影響后期軟件安裝

    -it        #以交互模式啟動

    具體可docker run --help查看


四、安裝必要軟件及配置

1、安裝基礎軟件

yum install -y wget vim openssh-server openssh-clients net-tools

 說明: netstat, ifconfig命令包含在net-tools包中

安裝完后并不會啟動sshd服務,容器是被docker管理的,無法使用一些系統命令,要啟動sshd需要執行如下命令:

/usr/sbin/sshd -D &

注意:sshd服務是hadoop必須的,在此通過腳本實現啟動容器就運行sshd

vi /root/run.sh
內容
#!/bin/bash
/usr/sbin/sshd -D
賦權
chmod +x /root/run.sh

2、網絡配置

docker容器通過橋接與外部通信,不想每次啟動容器都要指定dns

修改默認dns

2.1修改宿主機配置文件 /etc/default/docker

DOCKER_NETWORK_OPTIONS="--dns=192.168.128.1"

2.2修改宿主機配置文件 /lib/systemd/system/docker.service

[Service]
EnvironmentFile=-/etc/default/docker
ExecStart=/usr/bin/docker daemon -H fd:// $OPTIONS \
		$DOCKER_NETWORK_OPTIONS

詳見:http://docs.master.dockerproject.org/engine/admin/systemd/

重啟宿主機docker服務

systemctl daemon-reload
systemctl restart docker.service
#使用這個命令可以查看 docker 的啟動命令是否生效
ps -ef | grep docker

root       2415      1  0 14:41 ?        00:00:10 /usr/bin/docker daemon -H fd:// --dns=192.168.128.1
root       2419   2415  0 14:41 ?        00:00:01 docker-containerd -l /var/run/docker/libcontainerd/docker-containerd.sock --runtime docker-runc --start-timeout 2m

3、安裝jdk8

wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u91-b14/jdk-8u91-linux-x64.tar.gz
mkdir /usr/java
tar zxf jdk-8u91-linux-x64.tar.gz -C /usr/java
echo 'export JAVA_HOME=/usr/java/jdk1.8.0_91' >> /etc/bashrc
echo 'export PATH=$PATH:$JAVA_HOME/bin' >> /etc/bashrc
echo 'export CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /etc/bashrc
source /etc/bashrc

4、安裝hadoop

4.1 安裝hadoop,并配置環境變量

wget http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz
mkdir /usr/local/hadoop
tar zxf hadoop-2.7.2.tar.gz -C /usr/local/hadoop
echo 'export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.2' >> /etc/bashrc
echo 'export HADOOP_CONFIG_HOME=$HADOOP_HOME/etc/hadoop' >> /etc/bashrc
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> /etc/bashrc
source /etc/bashrc

4.2 配置hadoop

HADOOP_HOME目錄下創建如下目錄

  • tmp:臨時目錄

  • namenode:NameNode 存放目錄

  • datanode:DataNode 存放目錄

切換到HADOOP_CONFIG_HOME目錄

cp mapred-site.xml.template mapred-site.xml

配置 core-site.xml

<configuration>
  <property>
    <name>hadoop.tmp.dir</name>
    <value>/usr/local/hadoop/hadoop-2.7.2/tmp</value>
    <description>A base for other temporary dirctories.</description>
  </property>

  <property>
    <name>fs.default.name</name>
    <value>hdfs://master:9000</value>
    <final>true</final>
    <description>The name of the default file system.
    A URI whose scheme and authority determine the FileSystem implemntation.
    The uri's scheme determines the config property (fs.SCHEME.impl) naming the FileSystem implemnetation class.
    The uri's authority is used to determine the host, port, etc. for a filesystem.</description>
  </property>
</configuration>

配置hdfs-site.xml

<configuration>
  <property>
    <name>dfs.replication</name>
    <value>2</value>
    <final>true</final>
    <description>Default block replication.
    The actual number of replications can be specified when the file is created.
    The default is used if replication is not specified in create time.
    </description>
  </property>

  <property>
    <name>dfs.namenode.name.dir</name>
    <value>/usr/local/hadoop/hadoop-2.7.2/namenode</value>
    <final>true</final>
  </property>

  <property>
    <name>dfs.datenode.data.dir</name>
    <value>/usr/local/hadoop/hadoop-2.7.2/datanode</value>
    <final>true</final>
  </property>
</configuration>

配置mapred-site.xml

<configuration>
  <property>
    <name>maperd.job.tracker</name>
    <value>master:9001</value>
    <description>The host and port that the MapReduce job tracker runs at.
    IF "local", then jobs are run in-process as a single map and reduce task</description>
  </property>
</configuration>

4.3 配置ssh免密碼登錄

ssh-keygen -q -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key -N ''    
ssh-keygen -q -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key -N ''
ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key  -N ''

然后修改master容器/etc/ssh/sshd_config文件

UsePAM yes 改為 UsePAM no
UsePrivilegeSeparation sandbox 改為 UsePrivilegeSeparation no

[root@b5926410fe60 /]# sed -i "s/#UsePrivilegeSeparation.*/UsePrivilegeSeparation no/g" /etc/ssh/sshd_config
[root@b5926410fe60 /]# sed -i "s/UsePAM.*/UsePAM no/g" /etc/ssh/sshd_config

修改完后,重新啟動sshd
[root@b5926410fe60 /]# /usr/sbin/sshd -D

4.4 修改容器root密碼

passwd root

5、保存該docker容器container

docker commit -m "hadoop installed" 690a57e02578 centos:hadoop

刪除多余容器

docker rm <container_id>

說明:690a57e02578 為container_id,因人而異,可通過docker ps查看

保存完成后,可通過docker images查看本地鏡像
    REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
    centos                       hadoop              b01079411e19        45 seconds ago      1.434 GB
    daocloud.io/library/centos   centos7             ea08fb8c4ba5        7 days ago          196.8 MB


五、啟動hadoop

說明:關鍵因素1、sshd服務,2、/etc/hosts配置到master節點的映射

修改容器的/root/run.sh,容器ip默認從172.17.0.2開始分配,3個節點,最后一個啟動master節點,故能確定masterip為172.17.0.4

#!/bin/bash
echo '172.17.0.4    master' >> /etc/hosts
/usr/sbing/sshd -D

另:在宿主機上也可根據container_id用docker inspect <CONTAINER_ID>:查看容器詳細信息(輸出為Json)如:ip、mac、hostname等

docker inspect -f '{{ .NetworkSettings.IPAddress }}' 690a57e02578
docker inspect -f '{{ .NetworkSettings.MacAddress }}' 690a57e02578
docker inspect -f '{{ .Config.Hostname }}' 690a57e02578

1、基于新鏡像(centos:hadoop)運行啟動3個容器

docker run -d -p 10012:22 --name slave1 centos:hadoop /root/run.sh
docker run -d -p 10022:22 --name slave2 centos:hadoop /root/run.sh
docker run -d -p 10002:22 --name master -h master -P --link slave1:slave1 --link slave2:slave2 centos:hadoop /root/run.sh

說明:-p參數指定容器22端口分別映射到宿主機端口,本地可通過ssh訪問宿主機10002/10012/10022端口連接到3個容器中

2、啟動hadoop

2.1 連入master容器

docker exec -it 175c3129e021 /bin/bash

2.2 格式化namenode

hdfs namenode -format

顯示如下信息,表示格式化成功

16/07/09 08:12:36 INFO common.Storage: Storage directory /usr/local/hadoop/hadoop-2.7.2/namenode has been successfully formatted.
16/07/09 08:12:36 INFO namenode.NNStorageRetentionManager: Going to retain 1 images with txid >= 0
16/07/09 08:12:36 INFO util.ExitUtil: Exiting with status 0

2.3 啟動hadoop

因已配置好環境變量,進入容器后,可直接運行

start-all.sh

使用jps查看進程

# jps
163 NameNode
675 NodeManager
1316 Jps
581 ResourceManager
279 DataNode
429 SecondaryNameNode

六、宿主機配置iptables實現端口轉發

轉發方向:容器端口50070   <--->   宿主機50070

在宿主機執行

iptables -t nat -A PREROUTING -d 192.168.128.130 -p tcp --dport 50070 -j DNAT --to-destination 172.17.0.4:50070

說明:192.168.128.130  為宿主機,172.17.0.4為master容器

至此,本地即可訪問虛擬機(或說宿主機)上容器中的hadoop集群

vmware虛擬機redhat7.2下docker容器怎么安裝hadoop

感謝你能夠認真閱讀完這篇文章,希望小編分享的“vmware虛擬機redhat7.2下docker容器怎么安裝hadoop”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

牟定县| 麦盖提县| 巫溪县| 惠安县| 贞丰县| 简阳市| 通渭县| 贡嘎县| 张掖市| 汉寿县| 延吉市| 贵港市| 金湖县| 巴青县| 昌图县| 连平县| SHOW| 昭平县| 巴彦县| 通江县| 古交市| 宝丰县| 千阳县| 宁城县| 周宁县| 汝城县| 年辖:市辖区| 苍山县| 山东省| 通山县| 德安县| 禹城市| 凌海市| 和平区| 区。| 惠来县| 新余市| 原阳县| 灵丘县| 西城区| 周口市|