Hadoop实战(2)_虚拟机搭建Hadoop的全分布模式

释放双眼,带上耳机,听听看~!

系列目录:

Hadoop实战(1)_阿里云搭建Hadoop2.x的伪分布式环境

建立Linux虚拟机(全节点)

客户机操作系统:CentOS-6.5-x86_64。

网络连接:host-only。Connecet automaticcally:打勾。

hadoopmaster
192.168.169.100
255.255.255.0

hadoopslave1
192.168.169.101
255.255.255.0

hadoopslave2
192.168.169.102
255.255.255.0

安装类型:Minimal

关闭防火墙和SELINUX(全节点)


1
2
3
4
5
6
7
8
9
1# iptables
2service iptables status
3service iptables stop
4# 不随操作系统自动启动
5chkconfig iptables off
6# 永久起效,reboot重启后生效
7vi /etc/selinux/config
8SELINUX=disabled
9

合并CentOS 6.5的两个DVD作为本地yum源(master节点)

创建相关目录


1
2
1mkdir -p /mnt/dvd1 /mnt/dvd2 /mnt/dvd /mnt/iso
2

说明:

/mnt/dvd1和/mnt/dvd2,用于挂载Centos6.5原有的两个镜像ISO文件。

/mnt/dvd,合并后的镜像文件存放目录。

/mnt/iso,制作好ISO镜像的存放目录。

挂载CentOS原来的两个镜像文件,首先, 复制第一张DVD(CentOS-6.5-x86_64-bin-DVD1)中的所有文件到/mnt/dvd目录下,然后,只拷贝第二张DVD中 Packages目录下的所有RPM文件到/mnt/dvd/Packages/目录下,由于第二张DVD(CentOS-6.5-x86_64-bin-DVD2)不能当做启动光盘,所以只需要RPM文件即可。


