hadoop2.x linux集群部署

hadoop2.x 集群部署

  • 下載hadoop
  • 需要提前準備好jdk1.8 和rsync 和ssl
  • 集群信息
  • 解壓安裝
    • 配置環境變量
    • 配置site配置文件(/hadoop/etc/hadoop目錄下)
      • core-site.xml
      • hdfs-site.xml
      • yarn-site.xml
      • mapred-site.xml
      • hadoop-env.sh要追加java_home!
      • 配置節點slaves
    • 配置免密ssh訪問
      • 沒有ssh-copy-id腳本的情況下,免密登錄
    • 編寫xsync腳本
    • 分發到其他集群
  • 啟動集群
  • 查看集群啟動情況

接收到一個項目 需要進行hadoop的數據遷移.舊版本使用的是hadoop2.x的,所以這里記錄一下hadoop2.x的集群部署. 以便于后續數據通過distcp來遷移

linux版本是centos7

下載hadoop

我這里下的是這個版本hadoop-2.10.2.tar.gz. 去清華鏡像 或者阿里華為都可以

需要提前準備好jdk1.8 和rsync 和ssl

  • jdk hadoop環境的需要
  • rsync 同步集群分發的時候需要
  • ssl 免密登陸訪問集群,便于分發

集群信息

我這里有12臺機,其中2臺要部署hive.這里一定要使用hostname來進行配置,只通過ip來配置的話,總有一些奇奇怪怪的問題.

涉及的hadoop服務集群如下

hadoop98
hadoop99
hadoop100
hadoop102
hadoop103
hadoop104
hadoop105
hadoop106
hadoop107
hadoop108
hive97
hive101
------以上服務器 都是hadoop節點涉及hive服務器 
hive97  主要用這個 ,這臺配置了mysql
hive101

解壓安裝

需要提前安裝好jdk 并配置好java_home
然后把hadoop的壓縮包扔到服務器 tar -zxvf 解壓就行.解壓后,我是放置在/usr/local目錄下面

配置環境變量

接下來配置一下hadoop的環境變量
/etc/profile

export HADOOP_HOME=/usr/local/hadoop-2.10.2
export PATH=$PATH:$REDIS_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

記得 source /etc/profile

配置site配置文件(/hadoop/etc/hadoop目錄下)

core-site.xml

<configuration><property><name>fs.defaultFS</name><value>hdfs://hadoop98:9000</value></property><property><name>hadoop.tmp.dir</name><value>/usr/local/hadoop-2.10.2/tmp</value></property><property><name>fs.trash.interval</name><value>1440</value></property>
</configuration>

hdfs-site.xml

<configuration> <property><name>dfs.namenode.http-address</name><value>hadoop98:50070</value></property><property><name>dfs.namenode.secondary.http-address</name><value>hadoop98:50090</value></property><property><name>dfs.namenode.name.dir</name><value>file:/opt/hadoop/dfs/name</value></property><property><name>dfs.datanode.data.dir</name><value>file:/opt/hadoop/dfs/data</value></property><property><name>dfs.webhdfs.enabled</name><value>true</value></property>  <property><name>dfs.replication</name><value>1</value></property><property><name>dfs.permissions</name><value>false</value></property>
</configuration>

yarn-site.xml


<configuration><property><name>yarn.resourcemanager.hostname</name><value>hadoop98</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><property><name>yarn.log-aggregation-enable</name><value>true</value></property><property><name>yarn.log-aggregation.retain-seconds</name><value>604800</value></property><property><name>yarn.nodemanager.resource.memory-mb</name><value>20480</value></property><property><name>yarn.scheduler.minimum-allocation-mb</name><value>2048</value></property><property><name>yarn.nodemanager.vmem-pmem-ratio</name><value>2.1</value></property>
</configuration>

mapred-site.xml

<configuration><property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>mapreduce.jobhistory.address</name><value>hadoop98:10020</value></property><property><name>mapreduce.jobhistory.webapp.address</name><value>hadoop98:19888</value></property>
</configuration>

