創建hadoop集群

分布式hadoop集群分布

服務器功能規劃
node-1:namenode,datanode,nodemanager,historyserver
node-2:resourcemanage,datanode,nodemanager
node-3:datanode,nodemanager,secondarynamenode

#在node-1上
$ bin/hdfs namenode -format
$ sbin/start-dfs.sh --啟動HDFS
$ sbin/mr-jobhistory-daemon.sh start historyserver
#在node-2上:
$ sbin/start-yarn.sh --啟動YARN

一、集群規劃

01 02 03
HDFS namenode SecondaryNamenode
datanode datanode datanode
historyserver
YARN resourcemanager
nodemanager nodemanager nodemanager

二、準備系統環境

1. Vi /etc/sysconfig/network 主機名

	master.comslave1.comslave2.com    

2. Vi /etc/hosts 主機名和ip地址的映射 三臺服務器

	192.168.174.130 master.com192.168.174.131 slave1.com192.168.174.132 slave2.com

3. 關閉iptables和selinux 三臺服務器

	service iptables stop  關閉防火墻Chkconfig iptables off 讓iptables開啟不啟動Vi /etc/sysconfig/selinux     SELINUX=disabled

4. 創建普通用戶 [root用戶] [三臺服務器]

# useradd bigdata
# echo 123456 | passwd --stdin bigdata

5. 配置靜態IP和DNS [root用戶] [三臺服務器]

# vi /etc/sysconfig/network-scripts/ifcfg-eth0
IPADDR=192.168.201.130
NETMASK=255.255.255.0
GATEWAY=192.168.201.2
DNS1=192.168.201.2
# service network restart

6. 把系統啟動級別改成“字符模式” [root用戶] [后面兩臺服務器]

安裝類型選擇“Basic”
# vi /etc/inittab
id:3:initdefault:

7. 卸載服務器JDK [root用戶] [三臺服務器]

# rpm -qa |grep java
# rpm -e --nodeps java軟件包

三、配置NTP時間服務器[root用戶]

  • 把01這臺服務器配置為時間服務器
  • 然后集群內其他服務器都來同步這臺服務器的時間
  • 目的:集群內部所有服務器時間一致

1. 調整時間(三臺服務器)

# date -R               --檢查當前系統時區
Thu, 25 Aug 2021 14:51:07 +0800
# rm -rf /etc/localtime     --如果時區不是+0800
# ln -s /usr/share/zoneinfo/Asia/Shanghai /etc/localtime

2. bigdata01.com

 2.1 同步時間# service ntpd stop# ntpdate cn.pool.ntp.org   --同步當前服務器時間## 必須在 ntpd 進程關閉的情況下才能同步別的 ntp 服務器時間,反之可能出現問題:“the NTP socket is in use, exiting”錯誤。問題分析:出現該錯誤的原因是系統 ntpd 服務器正在運行中,通過 ps aux | grep ntpd 或者 service ntpd status 查看,會看到 ntpd 正在運行。解決方法: # service ntpd stop2.2 檢查軟件包# rpm -qa | grep ntp        --查看ntp軟件包是否已安裝ntp-4.2.4p8-3.el6.centos.x86_64# yum -y install ntp        --如果沒有安裝需要安裝ntp2.3 修改ntp配置文件# vi /etc/ntp.conf####去掉下面這行前面的# ,并把網段修改成自己的網段restrict 192.168.201.0 mask 255.255.255.0 nomodify notrap####注釋掉以下幾行#server 0.centos.pool.ntp.org#server 1.centos.pool.ntp.org#server 2.centos.pool.ntp.org####把下面兩行前面的#號去掉,如果沒有這兩行內容,需要手動添加server  127.127.1.0     # local clockfudge   127.127.1.0 stratum 102.4 重啟ntp服務# service ntpd start# chkconfig ntpd on

3. bigdata.com [后兩臺服務器02、03]

 3.1 關閉ntpd進程,默認關閉# service ntpd stop# chkconfig ntpd off3.2 去同步第一臺服務器時間# ntpdate bigdata01.com --去第一臺服務器同步時間25 Aug 15:16:47 ntpdate[2092]: adjust time server 192.168.201.128 offset 0.311666 sec3.3 制定計劃任務,周期性同步時間# crontab -e*/10 * * * * /usr/sbin/ntpdate master01[分  時 日  月 星期]# service crond restart

四、免密登錄

linux 自帶的已經安裝了 ssh 客戶端,還需要安裝 ssh 服務端

sudo apt-get install openssh-server
ssh localhost
cd ~/.ssh
Ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys  加入授權
bigdata01.com –> bigdata01.com
bigdata02.com
bigdata03.combigdata02.com   --> bigdata01.combigdata02.combigdata03.combigdata03.com   --> bigdata01.combigdata02.combigdata03.com

