詳見fenghaootong-github
hadoop詳細配置
- hadoop基礎知識
java JDK配置
- 下載下傳JDK
- 解壓jdk到/usr/local/目錄下
- 配置環境變量
節點規劃
主機名稱 | IP位址 | 功能 |
---|---|---|
hadoop1 | 192.168.75.111 | NameNode、DataNode、resourcemanager、nodemanager |
hadoop2 | 192.168.75.112 | DataNode、nodemanager |
hadoop3 | 192.168.75.113 | DataNode、nodemanager |
建立虛拟機配置網絡
- 手動配置DHCP
- 修改域名,在/etc/sysconfig/network中添加HOSTNAME=hadoop1
- 把域名添加到/etc/hosts中
- 修改/etc/sysconfig/network-scripts/ifcfg-ens33檔案
- 添加DNS和網關一樣
- ONBOOT=yes
安裝nginx
- pcre
tar zxvf pcre-.tar.gz
cd pcre-
./configure && make && make install
- openssl
tar zxvf openssl-.tar.gz
cd openssl-fips-
./config && make && make install
- zlib
tar zxvf zlib-.tar.gz
cd zlib-
./configure && make && make install
- nginx
tar zxvf nginx-.tar.gz
cd nginx-
./configure && make && make install
單機版hadoop配置
- 下載下傳hadoop
- 解壓壓縮包到
目錄/usr/local/
- 配置環境變量
- 修改hadoop/etc/hadoop/hadoop-env.sh檔案中的JAVA環境變量為JDK路徑
- 測試
which hadoop
hadoop version
$ mkdir /home/htfeng/data/input
$ cp hadoop/etc/hadoop/*.xml /home/htfeng/data/input
$ hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-.jar grep /home/htfeng/data/input /home/htfeng/data/output 'dfs[a-z.]+'
$ cat /home/htfeng/data/output/*
$ hdfs dfs -ls /
克隆虛拟機
- 修改網卡資訊(忽略)
- 修改主機名
vi /etc/sysconfig/network
- 修改ip資訊
vi /etc/sysconfig/network-scripts/ifcfg-ens33
修改ip、硬體位址和UUID
- 修改映射
vi /etc/hosts
hadoop2 www.hadoop2.com
叢集配置
- 配置JDK
- 配置hadoop
- 配置hadoop-env.sh
- 配置hadoop-core-site.xml
- 配置hadoop-hdfs-site.xml
- 配置hadoop-mapred-site.xml
- 配置hadoop-yarn-site.xml
- 配置slave
- 發送hadoop檔案到所有機子上
配置core-site.xml
配置hadoop-hdfs-site.xml
配置hadoop-mapred-site.xml
配置hadoop-yarn-site.xml
配置slave
發送hadoop檔案到所有機子上
scp -r ../hadoop-2.8.4/ hadoop2:/usr/local/
scp -r ../hadoop-2.8.4/ hadoop3:/usr/local/
啟動之前在namenode伺服器上格式化,隻需一次即可
- 關閉防火牆
systemctl stop firewalld.service
hadoop namenode -format
全啟動:start-all.sh
子產品啟動:
start-dfs.sh
start-yarn.sh
單個程序啟動
hadoop-daemon.sh start/stop namenode
hadoop-daemons.sh start/stop datanode
yarn-daemon.sh start/stop namenode
yarn-daemons.sh start/stop datanode
mr-jobhistory-daemon.sh start/stop historyserver
netstat -tnpl:檢視啟動端口
- 啟動start-dfs.sh測試
- 上傳和下載下傳檔案(測試hdfs)
hdfs dfs -put ./README.txt /
- 啟動start-yarn.sh跑一個mapreduce作業
yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-.jar wordcount /README.txt /out/
免密登入
ssh-keygen -t rsa
ssh-copy-id hadoop1
ssh-copy-id hadoop2
ssh-copy-id hadoop3
HDFS shell
hdfs的shell
指令和shell指令基本一緻
hdfs dfs -
Usage: hadoop fs [generic options]
[-appendToFile <localsrc> ... <dst>]
[-cat [-ignoreCrc] <src> ...]
[-checksum <src> ...]
[-chgrp [-R] GROUP PATH...]
[-chmod [-R] <MODE[,MODE]... | OCTALMODE> PATH...]
...
hdfs dfs -ls /
hadoop fs - /
hdfs dfs -ls -R / #遞歸檢視
hdfs dfs -mkdir -p / #遞歸建立
hdfs dfs -touchz /test/te.txt
hdfs dfs -put ./if.sh /if.sh # 本地目錄上傳到hdfs檔案目錄
hdfs dfs -get /if.sh /home/htfeng #從hdfs檔案目錄下載下傳
hdfs dfs -du -s / #統計目錄大小
window中安裝maven
- 下載下傳maven
- 解壓并複制到一個目錄
- 配置環境變量
- 配置maven,修改settings.xml檔案,指定本地倉庫位置
, maven庫H:\hadoop\mvnrepositry
- 和java的編輯工具整合(eclipse,idea,myeclipse等)
maven項目測試
hadoop核心協定RPC(遠端過程調用協定)
例子
- 建一個rpc的包,然後建立下面三個java腳本,具體代碼
- hello.java
- RPCServer.java
- RPCClient.java
zookeeper
- zookeeper基礎知識
- Download
- 解壓到/usr/local/
- 配置環境變量
- 修改配置檔案/zookeeper/conf/zoo.cfg
tickTime=2000
initLimit=5
syncLimit=2
dataDir=/home/htfeng/zkdata/
clientPort=2181
server.1=hadoop1:2888:3888
server.2=hadoop2:2888:3888
server.3=hadoop3:2888:3888
在每個伺服器上面建立myid,内容為server.X中的X
mkdir /home/htfeng/zkdata
vi /home/htfeng/zkdata/myid
zookeeper測試
HDFS的HA
- HDFS的HA基礎講解
規劃
主機名稱 | IP位址 | 功能 |
---|---|---|
hadoop1 | 192.168.75.111 | NameNode、DataNode、jouranlnode、quroumPeerMain、zkf |
hadoop2 | 192.168.75.112 | DataNode、jouranlnode、quroumPeerMain、zkf |
hadoop3 | 192.168.75.113 | DataNode、jouranlnode、quroumPeerMain |
在配置HA之前,要對之前的配置做一個備份
mv /usr/local/hadoop-/ /usr/local/hadoop-_bak
HA的配置
- 解壓下載下傳的hadoop,到/usr/local/目錄下
在/usr/local/hadoop-2.8.4/etc/hadoop/下
- 配置hadoop-env.sh
- 配置hadoop-core-site.xml
- 配置hadoop-hdfs-site.xml
- 配置slave
- 發送hadoop檔案到所有機子上
- hadoop2也作為namenode免密登陸
配置hadoop-env.sh
配置hadoop-core-site.xml
配置hadoop-hdfs-site.xml
配置slaves
發送hadoop檔案到所有機子上
scp -r ../hadoop-2.8.4/ hadoop2:/usr/local/
scp -r ../hadoop-2.8.4/ hadoop3:/usr/local/
hadoop2也作為namenode免密登陸
- 在hadoop2主機上
ssh-keygen -t rsa
ssh-copy-id hadoop2
ssh-copy-id hadoop1
ssh-copy-id hadoop3
按步驟依次執行下面程式
- 啟動zk
- 啟動journalnode服務(單個啟動、多個程序啟動)
hadoop-daemon.sh start journalnode
hadoop-daemons.sh start journalnode
- 挑選兩個namenode中的一台進行格式化,然後并且啟動
hdfs namenode -format
hadoop-daemon.sh start namenode
- 在另一台namenode的機器上拉去中繼資料(也可以複制)
- 格式化zk
- 啟動
會有五個程序,檢視是否全部啟動
檢視webUI是否正(http://192.168.75.111:50070,http://192.168.75.112:50070)
在hdfs中的讀寫檔案
然後關閉一個namenode失敗,檢視是否自動切換
kill -9 [namenode pid]
hadoop-daemon.sh start namenode
Yarn的HA
規劃
主機名稱 | IP位址 | 功能 |
---|---|---|
hadoop1 | 192.168.75.111 | resourcemanager、nodemanager、quroumPeerMain |
hadoop2 | 192.168.75.112 | nodemanager、quroumPeerMain |
hadoop3 | 192.168.75.113 | nodemanager、quroumPeerMain |
HA的配置
- HA基礎
- 配置yarn-site.xml
- 配置mapred-site.xml
- 遠端發送
- 直接啟動
- 測試
配置yarn-site.xml
配置mapred-site.xml
遠端發送
scp -r ./etc/hadoop/mapred-site.xml ./etc/hadoop/yarn-site.xml hadoop2:/usr/local/hadoop-/etc/hadoop/
scp -r ./etc/hadoop/mapred-site.xml ./etc/hadoop/yarn-site.xml hadoop3:/usr/local/hadoop-/etc/hadoop/
直接啟動
#hadoop1
start-yarn.sh
#hadoop2
yarn-daemon.sh start resourcemanager
測試
yarn jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-.jar wordcount /words /out/
轉載于:https://www.cnblogs.com/htfeng/p/9931737.html