大数据系列之Hadoop----(1)集群搭建

2 篇文章 0 订阅
2 篇文章 0 订阅

1.准备Linux环境(本地虚拟机VMWare下)

1.0 先将虚拟机的网络模式选为NAT

1.1 修改主机名

vi /etc/sysconfig/network

NETWORKING=yes
HOSTNAME=had    ###

1.2 修改IP
两种方式:
第一种:通过Linux图形界面进行修改

进入Linux图形界面 -> 右键点击右上方的两个小电脑 -> 点击Edit connections -> 选中当前网络System
eth0 -> 点击edit按钮 -> 选择IPv4 -> method选择为manual -> 点击add按钮 ->
添加IP:192.168.1.101 子网掩码:255.255.255.0 网关:192.168.1.1 -> apply

第二种:修改配置文件方式(屌丝程序猿专用)

    vim /etc/sysconfig/network-scripts/ifcfg-eth0

    DEVICE="eth0"
    BOOTPROTO="static"               ###
    HWADDR="00:0C:29:3C:BF:E7"
    IPV6INIT="yes"
    NM_CONTROLLED="yes"
    ONBOOT="yes"
    TYPE="Ethernet"
    UUID="ce22eeca-ecde-4536-8cc2-ef0dc36d4a8c"
    IPADDR="192.168.1.101"           ###
    NETMASK="255.255.255.0"          ###
    GATEWAY="192.168.1.1"            ###

1.3 修改主机名和IP的映射关系

vim /etc/hosts

192.166.100.11 had1
192.166.100.12 had2
192.166.100.13 had3
192.166.100.14 had4

1.4 关闭防火墙【systemctl stop firewalld.service

#查看防火墙状态 service iptables status
#关闭防火墙 service iptables stop
#查看防火墙开机启动状态 chkconfig iptables –list
#关闭防火墙开机启动 chkconfig iptables off

1.5 新建用户

useradd had
passwd had
had
had

1.6 修改sudo(给had用户添加执行的权限)

su root
vi /etc/sudoers

给hadoop用户添加执行的权限

配置添加:

had     ALL=(ALL)       ALL

拷贝到其他服务器:

scp /etc/sudoers 192.168.100.12:/etc
scp /etc/sudoers 192.168.100.13:/etc
scp /etc/sudoers 192.168.100.14:/etc

1.7 关闭linux服务器的图形界面:

vi /etc/inittab 

1.8 重启Linux

reboot

2.安装JDK

2.1 上传alt+p 后出现sftp窗口,然后put d:\xxx\yy\ll\jdk-7u_65-i585.tar.gz

put E:soft\jdk-7u45-linux-x64.tar.gz
mv /root/jdk-7u45-linux-x64.tar.gz /usr/src

2.2 搭建JDK环境(多台服务器)

#创建文件夹
mkdir /home/had/app
#解压
tar -zxvf /usr/src/jdk-7u45-linux-x64.tar.gz -C /home/had/app
#将java添加到环境变量中
vi /etc/profile

#在文件最后添加
export JAVA_HOME=/home/had/app/jdk1.7.0_45
export PATH=$PATH:$JAVA_HOME/bin
#拷贝环境变量到其他服务器
sudo scp /etc/profile 192.168.100.12:/etc
sudo scp /etc/profile 192.168.100.13:/etc
sudo scp /etc/profile 192.168.100.14:/etc
#刷新配置
source /etc/profile 

3. 安装hadoop2.4.1

3.1 先上传hadoop的安装包到服务器上去/home/hadoop/
注意:-bash: rz: command not found
安装lrzsz:

# yum -y install lrzsz

现在就可以正常使用rz、sz命令上传、下载数据了。
使用方法:

上传文件
# rz filename
下载文件
# sz filename

注意:hadoop2.x的配置文件$HADOOP_HOME/etc/hadoop

3.2 解压到app文件

tar -zxvf cenos-6.5-hadoop-2.6.4.tar.gz -C app/

3.3配置hadoop
伪分布式需要修改5个配置文件

第一个:hadoop-env.sh

