HDFS 分布式环境搭建 - Grey Zeng
source link: https://www.cnblogs.com/greyzeng/p/16663406.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
HDFS 分布式环境搭建
作者: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#/user/root
可以看到上传的文件 hadoop-2.6.5.tar.gz
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK