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

系列目录:

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

建立Linux虚拟机(全节点)

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

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

hostnameAddressNetmaskGateway
hadoopmaster192.168.169.100255.255.255.0
hadoopslave1192.168.169.101255.255.255.0
hadoopslave2192.168.169.102255.255.255.0

安装类型:Minimal

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

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

hosts文件修改(全节点)

vi /etc/hosts

192.168.169.100 hadoopmaster
192.168.169.101 hadoopslave1
192.168.169.102 hadoopslave2

合并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
chkconfig httpd on

安装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

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.shJAVA_HOME/root/training/jdk1.7.0_75Java的home目录
hdfs-site.xmldfs.replication2数据的冗余度
hdfs_site.xmldfs.permissionsfalse权限检查
core-site.xmlfs.defaultFShdfs://hadoopmaster:9000namenode的IP地址和端口,9000是RPC通信的端口
core-site.xmlhadoop.tmp.dir/root/training/hadoop-2.4.1/tmp如不修改默认为/tmp,设置的路径必须事先存在
slavesDataNode的地址hadoopslave1 hadoopslave2
mapred-site.xmlmapreduce.framework.nameyarn指定MR运行在yarn上
yarn-site.xmlyarn.resourcemanager.hostnamehadoopmaster指定YARN的老大(ResourceManager)的地址
yarn-site.xmlyarn.nodemanager.aux-servicesmapreduce_shufflereducer获取数据的方式

安装Hadoop(master节点)

tar -zxvf hadoop-2.4.1.tar.gz

配置环境变量:

vi .bash_profile

HADOOP_HOME=/root/training/hadoop-2.4.1
export HADOOP_HOME

PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH

source .bash_profile

hadoop-env.sh

# vi hadoop-env.sh

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

hdfs_site.xml

<property>
    <name>dfs.replication</name>
    <value>2</value>
</property>
<property>
    <name>dfs.permissions</name>
    <value>false</value>
</property>

core-site.xmlmkdir -p /root/training/hadoop-2.4.1/tmp

<property>
    <name>fs.defaultFS</name>
    <value>hdfs://hadoopmaster:9000</value>
</property>
<property>
    <name>hadoop.tmp.dir</name>
    <value>/root/training/hadoop-2.4.1/tmp</value>
</property>

slaves

hadoopslave1
hadoopslave2

mapred-site.xmlcp mapred-site.xml.template mapred-site.xml

<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>

yarn-site.xml

<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hadoopmaster</value>
</property>
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

配置文件复制

rm -rf /root/training/hadoop-2.4.1/share/doc/
cd ~/training/
scp -r hadoop-2.4.1/ root@hadoopslave1:/root/training
scp -r hadoop-2.4.1/ root@hadoopslave2:/root/training

配置文件修改(slave节点)

cd ~
vi .bash_profile

HADOOP_HOME=/root/training/hadoop-2.4.1
export HADOOP_HOME

PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
export PATH

source .bash_profile

验证HDFS和MR

hdfs namenode -format
start-all.sh
hdfs dfsadmin -report
stop-all.sh

您可能还想看

数据分析/数据挖掘/机器学习

Python数据挖掘与机器学习_通信信用风险评估实战(1)——读数据

Python数据挖掘与机器学习_通信信用风险评估实战(2)——数据预处理

Python数据挖掘与机器学习_通信信用风险评估实战(3)——特征工程

Python数据挖掘与机器学习_通信信用风险评估实战(4)——模型训练与调优

爬虫

Python爬虫实战之爬取链家广州房价_01简单的单页爬虫

Python爬虫实战之爬取链家广州房价_02把小爬虫变大

Python爬虫实战之爬取链家广州房价_03存储

Python爬虫实战之爬取链家广州房价_04链家的模拟登录(记录)

搜狗词库爬虫(1):基础爬虫架构和爬取词库分类

搜狗词库爬虫(2):基础爬虫框架的运行流程

微信公众号「数据分析」,分享数据科学家的自我修养,既然遇见,不如一起成长。

《Hadoop实战(2)_虚拟机搭建Hadoop的全分布模式》 数据分析

转载请注明:转载自微信公众号「数据分析」

    原文作者:padluo
    原文地址: https://www.jianshu.com/p/a28241291bad
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