vi hadoop-env.sh
#第27行
export JAVA_HOME=/home/had/app/jdk1.7.0_45

第二个:core-site.xml

vi core-site.xml
<!-- 指定HADOOP所使用的文件系统schema(URI),HDFS的老大(NameNode)的地址 -->
        <property>
            <name>fs.defaultFS</name>
            <value>hdfs://192.168.100.11:9000</value>
        </property>
        <!-- 指定hadoop运行时产生文件的存储目录 -->
        <property>
            <name>hadoop.tmp.dir</name>
            <value>/home/had/tmp/hapdata</value>
    </property>

第三个:hdfs-site.xml

    <!-- 指定HDFS副本的数量 -->
        <property>
            <name>dfs.replication</name>
            <value>2</value>
        </property>

        <property>
            <name>dfs.secondary.http.address</name>
            <value>192.168.1.152:50090</value>
        </property>

第四个:mapred-site.xml

    mv mapred-site.xml.template mapred-site.xml
    vi mapred-site.xml
        <!-- 指定mr运行在yarn上 -->
        <property>
            <name>mapreduce.framework.name</name>
            <value>yarn</value>
        </property>

第五个:yarn-site.xml

        <!-- 指定YARN的老大(ResourceManager)的地址 -->
        <property>
            <name>yarn.resourcemanager.hostname</name>
            <value>192.168.100.11</value>
        </property>
        <!-- reducer获取数据的方式 -->
        <property>
            <name>yarn.nodemanager.aux-services</name>
            <value>mapreduce_shuffle</value>
        </property>

3.3 将hadoop添加到环境变量


sudo vi /etc/proflie
export JAVA_HOME=/home/had/app/jdk1.7.0_45
export HADOOP_HOME=/home/had/app/hadoop-2.6.4
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

source /etc/profile

3.4 拷贝hadoop和环境变量到其他服务器

scp -r /home/had/app 192.168.100.12:/home/had/
scp -r /home/had/app 192.168.100.13:/home/had/
scp -r /home/had/app 192.168.100.14:/home/had/

scp -r /etc/profile 192.168.100.12:/etc/
scp -r /etc/profile 192.168.100.13:/etc/
scp -r /etc/profile 192.168.100.14:/etc/


source /etc/profile

3.3 格式化namenode(是对namenode进行初始化)

hdfs namenode -format (hadoop namenode -format)

3.4 启动hadoop

先启动HDFS
sbin/start-dfs.sh

再启动YARN
sbin/start-yarn.sh

批量启动/关闭:【验证:不填入ip地址,填入hosts主机的host名,ip测试不能通过】

cd /home/had/app/hadoop-2.6.4/etc/hadoop/
vi slaves
had2
had3
had4
start-dfs.sh/stop-dfs.sh
start-yarn.sh/stop-yarn.sh      

3.5验证是否启动成功
使用jps命令验证

27408 NameNode
28218 Jps
27643 SecondaryNameNode
28066 NodeManager
27803 ResourceManager
27512 DataNode

http://192.168.100.11:50070/dfshealth.html (HDFS管理界面)
http://192.168.100.11:8088 (MR管理界面)

4. 配置集群ssh免登陆

4.1 配置所有各自服务器本身公钥和免密

ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

现在每台节点本身实现免密

4.2 将除A服务器之外所有节点的公钥复制到A上,这里是将hadoop2,hadoop3的公钥拷贝到A的authorized_keys,目的是实现hadoop2,hadoop3登录A实现免密,而反过来不行

ssh-copy-id -i ~/.ssh/id_dsa.pub 192.168.100.11 # 在hadoop2上执行
ssh-copy-id -i ~/.ssh/id_dsa.pub 192.168.100.11 # 在hadoop3上执行
...

4.3 实现最终集群所有节点互相免密

现在hadoop1(A)保存了所有节点的公钥,那么这个时候应该分发hadoop1上的authorized_keys到其他节点

scp ~/.ssh/authorized_keys 192.168.100.12:~/.ssh/
scp ~/.ssh/authorized_keys 192.168.100.13:~/.ssh/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值