hadoop-env.sh要追加java_home!

export HADOOP_IDENT_STRING=$USER
export JAVA_HOME=/usr/local/jdk1.8.0_281

配置節點slaves

[root@hadoop98 hadoop]# cat slaves
hadoop98
hadoop99
hadoop100
hadoop102
hadoop103
hadoop104
hadoop105
hadoop106
hadoop107
hadoop108
hive97
hive101
[root@hadoop98 hadoop]# 

配置免密ssh訪問

先到 ~/.ssh目錄下 生產密鑰對
ssh-keygen -t rsa
然后路徑會生成公鑰(id_rsa.pub)和私鑰(id_rsa)

然后通過ssh-copy-id 服務器名(ip),將公鑰分發給其他集群中的服務器.然后就可以ssh 免密登錄了

沒有ssh-copy-id腳本的情況下,免密登錄

通過指令

cat ~/.ssh/id_*.pub|ssh root@待訪問的主機IP 'cat>>.ssh/authorized_keys' 

解釋

  1. 當前主機位 ,需要免密登錄 待訪問的主機.則執行上面那一條命令
  2. 執行后會提示輸入一此,待訪問的主機的密碼,隨后成功后即可

但是,在執行上述之前,要確保待訪問的主機的~目錄下有.ssh文件夾,如果報錯要提前執行以下

ssh 待訪問的主機 'mkdir .ssh'

編寫xsync腳本

xsync這里就是一個名稱, 你想改成什么都可以.
他的原理就是通過 使用 rsync同步增量覆蓋分發而已
這里測試 hadoop98-100 3臺機器,要全部分發的話自行修改 for的循環即可

  • 這里除了 for 的循環設備,其他都不用改,直接抄就行.你有時間的話 可以自行理解一下
  • 為了方便使用xsync,建議在/usr/bin目錄下新建這個文件,并授權chmod 777.這樣無論到哪個位置 都可以直接使用了
  • 使用方法: xsync 需要同步的目錄或者文件即可
