ubuntu操作系統中docker下Hadoop分布式前置環境配置實驗

版本:

centos7

hadoop 3.1.3

java JDK:1.8

集群規劃:

masterslave1slave2
HDFS

NameNode

DataNode

DataNode

SecondryNameNode

DataNode

YARNNodeManager

ResourceManage

NodeManager

NodeManager

1.docker容器:

把普通用戶加入到docker組:

sudo  gpasswd -a $USER docker
newgrp docker

配置docker容器源:

 sudo vim /etc/docker/daemon.json
{"registry-mirrors" : ["http://registry.docker-cn.com","http://docker.mirrors.ustc.edu.cn","http://hub-mirror.c.163.com","https://nfesww3w.mirror.aliyuncs.com"],"insecure-registries" : ["registry.docker-cn.com","docker.mirrors.ustc.edu.cn"],"debug" : true,"experimental" : true
}

重啟docker服務:

sudo systemctl restart docker

查看docker狀態:

ps -ef | grep docker

?拉取centos7:7.5.1804鏡像:

docker pull centos:7.5.1804

查看鏡像:

docker images

創建容器:

docker run --name master -it centos:7.5.1804 /bin/bash
docker run --name slave1 -it centos:7.5.1804 /bin/bash
docker run --name slave2 -it centos:7.5.1804 /bin/bash

查看容器:

docker ps -a

啟動容器:

docker start a08b

進入容器:

docker exec -it a08b00fdc6ce /bin/bash

2.配置ssh做免密登錄:

由于最小化centos7,需安裝 net-tools ,vim,openssh-server,oppenssh-clients

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

?查看每個容器中的ip

master:172.17.0.3

slave1:172.17.0.4

slave2:172.17.0.2

?設置root密碼為aaaaaa:

sudo passwd

?修改/etc/hosts:

vi /etc/hosts
172.17.0.4      slave1
172.17.0.2      slave2
172.17.0.3      master

?配置ssh公鑰和私鑰:(一路回車)

ssh-keygen -t rsa

?暫時不知docker啟動ssh方法

ssh-keygen -t rsa -b 2048 -f /etc/ssh/ssh_host_rsa_key
usr/sbin/sshd -D

?啟動后會卡住退出重啟

ps -e 查看后臺sshd服務已啟動:

?

?配置所有節點免密登錄(包括自己):

ssh-copy-id master
ssh-copy-id slave1
ssh-copy-di slave2

3.配置JAVA_HOME環境:

master :在/opt/目錄下分別創建software和module文件夾:

 mkdir /opt/softwore
 mkdir /opt/module

將ubuntu的jdk拷貝到master /opt/software上:

docker cp jdk-8u212-linux-x64.tar.gz master:/opt/software

?解壓jdk到 /opt/module下:

tar -zxvf jdk-8u212-linux-x64.tar.gz -C /opt/module/

配置JAVA_HOME環境變量:

vi /etc/profile.d/my_env.sh

?添加:

export JAVA_HOME=/opt/module/jdk1.8.0_212
export PATH=$PATH:$JAVA_HOME/bin

加載配置文件:

source /etc/profile

使用 java -version查看環境變量是否配置完成:

JAVA_HOME環境變量配置完畢

4 .配置hadoop_HOME環境:

將物理機的jar包拷貝到master/opt/module下:

docker cp hadoop-3.1.3.tar.gz master:/opt/software

解壓到/opt/module 目錄下:

 tar -zxvf hadoop-3.1.3.tar.gz -C /opt/module/

配置環境變量:

vi /etc/profile.d/my_env.sh
export HADOOP_HOME=/opt/module/hadoop-3.1.3
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

?加載配置文件:

source /etc/profile

用hadoop -version查看環境是否配置完成:

HADOOP_HOME環境變量配置完成

注意:

注意 配置完成后 同步給其他節點

scp -r 要發送的內容 主機名:src

?

5.HADOOP_配置文件:

cd /opt/module/hadoop-3.1.3/etc/hadoop

core-site.xml:

<property><name>fs.defaultFS</name><value>hdfs://master:9820</value>
</property>
<property><name>hadoop.tmp.dir</name><value>/opt/module/hadoop-3.1.3/data</value>
</property>

yarn-site.xml:

<property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value>
</property>
<property><name>yarn.resourcemanager.hostname</name><value>slave1</value>
</property><property><name>yarn.nodemanager.env-whitelist</name><value>JAVA_HOME,HADOOP_COMMON_HOME,HADOOP_HDFS_HOME,HADOOP_CONF_DIR,CLASSPATH_PREPEND_DISTCACHE,HADOOP_YARN_HOME,HADOOP_MAPRED_HOME</value>
</property>
<property><name>yarn.scheduler.minimum-allocation-mb</name><value>512</value>
</property>
<property><name>yarn.scheduler.maxmum-allocation-mb</name><value>4096</value>
</property>
<property><name>yarn.nodemanager.resource.memory-mb</name><value>4096</value>
</property>
<property><name>yarn.nodemanager.pmem-check-enabled</name><value>false</value>
</property>
<property><name>yarn.nodemanager.vmem-check-enabled</name><value>false</value>
</property>

hdfs-site.xmlL:

<property><name>dfs.namenode.name.http-address</name><value>master:9870</value>
</property>
<property><name>dfs.namenode.secondary.http-address</name><value>slave2:9868</value>
</property>

maperd-site.xml:

<property><name>mapreduce.framework.name</name><value>yarn</value>
</property>

配置完成后同步給其他節點

scp -r hadoop slave1:/opt/moder/hadoop3.1.3/etc

?6.啟動hadoop:

格式化hadoop :

hdfs namenode -format

在hadoop3.1.3下多出data和logs兩個文件

格式化成功

啟動 hadoop

在master節點下:

start-dfs.sh

好,啟動失敗

?這是由于權限問題:

在每個節點增加用戶:

useradd bigdata
passwd bigdata 111111

增加/opt /module的權限:

chown bigdata:bigdata /module

?并使用bigdata用戶給每個節點執行ssh免密

注意在每個節點都要執行

再次在master上啟動:

start-dfs.sh

在slave1上啟動:

start-yarn.sh

?

hadoop啟動成功

?

?總結:

hadoop 啟動失敗 datanode 掛掉兩臺

docker端口問題

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/161540.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/161540.shtml
英文地址,請注明出處:http://en.pswp.cn/news/161540.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

opencv-Canny 邊緣檢測

Canny邊緣檢測是一種經典的圖像邊緣檢測算法&#xff0c;它在圖像中找到強度梯度的變化&#xff0c;從而識別出圖像中的邊緣。Canny邊緣檢測的優點包括高靈敏度和低誤檢率。 在OpenCV中&#xff0c;cv2.Canny() 函數用于執行Canny邊緣檢測。 基本語法如下&#xff1a; edges…

代碼隨想錄 134. 加油站

題目 在一條環路上有 n 個加油站&#xff0c;其中第 i 個加油站有汽油 gas[i] 升。 你有一輛油箱容量無限的的汽車&#xff0c;從第 i 個加油站開往第 i1 個加油站需要消耗汽油 cost[i] 升。你從其中的一個加油站出發&#xff0c;開始時油箱為空。 給定兩個整數數組 gas 和 cos…

本地訓練,開箱可用,Bert-VITS2 V2.0.2版本本地基于現有數據集訓練(原神刻晴)

按照固有思維方式&#xff0c;深度學習的訓練環節應該在云端&#xff0c;畢竟本地硬件條件有限。但事實上&#xff0c;在語音識別和自然語言處理層面&#xff0c;即使相對較少的數據量也可以訓練出高性能的模型&#xff0c;對于預算有限的同學們來說&#xff0c;也沒必要花冤枉…

阿里云 ACK 新升級,打造智算時代的現代化應用平臺

云布道師 今天&#xff0c;能想到的或是想不到的領域&#xff0c;對容器和 Kubernetes 的需求都居高不減&#xff0c;使這項技術正在真正走向無處不在。 在 2023 云棲大會上&#xff0c;阿里云云原生產品線容器服務負責人易立關于容器服務 ACK 在本屆亞運會上應用的介紹&#…

[crash] cxa_pure_virtual 崩潰分析與原理

摘要&#xff1a;工作過程中處理線上的崩潰時發現了一例cxa_pure_virtual相關的crash&#xff0c;直接看堆棧基本山很容易確認是有異步調用導致出發了ABI的異常。但是對于為什么會觸發cxa_pure_virtual雖然有大致的猜測但是沒有直接的證據&#xff0c;因此本文主要描述觸發該類…

C/C++未定義行為的例子匯總

一、什么是未定義行為&#xff1f; 未定義行為&#xff08;Undefined Behavior&#xff09;是指C語言標準未做規定的行為。同時&#xff0c;標準也從沒要求編譯器判斷未定義行為&#xff0c;所以這些行為有編譯器自行處理&#xff0c;在不同的編譯器可能會產生不同的結果&#…

ElasticSearch之cat aliases API

執行aliases命令&#xff0c;如下&#xff1a; curl -X GET "https://localhost:9200/_cat/aliases?pretty&vtrue" --cacert $ES_HOME/config/certs/http_ca.crt -u "elastic:ohCxPHQBEs5*lo7F9"執行結果輸出如下&#xff1a; alias index …

在 VSCode 中使用 GDB 進行 C/C++ 程序調試(圖文版)

(??? )&#xff0c;Hello我是祐言QAQ我的博客主頁&#xff1a;C/C語言&#xff0c;數據結構&#xff0c;Linux基礎&#xff0c;ARM開發板&#xff0c;網絡編程等領域UP&#x1f30d;快上&#x1f698;&#xff0c;一起學習&#xff0c;讓我們成為一個強大的攻城獅&#xff0…

webpack loader