在01上: [用普通用戶bigdata]

$ ssh-keygen -t rsa        --一直回車,生成一對公私鑰對         ** 在/home/bigdata/.ssh/ 文件夾生成兩個秘鑰文件,如果生成錯誤,可以刪除重新生成id_rsa  id_rsa.pub
$ ssh-copy-id master                       --把自己的公鑰拷貝給01
$ ssh-copy-id node1
$ ssh-copy-id node2

在02上: [用普通用戶bigdata]

 $ ssh-keygen -t rsa$ ssh-copy-id bigdata01.com$ ssh-copy-id bigdata02.com$ ssh-copy-id bigdata03.com

在03上: [用普通用戶bigdata]

  $ ssh-keygen -t rsa$ ssh-copy-id bigdata01.com$ ssh-copy-id bigdata02.com$ ssh-copy-id bigdata03.com

使用 ssh hostname 校驗,使用 ssh 無秘登錄后,一定要退出 exit;

五、安裝配置JDK [root用戶] [三臺服務器]

# mkdir /opt/modules/
# mkdir /opt/softwares/
# chown bigdata:bigdata /opt/modules/
# chown bigdata:bigdata /opt/softwares/# su - bigdata
$ tar -vzxf /opt/softwares/jdk-7u67-linux-x64.tar.gz  -C  /opt/modules/Vi .~/.bashrc
Source ~/.bashrc

環境變量 [root用戶] [三臺服務器]

# vi /etc/profile
## JAVA HOME
JAVA_HOME=/opt/modules/jdk1.7.0_67
export PATH=$PATH:$JAVA_HOME/bin
# source /etc/profile
# java -version

[bigdata用戶]第一臺安裝,拷貝 jdk 目錄給后面兩臺服務器

# mkdir /opt/modules/
# chown bigdata:bigdata /opt/modules/
# su - bigdata
$ scp -r jdk1.7.0_79/ node1:/opt/modules/
$ scp -r jdk1.7.0_79/ node2:/opt/modules/

六、模式

6.1 單機模式

