作者:Grey
原文地址:
博客园:HDFS 分布式环境搭建
CSDN:HDFS 分布式环境搭建
准备四个Linux实例
每个实例对应的 host 和 ip 地址如下
node01 192.168.150.128node02 192.168.150.138node03 192.168.150.139node04 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=yesHOSTNAME=node01在 node02 上
执行hostnamectl set-hostname node02
执行
vi /etc/sysconfig/network设置为
NETWORKING=yesHOSTNAME=node02在 node03 上
执行hostnamectl set-hostname node03
执行
vi /etc/sysconfig/network设置为
NETWORKING=yesHOSTNAME=node03在 node04 上
执行hostnamectl set-hostname node04
执行
vi /etc/sysconfig/network设置为
NETWORKING=yesHOSTNAME=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.servicesystemctl disable firewalld.servicefirewall-cmd --reloadservice iptables stopchkconfig 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 startchkconfig 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.pubscp ~/.ssh/id_dsa.pub root@node03:~/.ssh/node1.id_rsa.pubscp ~/.ssh/id_dsa.pub root@node04:~/.ssh/node1.id_rsa.pub将node02的公钥发送到另外三个机器,在node02上执行
scp ~/.ssh/id_dsa.pub root@node01:~/.ssh/node2.id_rsa.pubscp ~/.ssh/id_dsa.pub root@node03:~/.ssh/node2.id_rsa.pubscp ~/.ssh/id_dsa.pub root@node04:~/.ssh/node2.id_rsa.pub将node03的公钥发送到另外三个机器,在node03上执行
scp ~/.ssh/id_dsa.pub root@node01:~/.ssh/node3.id_rsa.pubscp ~/.ssh/id_dsa.pub root@node02:~/.ssh/node3.id_rsa.pubscp ~/.ssh/id_dsa.pub root@node04:~/.ssh/node3.id_rsa.pub将node04的公钥发送到另外三个机器,在node04上执行
scp ~/.ssh/id_dsa.pub root@node01:~/.ssh/node4.id_rsa.pubscp ~/.ssh/id_dsa.pub root@node02:~/.ssh/node4.id_rsa.pubscp ~/.ssh/id_dsa.pub root@node03:~/.ssh/node4.id_rsa.pub在node01上执行
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keyscat ~/.ssh/node2.id_rsa.pub >> ~/.ssh/authorized_keyscat ~/.ssh/node3.id_rsa.pub >> ~/.ssh/authorized_keyscat ~/.ssh/node4.id_rsa.pub >> ~/.ssh/authorized_keys在node02上执行
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keyscat ~/.ssh/node1.id_rsa.pub >> ~/.ssh/authorized_keyscat ~/.ssh/node3.id_rsa.pub >> ~/.ssh/authorized_keyscat ~/.ssh/node4.id_rsa.pub >> ~/.ssh/authorized_keys在node03上执行
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keyscat ~/.ssh/node1.id_rsa.pub >> ~/.ssh/authorized_keyscat ~/.ssh/node2.id_rsa.pub >> ~/.ssh/authorized_keyscat ~/.ssh/node4.id_rsa.pub >> ~/.ssh/authorized_keys在node04上执行
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keyscat ~/.ssh/node1.id_rsa.pub >> ~/.ssh/authorized_keyscat ~/.ssh/node2.id_rsa.pub >> ~/.ssh/authorized_keyscat ~/.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/jdkexport HADOOP_HOME=/opt/bigdata/hadoopexport 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
node02node03node04在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 /bigdatahdfs dfs -mkdir -p /user/roothdfs dfs -put hadoop-2.6.5.tar.gz /user/root打开浏览器
通过:
http://node01:50070/explorer.html#/user/root
可以看到上传的文件 hadoop-2.6.5.tar.gz
本文来自博客园,作者:Grey Zeng,转载请注明原文链接:https://www.cnblogs.com/greyzeng/p/16663406.html