1、分類 2、執行順序 配置類型 執行順序是 loader1>loader2>loader3 3、使用方式 自己的第一個loader 同步loader /*** loader 就是一個函數* 當webpack 解釋資源時&#xff0c; 會調用相應的loader去處理* loader 接收到文件內容作為參數&#xff0c;返回文件內容* p…

Nginx 開源版安裝

下載 tar.gz安裝包&#xff0c;上傳。 解壓 [rootlocalhost ~]# tar zxvf nginx-1.21.6.tar.gz nginx-1.21.6/ nginx-1.21.6/auto/ nginx-1.21.6/conf/ nginx-1.21.6/contrib/ nginx-1.21.6/src/ ... ...安裝gcc [rootlocalhost nginx-1.21.6]# yum install -y gcc 已加載插件…

ios qt開發要點

目前關于ios qt的開發資料比較少&#xff0c;這里整理了幾個比較重要的開發要點&#xff0c;基于MacOS14 Xcode15 Qt15.5 cmake iphone真機。 cmake報錯&#xff0c;報錯信息如下 CMake Error at /Users/user/Qt/5.15.5/ios/lib/cmake/Qt5Core/Qt5CoreConfig.cmake:91 (m…

C#Wpf關于日志的相關功能擴展

目錄 一、日志Sink(接收器) 二、Trace追蹤實現日志 三、日志滾動 一、日志Sink(接收器) 安裝NuGet包&#xff1a;Serilog Sink有很多種&#xff0c;這里介紹兩種&#xff1a; Console接收器&#xff08;安裝Serilog.Sinks.Console&#xff09;; File接收器&#xff08;安裝…

CSM32RV003:國產高精度16位ADC低功耗RISC-V內核MCU

目錄 高精度ADC工業應用工業數據采集應用CSM32RV003簡介主要特性 高精度ADC工業應用 高精度ADC即高精度模數轉換器&#xff0c;是一種能夠將輸入模擬信號轉換為數字信號的芯片&#xff0c;在多種消費電子、工業、醫療和科研領域都有廣泛應用。高精度ADC的主要特點是能夠提供高…

深度學習圖像修復算法 - opencv python 機器視覺 計算機競賽

文章目錄 0 前言2 什么是圖像內容填充修復3 原理分析3.1 第一步&#xff1a;將圖像理解為一個概率分布的樣本3.2 補全圖像 3.3 快速生成假圖像3.4 生成對抗網絡(Generative Adversarial Net, GAN) 的架構3.5 使用G(z)生成偽圖像 4 在Tensorflow上構建DCGANs最后 0 前言 &#…

前端 HTML 的 DOM 事件相關知識有哪些?

HTML 的 DOM 事件是指在網頁上發生的各種事件&#xff0c;如點擊、鼠標移動、鍵盤輸入等。 通過 JavaScript 腳本可以對這些事件進行監聽和處理&#xff0c;以實現交互效果。以下是一些常見的 DOM 事件及其相關知識點&#xff1a; 1、click&#xff1a;點擊事件&#xff0c;在…

vue3引入vuex基礎

一&#xff1a;前言 使用 vuex 可以方便我們對數據的統一化管理&#xff0c;便于各組件間數據的傳遞&#xff0c;定義一個全局對象&#xff0c;在多組件之間進行維護更新。因此&#xff0c;vuex 是在項目開發中很重要的一個部分。接下來讓我們一起來看看如何使用 vuex 吧&#…

linux文件I/O:文件鎖的概念、函數以及代碼實現

文件鎖是一種用來保證多個進程對同一個文件的安全訪問的機制。文件鎖可以分為兩種類型&#xff1a;建議性鎖和強制性鎖。建議性鎖是一種協作式的鎖&#xff0c;它只有在所有參與的進程都遵守鎖的規則時才有效。強制性鎖是一種強制式的鎖&#xff0c;它由內核或文件系統來強制執…

使用Pytorch從零開始構建RNN

在這篇文章中&#xff0c;我們將了解 RNN&#xff08;即循環神經網絡&#xff09;&#xff0c;并嘗試通過 PyTorch 從頭開始??實現其中的部分內容。是的&#xff0c;這并不完全是從頭開始&#xff0c;因為我們仍然依賴 PyTorch autograd 來計算梯度并實現反向傳播&#xff0c…

Apache訪問控制

服務器相關的訪問控制 Options指令 Options指令是Apache服務器配置文件中的一個重要指令,它可以用于控制特定目錄啟用哪些服務器特性。Options指令可以在Apache服務器的核心配置、虛擬主機配置、特定目錄配置以及.htaccess文件中使用。 以下是一些常用的服務器特性選項: N…

Django(九、cookie與session)

文章目錄 一、cookie與session的介紹HTTP四大特性 cookiesession Django操作cookie三板斧基于cookie的登錄功能 一、cookie與session的介紹 在講之前我們先來回憶一下HTTP的四大特性 HTTP四大特性 1.基于請求響應 2.基于TIC、IP作用于應用層上的協議 3.無狀態 保存…