cd /opt/modules/hadoop-2.6.0
mkdir input
cp ./etc/hadoop/*.xml ./input
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/*     查看運行結果

hadoop默認不會覆蓋結果文件,如果要再次運行,就需要將output文件刪除:rm -r ./output

6.2 偽分布式模式

core-site.xml

<configuration><property><name>hadoop.tmp.dir</name>   
臨時保存文件,若沒有配置將會使用臨時文件 /tmp/hadoo-hadoop, 而這個目錄在 hadoop 重啟時,可能被系統清理掉<value>file:/opt/modules/hadoop-2.6.0/tmp</value></property><property><name>fs.defaultFS</name><value>hdfs://localhost:9000</value></property>
</configuration>

hdfs-site.xml

<configuration><property><name>dfs.replication</name>   <value>1</value></property><property><name>dfs.namenode.name.dir</name><value>file:/opt/modules/hadoop-2.6.0/tmp/dfs/name</value></property><property><name>dsf.datanode.data.dir</name><value>file:/opt/modules/hadoop-2.6.0/tmp/dfs/data</value></property>
</configuration>

名稱節點的格式化

./bin/hdfs namenode -format

啟動hadoop

./sbin/start-dfs.sh

錯誤:若在啟動hadoop過程中出現很多ssh:could not resolve hostname xxx
按ctil + c中斷啟動過程
在~/.bashrc文件最上邊開始位置

export HADOOP_HOME=/opt/modules/hadoop-2.6.0
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native

保存該文件后,執行 source ~/.bashrc 使變量環境設置生效,然后再次啟動 hadoop

運行 hadoop 偽分布式實例
要使用 hdfs 上的數據,首先需要在 hdfs 中創建用戶目錄

./bin/hdfs dfs -mkdir -p /user/hadoop 
./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input
./bin/hdfs dfs -ls input  查看input文件
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
./bin/hdfs dfs -cat output/*./bin/hdfs dfs rm -r output刪除output文件

6.3 偽分布式下啟動yarn

./sbin/start-dfs.sh
mv ./etc/hadoop/mapred-site.xml.template ./etc/hadoop/mapred-site.xml重命名
vi ./etc/hadoop/mapred-site.xml
<configuration><property><name>mapreduce.framework.name</name>   <value>yarn</value></property>
</configuration>
vi ./etc/hadoop/yarn-site.xml
<configuration><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property>
</configuration>
./sbin/start-dfs.sh
./sbin/start-yarn.sh
./sbin/mr-jonhistory-daemon.sh start historyserver
./sbin/stop-yarn.sh
./sbin/mr-jonhistory-daemon.sh stop historyserver
./sbin/stop-dfs.sh

不想啟動 yarn,則務必將 mapred-site.xml 重命名,改成 mapred-site.xml.template 需要用時改回來即可,否則只啟動 hdfs 不啟動 yarn 會提示retrying connect to server:0.0.0.0/0.0.0.0:8032 錯誤

path環境
在~/.bashrc

export PATH=$PATH:/opt/modules/hadoop-2.6.0/sbin:/opt/modules/hadoop-2.6.0/bin

6.4 分布式模式配置

sudo vi /etc/hostname
sudo vi /etc/hosts

ping master -c 3

Master:

cd ~/.ssh
rm ./id_rsa *
ssh-keygen -t rsa
cat ./id_rsa.pub >> ./authorized_keys
scp ~/.ssh/id_rsa.pub root@slave1

Slave:

mkdir ~/.ssh若無ssh
cat ~/id_rsa.pub >>  ~/.ssh/authorized_keys   在slave節點加入授權
rm ~/id_rsa.pub

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

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

相關文章

點云數據結構化與體素化理論學習

一、PCD點云數據存儲格式的進一步認識 &#xff08;一&#xff09;PCD點云存儲格式相較于其它存儲格式&#xff08;如PLY、STL、OBJ、X3D等&#xff09;的優勢[1] &#xff08;1&#xff09;具有存儲和處理有組織的點云數據集的能力&#xff0c;這對于實時應用和增強現實及機器…

20240302-1-ZooKeeper面試題(三)

21. 集群最少要幾臺機器&#xff0c;集群規則是怎樣的? 集群規則為 2N1 臺&#xff0c;N>0&#xff0c;即 3 臺。 22. 集群支持動態添加機器嗎&#xff1f; 其實就是水平擴容了&#xff0c;Zookeeper 在這方面不太好。兩種方式&#xff1a;第 62 頁 共 485 頁全部重啟&a…

【Spring連載】使用Spring Data訪問 MongoDB----對象映射之非包裝類型

【Spring連載】使用Spring Data訪問 MongoDB----對象映射之非包裝類型 一、未包裝類型映射二、未包裝類型字段名三、查詢未包裝對象3.1 按未包裝字段排序3.2 未包裝對象的字段投影3.3 未包裝對象的Query By Example3.4 未包裝對象的存儲庫查詢 四、更新未包裝對象五、未包裝對象…

蒼穹外賣學習 Day10 Day11 Day12

前言 用于記錄蒼穹外賣Day10、Day11、Day12的學習 Day10 訂單狀態定時處理 來電提醒 客戶催單 訂單狀態定時處理 Spring Task Spring Task是一個任務調度工具&#xff0c;可以按照約定的時間自動執行某個代碼邏輯&#xff08;定時自動執行某段Java代碼&#xff09; cron表…

代碼隨想錄算法訓練營第三十天| 回溯篇總結

文章目錄 前言一、組合問題二、切割問題三、子集問題四、排列問題五、性能分析總結 前言 回溯法就是暴力搜索&#xff0c;并不是什么高效的算法&#xff0c;最多再剪枝一下。 組合問題&#xff1a;N個數里面按一定規則找出k個數的集合 排列問題&#xff1a;N個數按一定規則全…

【黑馬程序員】STL之set和map容器

文章目錄 set/multiset容器set基本概念簡介區別 set的構造和賦值功能描述函數原型代碼示例運行結果 set的大小和交換功能描述函數原型代碼示例運行結果 set的插入和刪除功能描述函數原型代碼示例運行結果 set查找和統計函數原型代碼示例運行結果 set和multiset區別區別代碼示例…

JVM(6)

JMM JVM定義了一種Java內存模型來屏蔽掉各種硬件和操作系統的內存訪問差異,以實現讓Java程序在各種平臺下都能達到一致的內存訪問效果.在此之前,C/C直接使用物理硬件和操作系統的內存模型,因此,會由于不同平臺下的內存模型差異,有可能導致程序在一套平臺上并發完全正常,而在另…

深入解剖指針(4)

個人主頁&#xff08;找往期文章包括但不限于本期文章中不懂的知識點&#xff09;&#xff1a; 我要學編程(?_?)-CSDN博客 目錄 回調函數 qsort使用舉例 使用qsort函數排序整型數據 使用qsort排序結構數據 qsort函數的模擬實現 回調函數 回調函數就是一個通過函數指…

【Android12】Android性能調優工具SystemServerTiming日志

Android性能調優工具SystemServerTiming日志 性能優化、穩定性優化是Android系統優化的兩大方面&#xff0c;對于性能調試Android提供了很多工具&#xff0c;比如&#xff1a;bootchart、systrace、perfboot、log、dmsg等等。 SystemServerTiming是Android原生系統中一個日志…

《Spring Security 簡易速速上手小冊》第10章 未來趨勢與高級話題(2024 最新版)

文章目錄 10.1 云原生安全性趨勢10.1.1 基礎知識10.1.2 重點案例&#xff1a;保護微服務通信10.1.3 拓展案例 1&#xff1a;容器安全最佳實踐10.1.4 拓展案例 2&#xff1a;自動化安全審計和合規性檢查 10.2 反應式編程與 Spring Security10.2.1 基礎知識10.2.2 重點案例&#…

nginx-圖片模塊

./configure --with-http_image_filter_module location / {root html;index index.html index.htm;if ($arg_w "") {set $arg_w -;}if ($arg_h "") {set $arg_h -;}image_filter resize $arg_w $arg_h;image_filter_jpeg_quality 95; } 訪問: 1234…

CSS錐形漸變:conic-gradient()

畫一個扇形圖&#xff0c;使用常規方法可能很難畫&#xff0c;但是用錐形漸變的話非常好畫 <style>.pattern{width: 100px; height: 100px;border-radius: 50%;background: conic-gradient(yellow 30deg , black 30deg , black 90deg , yellow 90deg ,yellow 150d…

Git分布式版本控制系統——git學習準備工作

一、Git倉庫介紹 開發者可以通過Git倉庫來存儲和管理文件代碼&#xff0c;Git倉庫分為兩種&#xff1a; 本地倉庫&#xff1a;開發人員自己電腦上的Git倉庫 遠程倉庫&#xff1a;遠程服務器上的Git倉庫 倉庫之間的運轉如下圖&#xff1a; commit&#xff1a;提交&#xff…

Decoupled Knowledge Distillation解耦知識蒸餾

Decoupled Knowledge Distillation解耦知識蒸餾 現有的蒸餾方法主要是基于從中間層提取深層特征&#xff0c;而忽略了Logit蒸餾的重要性。為了給logit蒸餾研究提供一個新的視角&#xff0c;我們將經典的KD損失重新表述為兩部分&#xff0c;即目標類知識蒸餾&#xff08;TCKD&a…

c++之旅——第四彈

大家好啊&#xff0c;這里是c之旅第三彈&#xff0c;跟隨我的步伐來開始這一篇的學習吧&#xff01; 如果有知識性錯誤&#xff0c;歡迎各位指正&#xff01;&#xff01;一起加油&#xff01;&#xff01; 創作不易&#xff0c;希望大家多多支持哦&#xff01; 本篇文章的主…

如何對比 MySQL 主備數據的一致性?

隨著業務范圍的擴大&#xff0c;很多企業為了保障核心業務的高可用性&#xff0c;選擇了 MySQL 主從架構&#xff0c;這一套方案通常具備主備數據同步、數據備份與恢復、讀寫分離、高可用切換等特性&#xff0c;是一種相當成熟可靠的數據庫架構方案。然而這套方案在特定情況下可…

Redis小白入門教程

Redis入門教程 1. Redis入門1.1 Redis簡介1.2 Redis服務啟動與停止1.2.1 Redis下載1.2.2 服務啟動命令1.2.3 客戶端連接命令1.2.4 修改Redis配置文件 2. Redis數據類型2.1 五種常用數據類型介紹2.1.1 字符串操作命令2.1.2 哈希操作命令2.1.3 列表操作命令2.1.4 集合操作命令2.1…

雙周回顧#006 - 這三個月

斷更啦~~ 上次更新時間 2023/11/23, 斷更近三個月的時間。 先狡辯下&#xff0c;因為忙、著實忙。因為忙&#xff0c;心安理得給斷更找了個借口&#xff0c;批評下自己~~ 這三個月在做啥&#xff1f;跨部門援助&#xff0c;支援公司互聯網的 ToC 項目&#xff0c;一言難盡。 …

智能時代:人工智能引領未來創新

智能時代&#xff1a;人工智能引領未來創新 1. 人工智能的定義與特點 人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;是指模擬、延伸和擴展人類智能的理論、方法、技術及應用系統的一門交叉學科。其特點包括學習能力、推理能力、感知能力和交互能力…

【C語言】InfiniBand 驅動mlx4_ib_init和mlx4_ib_cleanup

一、中文講解 這兩個函數是Linux內核模塊中對于Mellanox InfiniBand 驅動程序初始化和清理的函數。 mlx4_ib_init()函數是模塊初始化函數&#xff0c;使用__init宏標注&#xff0c;表示該函數只在模塊加載時運行一次。 函數執行的步驟如下&#xff1a; 1. 通過alloc_ordered_w…