作者:Grey
原文地址:
準備四個Linux範例
每個範例對應的 host 和 ip 地址如下
node01 192.168.150.128
node02 192.168.150.138
node03 192.168.150.139
node04 192.168.150.140
每個節點的安排如下
host | NN | SNN | DN |
---|---|---|---|
node01 | √ | ||
node02 | √ | √ | |
node03 | √ | ||
node04 | √ |
首先,需要設定靜態 ip,
在node01~node04
上,分別執行
vi /etc/sysconfig/network-scripts/ifcfg-ens33
內容參考如下內容修改
在 node01 上
修改BOOTPROTO="static"
新增IPADDR="192.168.150.128"
然後執行:
service network restart
在 node02 上
修改BOOTPROTO="static"
新增IPADDR="192.168.150.138"
然後執行
service network restart
在 node03 上
修改BOOTPROTO="static"
新增IPADDR="192.168.150.139"
然後執行
service network restart
在 node04 上
修改BOOTPROTO="static"
新增IPADDR="192.168.150.140"
然後執行
service network restart
接下來,設定 hostname
在 node01 上
執行hostnamectl set-hostname node01
執行
vi /etc/sysconfig/network
設定為
NETWORKING=yes
HOSTNAME=node01
在 node02 上
執行hostnamectl set-hostname node02
執行
vi /etc/sysconfig/network
設定為
NETWORKING=yes
HOSTNAME=node02
在 node03 上
執行hostnamectl set-hostname node03
執行
vi /etc/sysconfig/network
設定為
NETWORKING=yes
HOSTNAME=node03
在 node04 上
執行hostnamectl set-hostname node04
執行
vi /etc/sysconfig/network
設定為
NETWORKING=yes
HOSTNAME=node01
設定本機的ip到主機名的對映關係,在node01~node04
上分別執行vi /etc/hosts
並新增如下資訊:
192.168.150.128 node01
192.168.150.138 node02
192.168.150.139 node03
192.168.150.140 node04
接下來,需要關閉防火牆
在node01~node04
上都執行如下命令
systemctl stop firewalld.service
systemctl disable firewalld.service
firewall-cmd --reload
service iptables stop
chkconfig iptables off
關閉 SELINUX
在node01~node04
上執行vi /etc/selinux/config
, 設定如下選項
SELINUX=disabled
做時間同步
在node01~node04
上分別執行yum install ntp -y
且做如下設定
vi /etc/ntp.conf
新增如下資訊
server ntp1.aliyun.com
然後在node01~node04
上都執行如下命令
service ntpd start
chkconfig ntpd on
接下來是設定免密登入
在node01~node04
上分別執行
ssh localhost
輸入yes
輸入密碼
在node01~node04
上執行如下命令生成本機的金鑰和公鑰ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
將node01
的公鑰傳送到另外三個機器,在node01
上執行
scp ~/.ssh/id_dsa.pub root@node02:~/.ssh/node1.id_rsa.pub
scp ~/.ssh/id_dsa.pub root@node03:~/.ssh/node1.id_rsa.pub
scp ~/.ssh/id_dsa.pub root@node04:~/.ssh/node1.id_rsa.pub
將node02
的公鑰傳送到另外三個機器,在node02
上執行
scp ~/.ssh/id_dsa.pub root@node01:~/.ssh/node2.id_rsa.pub
scp ~/.ssh/id_dsa.pub root@node03:~/.ssh/node2.id_rsa.pub
scp ~/.ssh/id_dsa.pub root@node04:~/.ssh/node2.id_rsa.pub
將node03
的公鑰傳送到另外三個機器,在node03
上執行
scp ~/.ssh/id_dsa.pub root@node01:~/.ssh/node3.id_rsa.pub
scp ~/.ssh/id_dsa.pub root@node02:~/.ssh/node3.id_rsa.pub
scp ~/.ssh/id_dsa.pub root@node04:~/.ssh/node3.id_rsa.pub
將node04
的公鑰傳送到另外三個機器,在node04
上執行
scp ~/.ssh/id_dsa.pub root@node01:~/.ssh/node4.id_rsa.pub
scp ~/.ssh/id_dsa.pub root@node02:~/.ssh/node4.id_rsa.pub
scp ~/.ssh/id_dsa.pub root@node03:~/.ssh/node4.id_rsa.pub
在node01
上執行
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/node2.id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/node3.id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/node4.id_rsa.pub >> ~/.ssh/authorized_keys
在node02
上執行
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/node1.id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/node3.id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/node4.id_rsa.pub >> ~/.ssh/authorized_keys
在node03
上執行
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/node1.id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/node2.id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/node4.id_rsa.pub >> ~/.ssh/authorized_keys
在node04
上執行
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/node1.id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/node2.id_rsa.pub >> ~/.ssh/authorized_keys
cat ~/.ssh/node3.id_rsa.pub >> ~/.ssh/authorized_keys
接下來,需要在node01~node04
上都安裝Java環境,安裝過程略。
node01~node04
上都建立好目錄
mkdir -p /opt/bigdata
在node01~node04
上,將hadoop
安裝包上傳到/opt/bigdata
下,然後執行:
tar xf hadoop-2.6.5.tar.gz
然後執行:
mv hadoop-2.6.5 hadoop
新增環境變數vi /etc/profile
把Hadoop
加入環境變數:
export JAVA_HOME=/usr/local/jdk
export HADOOP_HOME=/opt/bigdata/hadoop
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
然後執行source /etc/profile
接下來是 Hadoop 設定,在node01~node04
上
執行vi $HADOOP_HOME/etc/hadoop/hadoop-env.sh
設定 JAVA_HOME:export JAVA_HOME=/usr/local/jdk
在node01~node04
上執行vi $HADOOP_HOME/etc/hadoop/core-site.xml
在<configuration></configuration>
之間,加入如下設定:
<property>
<name>fs.defaultFS</name>
<value>hdfs://node01:9000</value>
</property>
在node01~node04
上執行vi $HADOOP_HOME/etc/hadoop/hdfs-site.xml
在<configuration></configuration>
之間,加入如下設定
<property>
<name>dfs.replication</name>
<value>2</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/var/bigdata/hadoop/full/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/var/bigdata/hadoop/full/dfs/data</value>
</property>
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>node02:50090</value>
</property>
<property>
<name>dfs.namenode.checkpoint.dir</name>
<value>/var/bigdata/hadoop/full/dfs/secondary</value>
</property>
在node01~node04
上執行vi $HADOOP_HOME/etc/hadoop/slaves
node02
node03
node04
在node01
上格式化啟動
格式化hdfs namenode -format
啟動start-dfs.sh
如果使用 Windows作為使用者端,那麼可以設定 hosts 條目
進入C:\Windows\System32\drivers\etc
host 檔案中增加如下條目:
192.168.150.128 node01
192.168.150.138 node02
192.168.150.139 node03
192.168.150.140 node04
測試一下
在node01
上,執行如下命令,
hdfs dfs -mkdir /bigdata
hdfs dfs -mkdir -p /user/root
hdfs dfs -put hadoop-2.6.5.tar.gz /user/root
開啟瀏覽器
通過:
http://node01:50070/explorer.html
可以看到上傳的檔案 hadoop-2.6.5.tar.gz
本文來自部落格園,作者:Grey Zeng,轉載請註明原文連結:https://www.cnblogs.com/greyzeng/p/16663406.html