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

系列目录:

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

建立Linux虚拟机(全节点)

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

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

hostname Address Netmask Gateway
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(全节点)

# iptables
service iptables status
service iptables stop
# 不随操作系统自动启动
chkconfig iptables off
# 永久起效,reboot重启后生效
vi /etc/selinux/config
SELINUX=disabled

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

创建相关目录

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

说明:

/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文件即可。

mount /dev/sr0 /mnt/dvd1
df -h
cp -av /mnt/dvd1/* /mnt/dvd
umount /mnt/dvd1

mount /dev/cdrom /mnt/dvd2
cp -v /mnt/dvd2/Packages/*.rpm /mnt/dvd/Packages/

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

cat /mnt/dvd2/Packages/TRANS.TBL >> /mnt/dvd/Packages/TRANS.TBL
mv /mnt/dvd/Packages/{TRANS.TBL,TRANS.TBL.BAK}
sort /mnt/dvd/Packages/TRANS.TBL.BAK > /mnt/dvd/Packages/TRANS.TBL
rm -rf /mnt/dvd/Packages/TRANS.TBL.BAK

备份原有yum配置文件

cd /etc/yum.repos.d
rename .repo .repo.bak *.repo

生成新的yum配置文件

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

更新yum源

yum clean all
yum upgrade

将/mnt/dvd/打包为iso

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

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

启动httpd服务

# 验证是否安装httpd服务
rpm -qa|grep httpd
# yum install -y httpd
yum install -y httpd
# 启动httpd服务
service httpd start

安装yum源

# 在/var/www/html/下创建文件夹CentOS6.5
mkdir -p /var/www/html/CentOS6.5

# 将iso文件中的内容copy到CentOS6.5
cp -av /mnt/dvd/* /var/www/html/CentOS6.5/

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

使用yum源

# 备份原有的repo文件
mkdir -p /etc/yum.repos.d/repo.bak
cd /etc/yum.repos.d/
cp *.repo *.repo.bak repo.bak/
rm -rf *.repo *.repo.bak
# 新建文件 vi CentOS6.5.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://hadoopmaster:80/CentOS6.5/
enabled=1
gpgcheck=1
gpgkey=http://hadoopmaster:80/CentOS6.5/RPM-GPG-KEY-CentOS-6

# 更新yum源
yum clean
yum repolist

yum源配置(全节点)

使用yum源

# 备份原有的repo文件
mkdir -p /etc/yum.repos.d/repo.bak
cd /etc/yum.repos.d/
cp *.repo *.repo.bak repo.bak/
rm -rf *.repo *.repo.bak
# 新建文件 vi CentOS6.5.repo
[base]
name=CentOS-$releasever - Base
baseurl=http://hadoopmaster:80/CentOS6.5/
enabled=1
gpgcheck=1
gpgkey=http://hadoopmaster:80/CentOS6.5/RPM-GPG-KEY-CentOS-6

# 更新yum源
yum clean
yum repolist

hosts文件修改(全节点)

vi /etc/hosts

192.168.169.100 hadoopmaster
192.168.169.101 hadoopslave1
192.168.169.102 hadoopslave2

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

yum install -y openssh-clients
ssh-keygen -t rsa
ssh-copy-id -i .ssh/id_rsa.pub root@hadoopmaster
ssh-copy-id -i .ssh/id_rsa.pub root@hadoopslave1
ssh-copy-id -i .ssh/id_rsa.pub root@hadoopslave2

安装jdk(全节点)

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

配置环境变量:

vi .bash_profile

JAVA_HOME=/root/training/jdk1.7.0_75
export JAVA_HOME

PATH=$JAVA_HOME/bin:$PATH
export PATH

# 立即生效
source .bash_profile
which java
java -version

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

-bash: /root/training/jdk1.7.0_75/bin/java: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory
yum install -y glibc*.i686
rpm -qf /lib/ld-linux.so.2

全分布模式配置

参数文件 配置参数 参考值 备注
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获取数据的方式

微信公众号「数据分析」,分享数据科学家的自我修养,既然遇见,不如一起成长。
Hadoop实战(2)_虚拟机搭建Hadoop的全分布模式_第1张图片

你可能感兴趣的:(Hadoop,Hadoop)