Hdoop 3.0 分布式配置

原文地址

学一门新技术,首先选择官方文档,如果英文水平不够可以找一份中文教程相互印证。碰到疑惑请首先选择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的稳定版

http://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


原文地址


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值