2

HDFS 分布式环境搭建 - Grey Zeng

 2 years ago
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.
neoserver,ios ssh client

HDFS 分布式环境搭建

作者:Grey

原文地址:

博客园:HDFS 分布式环境搭建

CSDN:HDFS 分布式环境搭建

准备四个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


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK