大数据环境搭建

时间:2022-06-25 08:54:58

1. 准备环境

1.1. 安装包

1)安装虚拟机:VirtualBox-4.2.4-81684-Win.exe

2)安装配置Linux系统:CentOS-7.0-1406-x86_64-DVD.iso

3)安装配置Java环境:jdk-8u25-linux-x64.tar.gz

4)安装配置Hadoophadoop-2.6.0-x64.tar.gz

5)安装配置Hbasehbase-0.99.2-bin.tar.gz

1.2. 网络配置

主机名

IP

master

10.1.2.18

slave1

10.1.2.53

slave2

10.1.2.101

 

1.3. 常用命令

# systemctl start foo.service  #运行一个服务 

# systemctl stop foo.service  #停止一个服务

# systemctl restart foo.service  #重启一个服务

# systemctl status foo.service  #显示一个服务(无论运行与否)的状态

# systemctl enable foo.service  #在开机时启用一个服务

# systemctl disable foo.service  #在开机时禁用一个服务

# systemctl is-enabled iptables.service  #查看服务是否开机启动

 

# reboot  #重启主机

# shutdown -h now  #立即关机

# source /etc/profile  #配置文件修改立即生效

 

# yum install net-tools

 

2. 安装配置CentOS

 

2.1. 安装CentOS

1)选择启动盘CentOS-7.0-1406-x86_64-DVD.iso,启动安装

2)选择Install CentOS 7,回车,继续安装

3)选择语言,默认是English,学习可以选择中文,正时环境选择English

4)配置网络和主机名,主机名:master,网络选择开启,配置手动的IPV4

5)选择安装位置;在分区处选择手动配置;选择标准分区,点击这里自动创建他们,点击完成,收受更改

6)修改root密码,密码:a

7)重启,安装完毕。

2.2. 配置IP

2.2.1. 检查IP

# ip addr

# ip link

2.2.2. 配置IP

# cd /etc/sysconfig/network-scripts/   #进入网络配置文件目录

# find ifcfg-enp*  #查到网卡配置文件,例如ifcfg-enp0s3

# vi ifcfg-enp0s3  #编辑网卡配置文件

# vi /etc/sysconfig/network-scripts/ifcfg-enp0s3  #编辑网卡配置文件

 

配置内容:

BOOTPROTO=static  #静态IP配置为static,动态配置为dhcp

ONBOOT=yes  #开机启动

IPADDR=10.1.2.18  #IP地址

NETMASK=255.255.255.0  #子网掩码

2.2.3. 配置网关

# vi /etc/sysconfig/network

编辑内容:

NETWORKING=yes

HOSTNAME=master

GATEWAY=10.1.2.254

2.2.4. 配置dns

# vi /etc/resolv.conf  #配置dns

编辑内容:

nameserver 202.106.196.115

nameserver 202.106.0.20

nameserver 8.8.8.8

 

# systemctl restart network.service  #重启网络

 

2.2.5. 配置hosts

# vi /etc/hosts

编辑内容:

10.1.2.18 master

10.1.2.53 slave1

10.1.2.101 slave2

2.3. 关闭防火墙

# systemctl status firewalld.service  #检查防火墙状态

# systemctl stop firewalld.service  #关闭防火墙

# systemctl disable firewalld.service  #禁止开机启动防火墙

 

2.4. 关闭SELINUX

# vi /etc/selinux/config

编辑内容:

#SELINUX=enforcing  #注释掉

#SELINUXTYPE=targeted  #注释掉

SELINUX=disabled  #增加

 

# setenforce 0  #使配置立即生效

2.5. 时间同步

# yum install -y ntp  #安装ntp服务

# ntpdate cn.pool.ntp.org  #同步网络时间

2.6. 配置nscd

安装nscd用于DNS刷新

# yum install nscd

# systemctl start nscd.service

2.7. 安装配置jdk

2.7.1. 安装jdk

上传jdk-8u25-linux-x64.tar.gz安装包到root根目录

# mkdir /usr/java

# tar -zxvf jdk-8u25-linux-x64.tar.gz -C /usr/java/

# rm -rf jdk-8u25-linux-x64.tar.gz

 

2.7.2. 各个主机之间复制jdk

# scp -r /usr/java slave1:/usr

# scp -r /usr/java slave2:/usr

2.7.3. 各个主机配置jdk环境变量

# vi /etc/environment

编辑内容:

JAVA_HOME=/usr/java/jdk1.8.0_25

JRE_HOME=/usr/java/jdk1.8.0_25/jre

 

# vi /etc/profile

编辑内容:

export JAVA_HOME=/usr/java/jdk1.8.0_25

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

 

# source /etc/profile  #使配置文件生效

# java -version  #查看java版本

 

 

2.8. 配置ssh无密钥访问

分别在各个主机上检查ssh服务状态:

# systemctl status sshd.service  #检查ssh服务状态

# yum install openssh-server openssh-clients  #安装ssh服务,如果已安装,则不用执行该步骤

# systemctl start sshd.service  #启动ssh服务,如果已安装,则不用执行该步骤

 

分别在各个主机上生成密钥

# ssh-keygen -t rsa  #生成密钥

 

slave1

# cp ~/.ssh/id_rsa.pub ~/.ssh/slave1.id_rsa.pub

# scp ~/.ssh/slave1.id_rsa.pub master:~/.ssh

 

slave2

# cp ~/.ssh/id_rsa.pub ~/.ssh/slave2.id_rsa.pub

# scp ~/.ssh/slave2.id_rsa.pub master:~/.ssh

 

master

# cd ~/.ssh

# cat id_rsa.pub >> authorized_keys

# cat slave1.id_rsa.pub >> authorized_keys

# cat slave2.id_rsa.pub >> authorized_keys

# scp authorized_keys slave1:~/.ssh

# scp authorized_keys slave2:~/.ssh

3. 安装配置hadoop

3.1. 安装hadoop

上传hadoop-2.6.0-x64.tar.gz安装包到root根目录

# tar -zxvf hadoop-2.6.0-x64.tar.gz -C /usr

# rm -rf hadoop-2.6.0-x64.tar.gz

# mkdir /usr/hadoop-2.6.0/tmp

# mkdir /usr/hadoop-2.6.0/logs

# mkdir /usr/hadoop-2.6.0/hdf

# mkdir /usr/hadoop-2.6.0/hdf/data

# mkdir /usr/hadoop-2.6.0/hdf/name

3.1.1. 修改slaves

# vi /usr/hadoop-2.6.0/etc/hadoop/slaves

配置内容:

删除:localhost

添加:

slave1

slave2

3.1.2. 修改core-site.xml

# vi /usr/hadoop-2.6.0/etc/hadoop/core-site.xml

配置内容:

<configuration>

  <property>

    <name>fs.default.name</name>

    <value>hdfs://master:9000</value>

  </property>

  <property>

    <name>hadoop.tmp.dir</name>

    <value>file:/usr/hadoop-2.6.0/tmp</value>

  </property>

</configuration>

3.1.3. 修改hdfs-site.xml

# vi /usr/hadoop-2.6.0/etc/hadoop/hdfs-site.xml

配置内容:

<configuration>

  <property>

    <name>dfs.datanode.data.dir</name>

    <value>/usr/hadoop-2.6.0/hdf/data</value>

    <final>true</final>

  </property>

  <property>

    <name>dfs.namenode.name.dir</name>

    <value>/usr/hadoop-2.6.0/hdf/name</value>

    <final>true</final>

  </property>

</configuration>

3.1.4. 修改mapred-site.xml

# cp /usr/hadoop-2.6.0/etc/hadoop/mapred-site.xml.template /usr/hadoop-2.6.0/etc/hadoop/mapred-site.xml

# vi /usr/hadoop-2.6.0/etc/hadoop/mapred-site.xml

配置内容:

<configuration>

  <property>

    <name>mapreduce.framework.name</name>

    <value>yarn</value>

  </property>

  <property>

    <name>mapreduce.jobhistory.address</name>

    <value>master:10020</value>

  </property>

  <property>

    <name>mapreduce.jobhistory.webapp.address</name>

    <value>master:19888</value>

  </property>

</configuration>

3.1.5. 修改yarn-site.xml

# vi /usr/hadoop-2.6.0/etc/hadoop/yarn-site.xml

配置内容:

<configuration>

  <property>

    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

    <value>org.apache.mapred.ShuffleHandler</value>

  </property>

  <property>

    <name>yarn.resourcemanager.address</name>

    <value>master:8032</value>

  </property>

  <property>

    <name>yarn.resourcemanager.scheduler.address</name>

    <value>master:8030</value>

  </property>

  <property>

    <name>yarn.resourcemanager.resource-tracker.address</name>

    <value>master:8031</value>

  </property>

  <property>

    <name>yarn.resourcemanager.admin.address</name>

    <value>master:8033</value>

  </property>

  <property>

    <name>yarn.resourcemanager.webapp.address</name>

    <value>master:8088</value>

  </property>

</configuration>

3.2. 各个主机之间复制hadoop

# scp -r /usr/hadoop-2.6.0 slave1:/usr

# scp -r /usr/hadoop-2.6.0 slave2:/usr

3.3. 各个主机配置hadoop环境变量

# vi /etc/profile

编辑内容:

export HADOOP_HOME=/usr/hadoop-2.6.0

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

export HADOOP_LOG_DIR=/usr/hadoop-2.6.0/logs

export YARN_LOG_DIR=$HADOOP_LOG_DIR

 

# source /etc/profile  #使配置文件生效

3.4. 格式化namenode

# cd /usr/hadoop-2.6.0/sbin

# hdfs namenode -format

 

3.5. 启动hadoop

启动hdfs

# cd /usr/hadoop-2.6.0/sbin

# start-all.sh

检查hadoop启动情况:

http://10.1.2.18:50070

http://10.1.2.18:8088/cluster

 

检查进程:

# jps

 

master主机包含ResourceManagerSecondaryNameNodeNameNode等,则表示启动成功,例如

2212 ResourceManager

2484 Jps

1917 NameNode

2078 SecondaryNameNode

 

各个slave主机包含DataNodeNodeManager等,则表示启用成功,例如

17153 DataNode

17334 Jps

17241 NodeManager

 

4. 安装配置hbase

4.1. 安装hbase

上传hbase-0.99.2-bin.tar.gz安装包到root根目录

# tar -zxvf hbase-0.99.2-bin.tar.gz -C /usr

# mkdir /usr/hbase-0.99.2/logs

4.1.1. 修改hbase-env.sh

# vi /usr/hbase-0.99.2/conf/hbase-env.sh

配置内容:

export JAVA_HOME=/usr/java/jdk1.8.0_25

export HBASE_LOG_DIR=${HBASE_HOME}/logs

export HBASE_MANAGES_ZK=true

4.1.2. 修改regionservers

# vi /usr/hbase-0.99.2/conf/regionservers

配置内容:

删除:localhost

添加:

master

slave1

slave2

4.1.3. 修改hbase-site.xml

# vi /usr/hbase-0.99.2/conf/hbase-site.xml

配置内容:

<configuration>

  <property>

    <name>hbase.rootdir</name>

    <value>hdfs://master:9000/hbase</value>

  </property>

  <property>

      <name>hbase.cluster.distributed</name>

      <value>true</value>

  </property>

  <property>

        <name>hbase.zookeeper.quorum</name>

        <value>master,slave1,slave2</value>

  </property>

  <property>

        <name>hbase.zookeeper.property.dataDir</name>

        <value>/usr/zk-data</value>

  </property>

    <property>

      <name>hbase.master</name>

      <value>hdfs://master:60000</value>

  </property>

  <!-- 

  <property>

      <name>hbase.master.info.port</name>

      <value>60010</value>

  </property>

  -->

</configuration>

4.2. 各个主机之间复制hbase

# scp -r /usr/hbase-0.99.2 slave1:/usr

# scp -r /usr/hbase-0.99.2 slave2:/usr

4.3. 启动hbase

启动hbase

# cd /usr/hbase-0.99.2/bin

# ./start-hbase.sh

 

检查hbase启动情况(之前版本hbase站点的端口为60010):

http://10.1.2.18:16030/master-status

http://10.1.2.53:16030/rs-status

 

检查进程:

# jps

 

master主机包含ResourceManagerSecondaryNameNodeNameNodeHQuorumPeerHMaster等,则表示启动成功,例如

2212 ResourceManager

2999 Jps

2697 HQuorumPeer

1917 NameNode

2078 SecondaryNameNode

2751 HMaster

 

各个slave主机包含DataNodeNodeManagerHRegionServerHQuorumPeer等,则表示启用成功,例如

17540 Jps

17142 NodeManager

17338 HRegionServer

17278 HQuorumPeer

17055 DataNode