1
2
3
4
5
6
7
8
1mount /dev/sr0 /mnt/dvd1
2df -h
3cp -av /mnt/dvd1/* /mnt/dvd
4umount /mnt/dvd1
5
6mount /dev/cdrom /mnt/dvd2
7cp -v /mnt/dvd2/Packages/*.rpm /mnt/dvd/Packages/
8

合并TRANS.TBL,将DVD2中TRANS.TBL的信息追加到DVD1中TRANS.TBL后面,并排序保存。


1
2
3
4
5
1cat /mnt/dvd2/Packages/TRANS.TBL >> /mnt/dvd/Packages/TRANS.TBL
2mv /mnt/dvd/Packages/{TRANS.TBL,TRANS.TBL.BAK}
3sort /mnt/dvd/Packages/TRANS.TBL.BAK > /mnt/dvd/Packages/TRANS.TBL
4rm -rf /mnt/dvd/Packages/TRANS.TBL.BAK
5

备份原有yum配置文件


1
2
3
1cd /etc/yum.repos.d
2rename .repo .repo.bak *.repo
3

生成新的yum配置文件


1
2
3
4
5
6
7
8
9
1cat > /etc/yum.repos.d/CentOS-Media.repo <<EOF
2>[c6-media]
3>name=CentOS-\$releasever - Media
4>baseurl=file:///mnt/dvd
5>gpgcheck=0
6>enabled=1
7>gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
8>EOF
9

更新yum源


1
2
3
1yum clean all
2yum upgrade
3

将/mnt/dvd/打包为iso


1
2
3
1yum install genisoimage
2mkisofs -l -J -L -r -V "CentOS-6.5-x86_64" -o /mnt/iso/CentOS-6.5-x86_64-DVD.iso /mnt/dvd
3

CentOS搭建本地yum源(http方式)(master节点)

启动httpd服务


1
2
3
4
5
6
7
1# 验证是否安装httpd服务
2rpm -qa|grep httpd
3# yum install -y httpd
4yum install -y httpd
5# 启动httpd服务
6service httpd start
7

安装yum源


1
2
3
4
5
6
1# 在/var/www/html/下创建文件夹CentOS6.5
2mkdir -p /var/www/html/CentOS6.5
3
4# 将iso文件中的内容copy到CentOS6.5
5cp -av /mnt/dvd/* /var/www/html/CentOS6.5/
6

利用ISO镜像,yum源搭建OK。浏览器验证访问:http://192.168.169.100/CentOS6.5/。

使用yum源


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1# 备份原有的repo文件
2mkdir -p /etc/yum.repos.d/repo.bak
3cd /etc/yum.repos.d/
4cp *.repo *.repo.bak repo.bak/
5rm -rf *.repo *.repo.bak
6# 新建文件 vi CentOS6.5.repo
7[base]
8name=CentOS-$releasever - Base
9baseurl=http://hadoopmaster:80/CentOS6.5/
10enabled=1
11gpgcheck=1
12gpgkey=http://hadoopmaster:80/CentOS6.5/RPM-GPG-KEY-CentOS-6
13
14# 更新yum源
15yum clean
16yum repolist
17

yum源配置(全节点)

使用yum源


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1# 备份原有的repo文件
2mkdir -p /etc/yum.repos.d/repo.bak
3cd /etc/yum.repos.d/
4cp *.repo *.repo.bak repo.bak/
5rm -rf *.repo *.repo.bak
6# 新建文件 vi CentOS6.5.repo
7[base]
8name=CentOS-$releasever - Base
9baseurl=http://hadoopmaster:80/CentOS6.5/
10enabled=1
11gpgcheck=1
12gpgkey=http://hadoopmaster:80/CentOS6.5/RPM-GPG-KEY-CentOS-6
13
14# 更新yum源
15yum clean
16yum repolist
17

hosts文件修改(全节点)


1
2
3
4
5
6
1vi /etc/hosts
2
3192.168.169.100 hadoopmaster
4192.168.169.101 hadoopslave1
5192.168.169.102 hadoopslave2
6

ssh免密码登录,以master节点为例(全节点)


1
2
3
4
5
6
1yum install -y openssh-clients
2ssh-keygen -t rsa
3ssh-copy-id -i .ssh/id_rsa.pub root@hadoopmaster
4ssh-copy-id -i .ssh/id_rsa.pub root@hadoopslave1
5ssh-copy-id -i .ssh/id_rsa.pub root@hadoopslave2
6

安装jdk(全节点)


1
2
3
4
1mkdir -p /root/training
2cd /root/training
3tar -zxvf jdk-7u75-linux-i586.tar.gz
4

配置环境变量:


1
2
3
4
5
6
7
8
9
10
11
12
13
1vi .bash_profile
2
3JAVA_HOME=/root/training/jdk1.7.0_75
4export JAVA_HOME
5
6PATH=$JAVA_HOME/bin:$PATH
7export PATH
8
9# 立即生效
10source .bash_profile
11which java
12java -version
13

bug解决:64bit的操作系统,无法运行32bit的应用程序,需要安装32bit的glibc库。


1
2
1-bash: /root/training/jdk1.7.0_75/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
2

1
2
3
1yum install -y glibc*.i686
2rpm -qf /lib/ld-linux.so.2
3

全分布模式配置

hadoop-env.sh
JAVA_HOME
/root/training/jdk1.7.0_75
Java的home目录
hdfs-site.xml
dfs.replication
2
数据的冗余度
hdfs_site.xml
dfs.permissions
false

core-site.xml
fs.defaultFS
hdfs://hadoopmaster:9000
namenode的IP地址和端口,9000是RPC通信的端口
core-site.xml
hadoop.tmp.dir
/root/training/hadoop-2.4.1/tmp
如不修改默认为/tmp,设置的路径必须事先存在
slaves
DataNode的地址
hadoopslave1 hadoopslave2

mapred-site.xml
mapreduce.framework.name
yarn
指定MR运行在yarn上
yarn-site.xml
yarn.resourcemanager.hostname
hadoopmaster
指定YARN的老大(ResourceManager)的地址
yarn-site.xml
yarn.nodemanager.aux-services
mapreduce_shuffle
reducer获取数据的方式

给TA打赏
共{{data.count}}人
人已打赏
安全运维

MongoDB最简单的入门教程之二 使用nodejs访问MongoDB

2021-12-11 11:36:11

安全运维

Ubuntu上NFS的安装配置

2021-12-19 17:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索