閱讀280 返回首頁    go 汽車大全


Hdoop 2.7.3 分布式配置

學一門新技術,首先選擇官方文檔,如果英文水平不夠可以找一份中文教程相互印證。碰到疑惑請首先選擇google(用google是需要翻牆的,我用的是穿雲兔),然後再考慮百度,如果還是解決不了,請加個相關的QQ群,裏麵會有相關資料。而且可以向群友請教,但是要放寬心態,記住,有人幫忙解答是我的福氣,沒人幫忙解答是正常情況。

一.安裝虛擬機 CenterOS 7.2

本人使用的虛擬機是VMware。

資源規劃

m1: 1G 內存 10G 硬盤

s1:512M 內存 10G硬盤

s2:512M 內存 10G硬盤

image
image
image
image
image
image
image
image

二.準備好hadoop穩定版。2.7.3是hadoop 2.X的穩定版

https://www-eu.apache.org/dist/hadoop/common/stable/
image

準備好工具 xshell xftp

通過xftp將下載好的資源放在 /user 下

解壓:tar -zxvf hadoop-2.7.3.tar.gz
重命名: mv hadoop-2.7.3.tar.gz hadoop
刪除下載包:rm -rf hadoop-2.7.3.tar.gz

三.配置靜態IP(非必須)

查看網卡配置

ip add

image

進入網絡配置文件目錄

cd /etc/sysconfig/network-scripts

編輯配置文件,添加修改以下內容

vim ifcfg-eno16777736

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=a33a7da0-6630-43c3-8b1b-135e2c00f29f
DEVICE=eno16777736
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPADDR0=192.168.1.111
NETMASK=255.255.255.0
PREFIX0=24
GATEWAY0=192.168.1.1
DNS1=8.8.8.8

~
image

修改主機名

hostnamectl set-hostname m1

網卡重啟

service network restart

同理配置s1機器跟s2機器,最後得到:
hostname ip
m1 192.168.1.111
s2 192.168.1.112
s3 192.168.1.113

修改時區

timedatectl set-timezone Asia/Shanghai

配置局域網映射 x3( x3表示三個機器都要配置)
echo "192.168.1.111 m1" >> /etc/hosts
echo "192.168.1.112 s2" >> /etc/hosts
echo "192.168.1.113 s3" >> /etc/hosts
創建 hadoop 用戶以及 hadoop 用戶組 x3
groupadd hadoop
useradd -m -g hadoop hadoop
passwd hadoop

計算機網絡: IP地址,子網掩碼,網段表示法,默認網關,DNS服務器詳解

四.配置jdk。

因為hadoop是用java語言編寫的,想要讓hadhadoop跑起來,一定需要jdk這個環境變量的。我選擇的是jdk1.8。

查看當前係統是否安裝了jdk

rpm -qa | grep jdk

image

卸載

rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64

rpm -e --nodeps java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64

rpm -e --nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64

rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64

下載jdk (去官網下載即可),下載好後將jdk放在/user目錄下
解壓縮

tar -zxvf jdk-8u131-linux-x64.tar.gz

刪除下載包

rm -rf jdk-8u131-linux-x64.tar.gz

配置環境變量

vim /etc/profile

在最下方加上這麼幾句
  • export JAVA_HOME=/usr/jdk1.8.0_131/
  • export JRE_HOME=/usr/jdk1.8.0_131/jre
  • export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
  • export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin image
使環境變量生效

source /etc/profile

查看是否生效

java -version

如果結果如圖表示環境變量配置已OK

image

五.SSH免密登錄

配置ssh環境變量(x3 表示三個節點都要做此動作)

echo 'eval $(ssh-agent)' >> /etc/profile

刷新環境變量(x3)

source /etc/profile

切換到hadoop用戶組(x3)

su hadoop

ssh初始化 (x3)

ssh localhost

進入hadoop用戶目錄(m1 表示隻有m1節點做此動作)

cd ~/.ssh

利用 ssh-keygen 生成密鑰 然後一直按回車(m1)

ssh-keygen -t rsa -P ""

將id_rsa.pub的內容追加到了authorized_keys的內容後麵 (m1)

cat id_rsa.pub >> authorized_keys

將公鑰copy到s2 會要輸入s2 hadoop用戶的登錄密碼(m1)

