Hadoop基礎之環境搭建
阿新 • • 發佈:2020-10-25
Hadoop基礎之環境搭建
環境搭建
- 本地環境
- 可以用於開發的單節點模式,沒有分散式的概念
- 偽分散式環境
- 一個節點表示一整個叢集,但是分散式的概念,一個節點充當分散式裡的所有角色
- 完全分散式
- 一個叢集中有N個節點,他們分別充當分散式中不同的角色,完成不同的任務
偽分散式環境搭建
- 下載安裝包
- 配製環境變數
#set hadoop enviornment
export HADOOP_HOME=/home/bduser/model/hadoop-2.7.6
PATH=$PATH:${HADOOP_HOME}/bin:${HADOOP_HOME}/sbin
- 修改配製檔案
- hdfs-site.xml
<configuration> <property> <name>dfs.namenode.secondary.http-address</name> <value>hadoop100:9001</value> </property> <property> <name>dfs.replication</name> <value>1</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>/home/bduser/model/hadoop-2.7.6/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/bduser/model/hadoop-2.7.6/dfs/data</value> </property> <property> <name>dfs.namenode.checkpoint.dir</name> <value>/home/bduser/model/hadoop-2.7.6/dfs/secondaryName</value> </property> <property> <name>dfs.hosts</name> <value>/home/user/modules/hadoop/etc/hadoop/dfs</value> </property> <property> <name>dfs.hosts.exclude</name> <value>/home/user/modules/hadoop/etc/hadoop/dfs.hosts.exclude</value> </property> </configuration>
- core-size.xml
<configuration> <property> <name>fs.default.name</name> <value>hdfs://hadoop100:9000</value> </property> <property> <name>net.topology.node.switch.mapping.impl</name> <value>hdfs.RackPerception</value> </property> </configuration>
- yarn-size.xml
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop100</value> </property> </configuration>
- slaves
- 填寫DataNode從節點
- hadoop-env.sh
- 修改JAVA_HOME路徑
- 填寫DataNode節點
- 格式化Hadoop
- hadoop namenode format
- 啟動
- hadoop/sbin/start-all.sh
- 需要什麼啟動什麼
- 注意事項
- 配置前
- jdk
- ssh免密登入
- 防火牆關閉
- 如果訪問不到webUI
- 檢查防火牆
- 檢查對映關係
- 瀏覽器不能使用IE或相容模式
- 需要格式化時
- 關閉服務
- 刪除創建出來的檔案
- 重新格式化
完全分散式
- 角色分配
- 第一臺機器,NameNode,R esourcesManager
- 中間機器,DataNode,NodeManager
- 最後一臺機器,DataNode,SecondaryNameNode
- 配製過程:虛擬機器為例
- 克隆虛擬機器
- 修改實體地址
- sudo vim /etc/udev/rules.d/70-persistent-net.relus
- 將原網絡卡註釋掉
- 將新網絡卡改名為原網絡卡
- 記錄網絡卡的實體地址
- 修改IP地址
- sudo vim /etc/sysconfig/network-scripts/ifcfg-etho
- 修改網絡卡配製檔案中的實體地址,將記錄的實體地址寫入
- 修改ip地址
- 重啟網路:service network restart
- 修改主機名
- sudo vim /etc/sysconfig/network
- HOSTNAME=新主機名
- 重新啟動:reboot
- 免密登入
- 由於節點時完整複製的,包括ssh
- 不需要重新配製
- 如果是實體機,需要將不同的公鑰附加到authorized_keys
- 修改Hadoop配製檔案
- 修改配製檔案
- 同步到所有節點
- rsync -r 原路徑/原檔案 目標使用者名稱@目標地址:目標路徑
- 核心命令:rsync,用法與scp一致
- 區別:
- scp全部複製
- rsync只同步不一樣的
- 可以使用指令碼來快速操作
- 遠端操作所有節點
- xcall
- 核心命令:ssh 使用者 主機名/ip 命令
- 格式化Hadoop叢集
- 只在主節點格式化
- hadoop/hdfs namenode -format
- 啟動服務
- 常見問題
- 時間不同步導致服務啟動失效
- 使用網路,連線國家受時中心進行自動同步
- 使用date命令手動設定
- 端口占用問題
- 多次格式化問題
- 如果多次格式化會導致dfs的id資訊與叢集不同步
- 在啟動hadoop時,如果SecondaryNameNode沒有起來,很有可能是所需要的埠被佔用,檢查是什麼服務已經佔據了埠,進行修改
- 刪除dfs目錄,重新格式化