#!/bin/bash#1. 判斷參數個數
if [ $# -lt 1 ]
thenecho Not Enough Arguement!exit;
fi#2. 遍歷集群所有機器
for host in hadoop98 hadoop99 hadoop100
doecho ====================  $host  ====================#3. 遍歷所有目錄,挨個發送for file in $@do#4. 判斷文件是否存在if [ -e $file ]then#5. 獲取父目錄pdir=$(cd -P $(dirname $file); pwd)#6. 獲取當前文件的名稱fname=$(basename $file)ssh $host "mkdir -p $pdir"rsync -av $pdir/$fname $host:$pdirelseecho $file does not exists!fidone
done

分發到其他集群

同步hadoop   xsync /usr/local/hadoop
同步環境變量  xsync /etc/profile
這里在集群機器上,還要執行source /etc/profile .這里直接通過ssh 服務器來 遠程執行也是可以的----以下 看自己的需求------------
當前,也需要同步jdk  xsync /usr/local/jdk

啟動集群

這里意識hadoop98作為主服務器,在這上面執行 start-all.sh即可(這里沒有這個命令的話,檢查一下環境變量是否配置)
或者執行 start-dfs.sh

查看集群啟動情況

hadoop dfsadmin -report

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

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

相關文章

【計算方法與科學建模】矩陣特征值與特征向量的計算(四):乘冪法及其python實現

文章目錄 一、Jacobi 旋轉法二、Jacobi 過關法三、Householder 方法四、乘冪法 矩陣的特征值&#xff08;eigenvalue&#xff09;和特征向量&#xff08;eigenvector&#xff09;在很多應用中都具有重要的數學和物理意義。 本文將詳細介紹乘冪法的基本原理和步驟&#xff0c;并…

【JavaSE】基礎筆記 - 異常(Exception)

目錄 1、異常的概念和體系結構 1.1、異常的概念 1.2、 異常的體系結構 1.3 異常的分類 2、異常的處理 2.1、防御式編程 2.2、異常的拋出 2.3、異常的捕獲 2.3.1、異常聲明throws 2.3.2、try-catch捕獲并處理 3、自定義異常類 1、異常的概念和體系結構 1.1、異常的…

datasets.Dataset.map方法學習筆記

Dataset.map 方法概要 可以將datasets中的Dataset實例看做是一張數據表。map方法會將輸入的function按照指定的方式應用在每一行&#xff08;每一行稱為一個example&#xff09;上。本文采用一下示例進行說明&#xff1a; from datasets import Dataset # datasets.__versi…

前端開發工具集合

文章目錄 Visual Studio Code (VS Code)安裝及配置一、安裝二、常用插件三、相關配置四、統一配置代碼 Visual Studio Code (VS Code)安裝及配置 一、安裝 下載地址&#xff1a;https://code.visualstudio.com/ ?> VS Code 下載慢&#xff0c;解決辦法請點擊 雙擊下載文件…

Java零基礎——SpringMVC篇

1.SpringMVC介紹 SpringMVC是Spring框架中的一個組件&#xff0c;是一個輕量級的web的MVC框架&#xff0c;充當controller,其本質就是一個Servlet。 1.1 傳統Servlet的不足 每個請求&#xff0c;都需要定義一個Servlet。雖然可以在service方法中&#xff0c;根據業務標識進行…

【Linux 帶寬限速】trickle,限制docker 上傳速度

限制docker 上傳速度 然而&#xff0c;你可以使用第三方工具來實現這個目的。一個常用的工具是 trickle&#xff0c;它可以模擬網絡帶寬。 首先&#xff0c;你需要安裝 trickle。在 Ubuntu 上&#xff0c;可以使用以下命令安裝&#xff1a; sudo apt-get install trickle然后…

deepxde 源碼閱讀筆記(長期更新)

2023.11.23 閱讀的deepxde version: 1.9.0 1. train_aux_vars &#xff0c;即pde當中的第三個參數 這個變量的含義困惑很久。最后發現就是operator learning的PDEs方程parameters。 脈絡&#xff1a;def pde aux_vars-> deepxde目前支持tf1最多&#xff0c;但是對其他框架…

系列二、Spring整合單元測試

一、概述 Spring中獲取bean最常見的方式是通過ClassPathXmlApplicationContext 或者 AnnotationConfigApplicationContext的getBean()方式獲取bean&#xff0c;那么在Spring中如何像在SpringBoot中直接一個類上添加個SpringBootTest注解&#xff0c;即可在類中注入自己想要測試…

優秀的企業協同OA系統如何促進團隊協作?

優秀的企業協同OA系統可以幫助團隊協同工作變得更簡單、更高效。 一、以下是一些優秀的企業協同OA系統可以幫助團隊協作的方法&#xff1a; 1、提高工作效率 優秀的企業協同OA系統可以提高工作效率&#xff0c;減少工作的重復性和低效率。例如&#xff0c;可以使用共享日歷和…

vue2生命周期

前言 vue的生命周期其實可以分為兩塊,一個是vue實例的生命周期,一個是組件的生命周期。 vue實例的生命周期方法共有4個:$mout,$forceUpdate,$nextTick,$destroy vue組件的生命周期鉤子共有8個:beforeCreate,created,beforeMount,mounted,beforeUpdate, updated,beforeDestr…

C/C++小寫字母的判斷 2022年3月電子學會中小學生軟件編程(C/C++)等級考試一級真題答案解析

目錄 C/C小寫字母的判斷 一、題目要求 1、編程實現 2、輸入輸出 二、算法分析 三、程序編寫 四、程序說明 五、運行結果 六、考點分析 C/C小寫字母的判斷 2022年3月 C/C編程等級考試一級編程題 一、題目要求 1、編程實現 輸入一個字符&#xff0c;判斷是否是英文小…

iframe內部子頁面與外部主頁面通訊

文章目錄 一、問題二、解決2.1、子頁面2.2、主頁面 三、知識點3.1、[瀏覽器兼容性](https://developer.mozilla.org/zh-CN/docs/Web/API/Window/postMessage#%E6%B5%8F%E8%A7%88%E5%99%A8%E5%85%BC%E5%AE%B9%E6%80%A7)3.2、詳解3.2.1、發送方3.2.2、接收方 一、問題 如上所示&a…

被刪數據庫+勒索

被刪數據庫勒索 – WhiteNights Site 標簽&#xff1a;日志 快照在手&#xff0c;天下我有 服務器又給人黑了。這次是給人黑了數據庫&#xff0c;被人刪庫勒索&#xff0c;先放圖吧。我還花了今天一個下午的時間查修這個漏洞&#xff0c;導致網站有接近6個小時都沒法訪問。 …

編程示例: Session Id的生成

實現思路 Session的實現方式如下&#xff1a;在用戶第一次登錄的時候&#xff0c;系統為它分配一個唯一Id(被稱為Session Id)作為標識&#xff0c;并且 記錄下這個用戶的用戶名、要登錄的賬套名、用戶擁有的權限等&#xff0c;以Id為鍵&#xff0c;用戶名、賬套名等信息為值保…

云原生Kubernetes系列 | Kubernetes靜態Pod的使用

云原生Kubernetes系列 | Kubernetes靜態Pod的使用 靜態pod不建議在master上操作,因為master上跑的是集群核心靜態pod,如果配置失敗,會導致集群故障。建議在knode1或knode2上去做。 kubernetes master節點上的核心組件pod其實都是靜態pod: [root@k8s-master ~]# ls /etc/ku…

java中鎖的使用-實戰

技術主題 技術原理 在實際的業務中,為了保證線程安全,會進行對一些邏輯進行加鎖,保證當前只有一個線程在操作。在代碼中,我們經常使用兩種方式進行加鎖,來保證線程安全。一種是synchronized關鍵字,另一種是ReentrantLock加鎖。寫這一份的博客,就是為了記錄下鎖的基本使…

五分鐘,Docker安裝flink,并使用flinksql消費kafka數據

1、拉取flink鏡像&#xff0c;創建網絡 docker pull flink docker network create flink-network2、創建 jobmanager # 創建 JobManager docker run \-itd \--namejobmanager \--publish 8081:8081 \--network flink-network \--env FLINK_PROPERTIES"jobmanager.rpc.ad…

Redis 命令行 redis-cli 介紹

文章目錄 前言1. 連接 Redis 服務2. 從其他程序獲取輸入3. 連續執行相同的命令4. CSV 輸出5. 輸出幫助信息6. 清空屏幕7. 連續監控統計信息8. 輸出大 key 報告9. 監控 Redis 執行的命令 前言 redis-cli 是 Redis 自帶的命令行工具&#xff0c;是運維和開發人員常用的工具&…

【C++干貨鋪】適配器 | stack | queue

個人主頁點擊直達&#xff1a;小白不是程序媛 C系列學習專欄&#xff1a;C干貨鋪 代碼倉庫&#xff1a;Gitee 目錄 stack的介紹和使用 stack的介紹 stack的使用 queue的介紹和使用 queue的介紹 queue的使用 容器適配器 什么是適配器 STL中stack和queue的底層結構 d…

Doris擴容和縮容(六)

Doris 可以很方便的擴容和縮容 FE、BE、Broker 實例。 FE 擴容和縮容 可以通過將 FE 擴容至 3 個以上節點來實現 FE 的高可用。 1&#xff09;使用 MySQL 登錄客戶端后&#xff0c;可以使用 sql 命令查看 FE 狀態&#xff0c;目前就一臺 FE mysql -h hadoop1 -P 9030 -uroo…