ssh-copy-id s2

將公鑰copy到s3 會要輸入s3 hadoop用戶的登錄密碼(m1)

ssh-copy-id s3

使用 ssh-agent 實現免密登錄(m1)

ssh-add ~/.ssh/id_rsa

修改權限 ~/.ssh/*目錄的權限(x3)

chmod 600 ~/.ssh/authorized_keys

檢查免密登錄是否成功(m1)

ssh s2

如圖,表示ssh免密登錄已成功。注意,免密登錄隻能是m1發起 不能有s2 和 s3發起。

image

六.安裝hadoop 2.7.3 (x3)

好了一切準備工作已就緒,終於可以開搞了。因為不管是主節點還是從節點他們的配置都是相同的,所以我先在主節點上做好配置,然後直接通過ssh複製到從節點。通過SSH我們可以十分方便的將我們的節點擴充到成百上千個。

選擇hadoop的安裝地址(x3)

cd /user

解壓

tar -zxvf hadoop-2.7.3.tar.gz

刪除包(x3)

cd hadoop

#####重命名(x3)
mv hadoop-2.7.3/ hadoop

賦予權限 令hadoop用戶組下的hadoop用戶對/user/hadoop 及以下所有子目錄擁有管理員權限

chown -R hadoop:hadoop hadoop(x3)

在/user/hadoop目錄下創建幾個目錄,用來放臨時文件
  • mkdir dfs
  • mkdir dfs/name
  • mkdir dfs/data
  • mkdir tmp
配置配置文件 都在/usr/hadoop/etc/hadoop目錄下
  1. hadoop-env.sh
  2. yarn-env.sh
  3. slaves
  4. core-site.xml
  5. hdfs-site.xml
  6. mapred-site.xml
  7. yarn-site.xml
  8. hadoop-env.sh 配置hadoop的java環境變量 export JAVA_HOME=/usr/jdk1.8.0_131
  9. yarn-env.sh 配置yarm的java環境變量 export JAVA_HOME=/usr/jdk1.8.0_131
  10. slaves slaves下的所有機器都是當前name node 的data node 如果是偽分布式配置localhost,我這邊配置的是s2 和s3 s2 s3
  11. core-site.xml 配置hadoop的一些重要參數,包括緩存文件的保存路徑,hdfs文件係統的入口
key value
hadoop.tmp.dir file:/usr/hadoop/tmp
fs.default.name hdfs://m1:9000
dfs.permissions false
fs.file.impl org.apache.hadoop.fs.LocalFileSystem
  • hdfs-site.xml 配置hdfs相關內容,包括備用節點,name node , data node的存儲文件的位置
key value
dfs.namenode.secondary.http-address m1:50090
dfs.replication 1
dfs.namenode.name.dir file:/usr/hadoop/tmp/dfs/name
dfs.datanode.data.dir file:/usr/hadoop/tmp/dfs/data
dfs.permissions false
  • mapred-site.xml 配置mapreduce相關的東西
key value
mapreduce.framework.name yarn
mapreduce.jobhistory.address m1:10020
mapreduce.jobhistory.webapp.address m1:19888
  • yarn-site.xml 配置yarn相關的東西
key value
yarn.resourcemanager.hostname m1
yarn.nodemanager.aux-services mapreduce_shuffle
配置hadoop環境變量(x3)

vim /etc/profile

#hadoop
export HADOOP_HOME=/user/hadoop
export PATH=$PATH:$HADOOP_HOME/sbin
export PATH=$PATH:$HADOOP_HOME/bin

使立即生效

source /etc/profile

到此,主節點已配置完全,從節點可參照主節點進行配置,下麵這個可以將主節點屬於hadoop的配置參數直接拷貝到從節點

scp -r /usr/hadoop/etc/hadoop/ root@s2:/usr/hadoop/etc

scp -r /usr/hadoop/etc/hadoop/ root@s3:/usr/hadoop/etc

hadoop初始化 (m1節點)

bin/hdfs namenode -format

啟動hadoop集群(m1節點)

start-all.sh

hadoop常用參數
hadoop默認參數

最後更新:2017-08-13 22:47:09

  上一篇:go  CentOS6.5 Redis3.x集群安裝配置
  下一篇:go  【深度:25張圖看透阿裏未來“新零售”的大局(附下載)】