大数据安装部分内容

大数据项目技术文档

文档索引

系统结构

服务名称子服务节点001节点002节点003
HDFSNameNodev
DataNodevvv
SecondaryNameNodev
YarnNodeManagervvv
ResourceManagerv
zookeeperZookeeper Servervvv
HiveHivev
MySQLMySqlv
SqoopSqoopv
HbaseHMasterv
HRegionServervvv

Hadoop搭建

配置Hadoop安装环境

Virtual虚拟机

安装Virtual虚拟机

创建Ubuntu虚拟机:

  • master
  • node1
  • node2

分配内存4G,硬盘60G
用户名:hadoop
密码:123456

配置静态IP

在Virtual虚拟机网络设置中:
添加NAT模式子网IP:10.2.2.0/24
在本机网络适配器中:
设置虚拟网卡VMnet8 IP:10.2.2.1,网关:255.255.255.0,DNS:本机DNS地址

配置Ubuntu虚拟机

安装好Ubuntu系统,设置网络适配器为NAT模式

进入Ubuntu虚拟机,打开网络配置文件:
sudo vim /etc/network/interfaces

添加如下内容(根据Virtual虚拟机中虚拟网络编辑器填写):

auto ens33                #网卡名称,可以通过ifconfig获取
iface ens33 inet static   #静态的获取IP地址
# hwaddress ether AA:BB:CC:DD:EE:FF   #复制虚拟机后修改MAC地址
address 10.2.2.11         #设置IP地址
gateway 10.2.2.2          #设置网关
netmask 255.255.255.0     #设置子网掩码

打开DNS配置文件:
sudo vim /etc/resolvconf/resolv.conf.d/base

添加如下内容:

nameserver #填写本机DNS
nameserver 114.114.114.114

永久修改hostname:
打开hostname文件
sudo vim /etc/hostname

修改主机名为:hmain001

关闭防火墙:
查看防火墙状态:sudo ufw status

关闭防火墙:sudo ufw disable

配置hadoop用户具有root权限:

sudo su

sudo vim /etc/sudors

root   ALL=(ALL:ALL) ALL
hadoop  ALL=(ALL:ALL) ALL

重启虚拟机

安装准备

所有安装均在/opt/目录下进行
cd /opt/
新建文件夹
mkdir module #存储安装框架
mkdir software #存储软件安装包

更改文件拥有者
sudo chown hadoop:hadoop module/ software/

安装JAVA JDK

在Ubuntu虚拟机中安装JAVA JDK
下载 Oracle 版本 Java JDK:jdk-8u144-linux-x64.tar.gz
上传到/opt/software/目录下
将 jdk-8u144-linux-x64.tar.gz 解压到 /opt/modules 目录下:

tar -zxvf jdk-8u144-linux-x64.tar.gz -C /opt/module

添加环境变量:
vim /etc/profile

#JAVA_HOME
export JAVA_HOME="/opt/module/jdk1.8.0_144"
export PATH=$JAVA_HOME/bin:$PATH

执行:source /etc/profile

Hadoop安装

克隆虚拟机

将原有虚拟机克隆两次,分别命名为hmain002和hmain003

修改网络配置:
虚拟机hamin002 IP:10.2.2.12
虚拟机hmain003 IP:10.2.2.13

配置Hostname:
虚拟机hamin002 hostname: hmain002
虚拟机hmain003 hostname: hmain003

配置hosts:

vim /etc/hosts

10.2.2.11  hmain001
10.2.2.13  hmain002
10.2.2.13  hmain003

设置无密码访问

在hmain001上生成公钥
cd .ssh/
ssh-keygen -t rsa

分发公钥
ssh-copy-id hmain001
ssh-copy-id hmain002
ssh-copy-id hmain003

在hmain002、hmain003上生成公钥并分发至三台虚拟机

分发配置

在其他两台虚拟机上创建存放Hadoop目录:
cd /opt/
mkdir module #存储安装框架
mkdir software #存储软件安装包

集群部署规划

hmain001hmain002hmain003
HDFSNameNode/DataNodeDataNodeSecondaryNameNode/DataNode
YARNNodeManagerResourceManager/NodeManagerNodeManager

安装

在hmain001上,解压Hadoop目录:
tar -zxvf hadoop-2.7.2.tar.gz -C /opt/module/

将Hadoop添加到环境变量:
vim /etc/profile

#HADOOP_HOME
export HADOOP_HOME=/opt/module/hadoop-2.7.2
export PATH=$PATH:$HADOOP_HOME/bin
export PATH=$PATH:$HADOOP_HOME/sbin

执行:source /etc/profile

核心文件配置

配置 core-site.xml:
cd /etc/opt/module/hadoop-2.7.2/hadoop
vim core-site.xml

<!-- 指定 HDFS 中 NameNode 的地址 -->
<property>
<name>fs.defaultFS</name>
<!-- 其中,hdfs 为协议名称,hadoop102 为 NameNode 的节点服务器主机名称,9000 为端口-->
<value>hdfs://hmain001:9000</value>
</property>
<!-- 指定 Hadoop 运行时产生的文件的存储目录,该目录需要单独创建 -->
<property>
<name>hadoop.tmp.dir</name>
<value>/opt/module/hadoop-2.7.2/data/tmp</value>
</property>

HDFS配置

配置hadoop-env.sh

vim hadoop-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_144

配置 hdfs-site.xml

vim hdfs-site.xml

<!-- 指定 HDFS 存储内容的副本个数 -->
<!-- Hadoop 通过使用文件的冗余来确保文件存储的可靠性,由于有 3 个 DataNode,所以我们可以将副本数量设置为 3 -->
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<!--配置 Hadoop 分布式集群的 SecondaryNameNode-->
<!--SecondaryNameNode 主要作为 NameNode 的辅助,端口为 50090 -->
<property>
<name>dfs.namenode.secondary.http-address</name>
<value>hmain003:50090</value>
</property>

YARN配置文件

配置yan-env.sh
vim yarn-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_144

配置文件 yarn-site.xml
vim yarn-site.xml

<!-- reducer 获取数据的方式 -->
<property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
</property>

<!-- 指定 YARN 的 ResourceManager 的地址 -->
<property>
    <name>yarn.resourcemanager.hostname</name>
    <value>hmain002</value>
</property>
<!-- 日志聚集功能使能 -->
<property>
    <name>yarn.log-aggregation-enable</name>
    <value>true</value>
</property>

<!-- 日志保留时间设置7天 -->
<property>
    <name>yarn.log-aggregation.retain-seconds</name>
    <value>604800</value>
</property>


MapReduce配置文件

配置mapred-env.sh

vim mapred-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_144

配置 mapred-site.xml

vim mapred-site.xml

<!-- MapReduce 计算框架的资源交给 YARN 来管理 -->
<property>
    <name>mapreduce.framework.name</name>
    <value>yarn</value>
</property>
<!-- 历史服务器端地址 -->
<property>
    <name>mapreduce.jobhistory.address</name>
    <value>hmain003:10020</value>
</property>
<!-- 历史服务器web端地址 -->
<property>
    <name>mapreduce.jobhistory.webapp.address</name>
    <value>hmain003:19888</value>
</property>

配置 slaves

vim slaves

hmain001
hmain002
hmain003

分发文件

scp -r /opt/module hadoop@hadoop002:/opt/

scp -r /opt/module hadoop@hadoop003:/opt/

修改环境变量配置文件

使配置文件生效

source /etc/profile

注意: /etc/profile文件未分发,需要手动修改

启动集群

格式化NameNode节点

cd /opt/module/hadoop-2.7.2

bin/hdfs namenode -format

hadoop001启动HDFS

sbin/start-dfs.sh

查看进程
jps

hadoop002启动YARN

sbin/start-yarn.sh

查看进程
jps

通过 Web UI 查看集群是否启动成功

检查NameNode和DataNode:

浏览器中输入 http://hmian001:50070

查看 YARN
浏览器输入 http://hmain002:8088

停止Hadoop

在NameNode上:

sbin/stop-dfs.sh


Mysql安装

安装包准备

下载地址:https://downloads.mysql.com/archives/community/

将 MySQL 压缩包 mysql-server_5.6.24-1ubuntu14.10_amd64.deb-bundle.tar 上传至/opt/software 目录下, 并解压。

tar -xvf mysql-server_5.6.24-1ubuntu14.10_amd64.deb-bundle.tar

安装 MySQL 服务器

安装依赖包

sudo apt-get install libaio1

安装commom

sudo dpkg -i mysql-common_5.6.24-1ubuntu14.10_amd64.deb

安装Mysql-server

sudo dpkg -i mysql-community-server_5.6.24-1ubuntu14.10_amd64.deb

注意:安装过程中会设置MySQL密码(password:123456)

sudo dpkg -i mysql-server_5.6.24-1ubuntu14.10_amd64.deb

安装 MySQL 客户端

安装客户端client

sudo dpkg -i mysql-community-client_5.6.24-1ubuntu14.10_amd64.deb

sudo dpkg -i mysql-client_5.6.24-1ubuntu14.10_amd64.deb

登录 MySql

mysql -uroot -p123456

查看MySQL状态

service mysql status

启动数据库

service mysql start

MySQL 中 user 表的主机配置

登录 MySql

mysql -uroot -p123456

显示目前 MySQL 的所有数据库

mysql>show databases;

使用 MySQL 数据库

mysql>use mysql

显示 MySQL 数据库中的所有表

mysql>show tables;

user 表中存储了允许登录 MySQL 的用户、 密码等信息, 展示 user 表的结构, 可以发现 user 表的字段非常多

mysql>desc user

查询 user 表中的部分字段 host、 user、 password, 显示关键信息, 可以看到 4 条信息, host 分别是 localhost、 hadoop102、 127.0.0.1、 ::1, 这 4 个 host 都表明只有本机可以连接 MySQL

mysql>select user, host, password from user;

修改 user 表, 把 host 字段值修改为%, 使任何 host 都可以通过 root 用户+密码连接MySQL

mysql>update user set host='%' where host='localhost';

需要删除 root 用户的其他 host, 才能使 “%” 生效

mysql>delete from user where Host='hadoop001';

mysql>delete from user where Host='127.0.0.1';

mysql>delete from user where Host='::1';

刷新权限, 使修改生效

mysql>flush privileges;

退出

mysql> quit


Hive安装

安装及配置 Hive

下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/

把 Hive 的安装包 apache-hive-2.3.8-bin.tar.gz 上传到 Linux 的/opt/software 目录下
解压 apache-hive-2.3.8-bin.tar.gz 到/opt/module/目录下

tar -zxvf apache-hive-2.3.8-bin.tar.gz -C /opt/module/

修改 apache-hive-2.3.8-bin 的名称为 hive

mv apache-hive-1.2.1-bin/ hive-2.3.8

修改/etc/profile 文件, 添加环境变量

sudo vim /etc/profile

添加以下内容

#HIVE_HOME
export HIVE_HOME=/opt/module/hive-2.3.8
export PATH=$PATH:$HIVE_HOME/bin

执行以下命令使环境变量生效

source /etc/profile

配置hive-env.sh

在/opt/module/hive-2.3.8/conf/目录下,修改hive-env.sh.template名称为hive-env.sh

mv /opt/module/hive-2.3.8/conf/hive-env.sh.template /opt/module/hive-2.3.8/conf/hive-env.sh

配置hive-env.sh文件:

vim hive-env.sh

配置:

export HADOOP_HOME=/opt/module/hadoop-2.7.2
export HIVE_CONF_DIR=/opt/module/hive-2.3.8/conf

驱动复制

复制 /opt/software/mysql-libs/mysql-connector-java-5.1.27 目录下的
mysql-connector-java-5.1.27-bin.jar 到/opt/module/hive/lib/目录下, 用于稍后启动 Hive 时连接MySQL

cp /opt/software/mysql-connector-java-5.1.27/mysql-connector-java-5.1.27-bin.jar /opt/module/hive-2.3.8/lib/

配置 Metastore 到 MySQL

在/opt/module/hive/conf 目录下创建一个 hive-site.xml 文件

vim hive-site.xml

根据官方文档配置参数, 复制数据到 hive-site.xml 文件中

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
    <!--配置 Hive 保存元数据信息所需的 MySQL URL 地址,此处使用 Keepalived 服务对外提供的虚拟
    IP 地址-->
    <property>
        <name>javax.jdo.option.ConnectionURL</name>
        <value>jdbc:mysql://hadoop001:3306/metastore?createDatabaseIfNotExist=true
        </value>
        <description>JDBC connect string for a JDBC metastore</description>
    </property>
    <!--配置 Hive 连接 MySQL 的驱动全类名-->
    <property>
        <name>javax.jdo.option.ConnectionDriverName</name>
        <value>com.mysql.jdbc.Driver</value>
        <description>Driver class name for a JDBC metastore</description>
    </property>
    <!--配置 Hive 连接 MySQL 的用户名 -->
    <property>
        <name>javax.jdo.option.ConnectionUserName</name>
        <value>root</value>
        <description>username to use against metastore database</description>
    </property>
    <!--配置 Hive 连接 MySQL 的密码 -->
    <property>
        <name>javax.jdo.option.ConnectionPassword</name>
        <value>123456</value>
        <description>password to use against metastore database</description>
    </property>
    <!--数据仓库位置-->
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
    </property>
    <property>
        <name>hive.metastore.schema.verification</name>
        <value>false</value>
    </property>
    <!--hive的安装节点-->
    <property>
        <name>hive.metastore.uris</name>
        <value>thrift://hadoop001:9083</value>
    </property>
    
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
    </property>
    <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
    </property>
</configuration>

初始化元数据库

启动 MySQL

mysql -uroot -p#密码

新建 Hive 元数据库

mysql> create database metastore
mysql> quit

初始化 Hive 元数据库

schematool -initSchema -dbType mysql -verbose

启动 Hive

Hive 2.x 以上版本, 要先启动 Metastore 和 Hiveserver2 服务, 否则会报错。

FAILED: HiveException java.lang.RuntimeException: Unable to instantiate
org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient

在/opt/module/hive-2.3.8 目录下启动Metastore

nohup bin/ hive --server metastore &

启动 Hive

bin/hive


Sqoop安装

下载并解压

下载上传安装包 sqoop-1.4.6.bin_hadoop-2.0.4-alpha.tar.gz 到虚拟机中。
解压 Sqoop 安装包到指定目录。

tar -zxf sqoop-1.4.6.bin_hadoop-2.0.4-alpha.tar.gz -C /opt/module/

修改文件名

mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop-1.4.6

修改配置文件

重命名配置文件

mv sqoop-env-template.sh sqoop-env.sh

修改配置文件 sqoop-env.sh

vim sqoop-env.sh

增加如下内容

export HADOOP_COMMON_HOME=/opt/module/hadoop-2.7.2
export HADOOP_MAPRED_HOME=/opt/module/hadoop-2.7.2

复制 JDBC 驱动

复制 JDBC 驱动到 Sqoop 的 lib 目录下

cp mysql-connector-java-5.1.27-bin.jar /opt/module/sqoop-1.4.6/lib/

验证 Sqoop
我们可以通过如下命令来验证 Sqoop 配置是否正确

bin/sqoop help

出现 Warning 警告(警告信息已省略), 并伴随着帮助命令的输出

Available commands:
codegen             Generate code to interact with database records
create-hive-table   Import a table definition into Hive
eval                Evaluate a SQL statement and display the results
export              Export an HDFS directory to a database table
help                List available commands
import              Import a table from a database to HDFS
import-all-tables   Import tables from a database to HDFS
import-mainframe    Import datasets from a mainframe server to HDFS
job                 Work with saved jobs
list-databases      List available databases on a server
list-tables         List available tables in a database
merge               Merge results of incremental imports
metastore           Run a standalone Sqoop metastore
version             Display version information

测试 Sqoop 是否能够成功连接数据库

bin/sqoop list-databases --connect jdbc:mysql://hadoop001:3306/ --username root --password 123456

出现如下输出则表示连接成功

information_schema
mysql
performance_schema


Hbase

Hbase安装

把 Hbase 的安装包上传到 Linux 的/opt/software 目录下
解压 hbase-1.3.1-bin.tar.gz 到/opt/module/目录下

tar -zxvf hbase-1.3.1-bin.tar.gz -C /opt/module/

在/opt/module/hbase-1.3.1/conf/目录下,修改hbase-env.sh

vim hbase-env.sh

export JAVA_HOME=/opt/module/jdk1.8.0_144 
export HBASE_MANAGES_ZK=true 

修改hbase-site.xml

vim hbase-site.xml

<!—hbase.root.dir 指定HBase数据在HDFS上的存储路径-->
<property>
     <name>hbase.root.dir</name>
     <value>hdfs://hadoop001:9000/hbase</value>
</property>

<!—-指定hbase的运行模式,true代表全分布模式-->
<property>
     <name>hbase.cluster.distributed</name>
     <value>true</value>
</property>

<--指定hbase的hmaster的主机名和端口-->
<property>
     <name>hbase.master</name>
     <value>hadoop001:60000</value>
</property>

<!—-指定使用zookeeper的主机地址,必须是奇数个-->
<property>     
     <name>hbase.zookeeper.quorum</name>
     <value>hadoop001,hadoop002,hadoop003</value>
</property>

<!—-zookeeper的属性数据存储目录-->
<property>     
     <name>hbase.zookeeper.property.dataDir</name>
     <value>/home/hadoop/zoodata</value>
</property>

配置egionservers文件

hadoop001
hadoop002
hadoop003

分发hbase到其他节点

scp -r /opt/module/hbase-1.3.1 hadoop@hadoop002:/opt/module
scp -r /opt/module/hbase-1.3.1 hadoop@hadoop003:/opt/module

配置环境变量

sudo vim /etc/profile

添加hbase的环境变量

#HABSE_HOME
export HBASE_HOME=/opt/module/hbase-1.3.1
export PATH=$PATH:$HBASE_HOME/bin

激活配置
source /etc/profile

启动hadoop

start-all.sh

主节点启动hbase

start-hbase.sh

显示操作的窗口界面

hbase shell

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值