大数据组件搭建笔记

一、Hadoop全分布部署

(1) 配置网络、防火墙、NTP

  1. 网络适配器选择VMnet8、虚拟网络编辑器VMnet8子网IP192.168.196.0
  2. 配置IP地址
vi /etc/sysconfig/network-scripts/ifcfg-ens33
BOOTPROTO=static
ONBOOT=yes
IPADDR=192.168.196.101	(虚拟机IP地址)
NETMASK=255.255.255.0 (掩码)
GATEWAY=192.168.196.2	(网关)
DNS1=8.8.8.8
DNS2=129.29.29.29
MACADDR=00:0C:29:XX:XX:XX(虚拟机对应的MAC地址)0F:56:3D
  1. 重启网络
systemctl restart network
查看ip地址
ip address show
  1. ping测试能否联网
ping www.baidu.com
  1. 改主机名
yum install -y lrzsz
hostname
hostnamectl set-hostname master
查看修改后的主机名
hostname
  1. 绑定主机名
vi /etc/hosts
192.168.196.101 master
192.168.196.102 slave1
192.168.196.103 slave2
  1. 关闭防火墙
关闭防火墙
systemctl stop firewalld	
确认关闭防火墙
systemctl status firewalld
永久关闭防火墙
systemctl disable firewalld
  1. 创建hadoop用户、重启
useradd hadoop
passwd hadoop

reboot
连接CRT
克隆两台master做slave
改ip地址、改主机名
重启
  1. 更改时区(中国)
master、slave1、slave2上都要
tzselect
选择5 Asia
选择9 China
选择1 Beijing Time
选择1 yes
  1. 设置时区
master、slave1、slave2上都要
vi /etc/profile
添加
TZ="Asia/Shanghai";export TZ
保存退出
source /etc/profile
  1. 设置NTP

查看是否存在NTP服务master、slave1、slave2

rpm -qa | grep ntp
如果没有就用yum安装
yum install -y ntp

屏蔽默认server,设master为本地时钟源,服务器层级设为10

master

vi /etc/ntp.conf

#restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
修改为
restrict 192.168.196.0 mask 255.255.255.0 nomodify notrap

server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
修改为
#server 0.centos.pool.ntp.org iburst
#server 1.centos.pool.ntp.org iburst
#server 2.centos.pool.ntp.org iburst
#server 3.centos.pool.ntp.org iburst
server 127.127.1.0
fudge 127.127.1.0 stratum 10

保存退出

硬件时间与系统时间同步 master

vi /etc/sysconfig/ntpd

添加
SYNC_HWCLOCK=yes

保存退出
  1. 主节点开启NTP

master

systemctl start ntpd.service或systemctl start ntpd
ntpd服务开机启动
systemctl enable ntpd.service

查看NTP状态

 systemctl status ntpd
  1. 从节点在早十晚五时间段每隔半小时同步一次主节点的时间(24小时制)

slave1、slave2

crontab -e

添加
*/30 10-17 * * * /usr/sbin/ntpdate master

保存退出

(2)SSH无密登录

生成公钥master、slave1、slave2

su hadoop
ssh-keygen -t rsa
回车三次

copy ssh密钥 master

master
ssh-copy-id master
ssh-copy-id slave1
ssh-copy-id slave2

slave1
ssh-copy-id master
ssh-copy-id slave1

slave2
ssh-copy-id master
ssh-copy-id slave2

验证

ssh master <-> ssh slave1
ssh master <-> ssh slave2

(3)安装JDK

  1. 创建存放安装包的目录/opt/software 解压的目录/opt/module
su root
修改权限
chown -R hadoop:hadoop /opt
cd /opt
mkdir software
mkdir module
  1. 解压JDK安装包
tar -zxvf /opt/software/jdk1.8.0_221.tar.gz -C /opt/module/
  1. 改名
cd /opt/module
mv jdk1.8.0_221/ java
  1. 配置环境变量
vi /etc/profile

export JAVA_HOME=/opt/module/java
export PATH=$PATH:$JAVA_HOME/bin

刷新环境变量
source /etc/profile
  1. 查看环境变量
echo $JAVA_HOME

查看java版本
java -version
  1. 分发JDK和环境变量
scp -r /etc/profile root@slave1:/etc/profile
scp -r /etc/profile root@slave2:/etc/profile

修改权限
chown -R hadoop:hadoop /opt

slave1、slave2创建module目录
su root
修改权限
chown -R hadoop:hadoop /opt
su hadoop
cd /opt
mkdir module

master分发
su hadoop
scp -r /opt/module/java hadoop@slave1:/opt/module
scp -r /opt/module/java hadoop@slave2:/opt/module

slave1、slave2刷新环境变量
source /etc/profile

(4)安装hadoop

  1. 解压hadoop压缩包
tar -zxvf /opt/software/hadoop-2.7.7.tar.gz -C /opt/module/
  1. 改名
cd /opt/module
mv hadoop-2.7.7 hadoop
  1. 添加环境变量
su root
vi /etc/profile
export HADOOP_HOME=/opt/module/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

刷新环境变量
source /etc/profile
  1. 检查hadoop是否生效
echo $HADOOP_HOME
hadoop
查看hadoop版本
hadoop version 
修改权限
chown -R hadoop:hadoop /opt
  1. 测试MapReduce运行
su hadoop
创建输入数据存放的目录
mkdir ~/input
cd ~/input
vi data.txt
插入
hello hadoop
hello world
hello linux
保存退出
回到上级目录
cd ..
测试MapReduce运行(运行结果保存在~/output)
hadoop jar /opt/module/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount ~/input/data.txt ~/output
cd ~/output
cat part-r-00000
su root
修改权限
chown -R hadoop:hadoop /opt

(5)配置hadoop配置文件

  1. 配置hadoop-env.sh文件
cd /opt/module/hadoop/etc/hadoop/
vi hadoop-env.sh
找到# The java implementation to use.
export JAVA_HOME=${JAVA_HOME}
把${JAVA_HOME}改成/opt/module/java
  1. 配置 hdfs-site.xml 文件参数
配置HDPS参数
vi hdfs-site.xml
在文件中<configuration>和</configuration>一对标签之间追加以下配置信息
        <property>
                <name>dfs.namenode.name.dir</name>
                <value>file:/opt/module/hadoop/dfs/name</value>
        </property>
        <property>
                <name>dfs.datanode.data.dir</name>
                <value>file:/opt/module/hadoop/dfs/data</value> 
        </property>
        <property>
                <name>dfs.replication</name>
                <value>3</value>
        </property>
        
注:/opt/module/hadoop/dfs/name、
    /opt/module/hadoop/dfs/data 两个目录是HDFS 数据存放位置        
  1. 配置 core-site.xml 文件参数
配置集群全局参数
vi core-site.xml
在文件中<configuration>和</configuration>一对标签之间追加以下配置信息
        <property>
                <name>fs.defaultFS</name>
                <value>hdfs://192.168.196.101:9000</value>
        </property>
        <property>
                <name>io.file.buffer.size</name>
                <value>131072</value>
        </property>
        <property>
                <name>hadoop.tmp.dir</name>
                <value>file:/opt/module/hadoop/tmp</value>
        </property>
        
注:IP地址是master的
  1. 配置 mapred-site.xml
配置Mapreduce参数
复制模板
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
在文件中<configuration>和</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>
  1. 配置 yarn-site.xml
配置集群资源管理系统参数
vi yarn-site.xml
在文件中<configuration>和</configuration>一对标签之间追加以下配置信息
        <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>
        <property>
                <name>yarn.nodemanager.aux-services</name>
                <value>mapreduce_shuffle</value>
        </property>
        <property>
                <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
                <value>org.apache.hadoop.mapred.ShuffleHandler</value>
        </property>
  1. hadoop其他相关配置
vi masters
插入master的ip : 192.168.196.101

vi slaves
把localhost删掉,插入 slave1、slave2的IP:
192.168.196.102
192.168.196.103

修改权限
chown -R hadoop:hadoop /opt

su hadoop
cd /opt/module/hadoop/
mkdir tmp
mkdir dfs/name -p
mkdir dfs/data -p
  1. 分发
scp -r /opt/module/hadoop hadoop@slave1:/opt/module
scp -r /opt/module/hadoop hadoop@slave2:/opt/module

su root
scp -r /etc/profile root@slave1:/etc/profile
scp -r /etc/profile root@slave2:/etc/profile
  1. 配置hadoop格式化
su hadoop
cd /opt/module/hadoop

namenode 格式化 
hdfs namenode -format

master启动 NameNode 
hadoop-daemon.sh start namenode

查看进程
jps
master: NameNode

slave1、slave2启动datanode
hadoop-daemon.sh start datanode 

查看进程
jps
slave1: DataNode
slave2: DataNode

启动 SecondaryNameNode
hadoop-daemon.sh start secondarynamenode
查看进程
jps
master: NameNode
        SecondaryNameNode

查看 HDFS 数据存放位置 
ll /opt/module/hadoop/dfs/
  1. 查看HDFS的报告
hdfs dfsadmin -report
  1. 进入web界面查看节点状态
jps检查启动有无成功

查看NameNode和DataNode信息用浏览器打开 
http://192.168.196.101:50070

查看SecondaryNameNode信息
 http://192.168.196.101:50090

整体关闭hadoop 
stop-dfs.sh

查看关闭hadoop是否成功
jps

整体启动hadoop 
start-dfs.sh

启动yarn 
start-yarn.sh

查看是否启动成功 
jps
  1. 测试
在 HDFS 文件系统中创建/input目录 
hdfs dfs -mkdir /input

查看HDFS文件目录  
hdfs dfs -ls /

查看文本信息 
cat ~/input/data.txt

复制到 HDFS 的/input 目录中 
hdfs dfs -put ~/input/data.txt /input

查看复制是否成功
hdfs dfs -ls /input

计算数据文件中各单词的频度
hadoop jar  /opt/module/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.7.jar wordcount /input/data.txt /output

hdfs dfs -ls /output
查看计算的结果
hdfs dfs -cat /output/part-r-00000

YARN 集群网页查看MapReduce 作业运行过程 http://192.168.196.101:8088

注:如果已经存在/output目录,就要先删除/output 目录,在重新运行wordcount案例计算
hdfs dfs -rm -r -f /output

整体关闭hadoop
stop-all.sh

查看进程是否全部关闭 
jps 

二、 MySQL、Hive组件安装配置

(1)解压安装hive

  1. 将hive、mysql的压缩包存放到/opt/software

  2. 解压、改名

tar -zxvf 安装包路径 -C /opt/module/
cd /opt/module/
改文件名 
mv 安装包路径 hive
修改权限 
su root
chown -R  hadoop:hadoop /opt/
  1. 卸载MariaDB
关闭防火墙 
systemctl stop firewalld  
设置防火墙开机不启动
systemctl disable firewalld
查看防火墙状态 
systemctl status firewalld

查看已安装的mariadb软件包  
rpm -qa | grep mariadb 

删除软件包 
rpm -e --nodeps mariadb软件包名称

查看有无删除成功 
rpm -qa | grep mariadb

(2)安装配置mysql

  1. 安装
cd /opt/software
安装common软件包
rpm -ivh mysql-community-common-5.7.18-1.el7.x86_64.rpm
 
安装libs软件包 
rpm -ivh mysql-community-libs-5.7.18-1.el7.x86_64.rpm

安装client软件包  
rpm -ivh mysql-community-client-5.7.18-1.el7.x86_64.rpm

安装server的依赖软件包 
yum install -y net-tools

安装server的依赖软件包  
yum install -y perl

安装server软件包  
rpm -ivh mysql-community-server-5.7.18-1.el7.x86_64.rpm

vi /etc/my.cnf
在symbolic-links=0下面插入
default-storage-engine=innodb      # 存储引擎
innodb_file_per_table              # 表数据单独保存
collation-server=utf8_general_ci   # 支持中文编码字符集 
init-connect='SET NAMES utf8'      # 登录后自动执行第一行代码
character-set-server=utf8          # 服务器字符集

启动MySQL数据库
systemctl start mysqld

查询MySQL数据库的默认密码 
cat /var/log/mysqld.log | grep password

mysql_secure_installation
输入默认密码,
然后修改密码Password123$ 
Change the password for root ? ((Press y|Y for Yes, any other key for No) :y
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) :y
Remove anonymous users? (Press y|Y for Yes, any other key for No) :y
Disallow root login remotely? (Press y|Y for Yes, any other key for No) :n
Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
  1. 验证、设置授权
mysql -uroot -pPassword123$

添加 root 用户本地访问授权
grant all privileges on *.* to root@'localhost' identified by 'Password123$';

添加 root 用户远程访问授权
grant all privileges on *.* to root@'%' identified by 'Password123$';

刷新授权
flush privileges;

查询 root 用户授权情况
select user,host from mysql.user where user='root';

退出MySQL数据库
exit;
  1. 安装配置hive
配置hive环境变量
vi /etc/profile

export HIVE_HOME=/opt/module/hive
export PATH=$PATH:$HIVE_HOME/bin

使环境变量配置生效  
source /etc/profile

修改权限
chown -R  hadoop:hadoop /opt/

su hadoop
cd /opt/module/hive/conf

将模板拷贝到hive-site.xml然后进行编辑 
cp hive-default.xml.template hive-site.xml
  1. 修改hive组件配置文件
vi hive-site.xml
(1)设置 MySQL 数据库连接。
查 /javax.jdo.option.ConnectionURL
(按一次n可以找到)
将jdbc:derby:;databaseName=metastore_db;create=true改成
jdbc:mysql://master:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false

(2)配置 MySQL 数据库 root 的密码。
查 /javax.jdo.option.ConnectionPassword
(按一次n可以找到)
将mine改成Password123$

(3)验证元数据存储版本一致性。
若默认 false,则不用修改。
查 /hive.metastore.schema.verification
如果默认false就不用修改

(4)配置数据库驱动。
查 /javax.jdo.option.ConnectionDriverName
将org.apache.derby.jdbc.EmbeddedDriver改成
com.mysql.jdbc.Driver

(5)配置数据库用户名 javax.jdo.option.ConnectionUserName 为 root。
查 /javax.jdo.option.ConnectionUserName
将APP改成root

(6)查 /hive.querylog.location
将${system:java.io.tmpdir}/${system:user.name}改成
/opt/module/hive/tmp

(7)查 /hive.exec.local.scratchdir
将${system:java.io.tmpdir}/${system:user.name}改成
/opt/module/hive/tmp

(8)查 /hive.downloaded.resources.dir
将${system:java.io.tmpdir}/${hive.session.id}_resources改成
/opt/module/hive/tmp/resources

(9)查 /hive.server2.logging.operation.log.location
将${system:java.io.tmpdir}/${system:user.name}/operation_logs改成
/opt/module/hive/tmp/operation_logs
  1. 初始化
在Hive安装目录中创建临时文件夹tmp
mkdir /opt/module/hive/tmp
su root

cp /opt/software/mysql-connector-java-5.1.46.jar /opt/module/hive/lib/

修改权限 
chown -R hadoop:hadoop /opt/

切换到hadoop用户 
su hadoop

停止hadoop
stop-all.sh

启动hadoop 
start-all.sh

初始化数据库 
schematool -initSchema -dbType mysql
结果显示schemaTool completed既成功

进入mysql查看有hive数据库既成功
mysql -uroot -pPassword123$
show databases;
exit;

启动hive 
hive

退出hive 
exit;

三、Zookeeper组件安装配置

(1)解压安装zookeeper

  1. 传入zookeeper安装包

  2. 解压

tar -zxvf /opt/software/zookeeper-3.4.8.tar.gz -C /opt/module/	
  1. 改名
su root
cd /opt/module/
mv zookeeper-3.4.8 zookeeper

(2)zookeeper的配置选项

  1. 配置
cd /opt/module/zookeeper

创建data和logs两个文件夹	
mkdir data && mkdir logs

master节点编号写为 1	
echo 1 > /opt/module/zookeeper/data/myid

cd /opt/module/zookeeper/conf/
拷贝zoo_sample.cfg到zoo.cfg
cp zoo_sample.cfg zoo.cfg

vi zoo.cfg
把dataDir=/tmp/zookeeper
改成/opt/module/zookeeper/data/
在最后加入
server.1=master:2888:3888
server.2=slave1:2888:3888
server.3=slave2:2888:3888

修改权限
chown -R hadoop:hadoop /opt
  1. 分发
scp -r /opt/module/zookeeper hadoop@slave1:/opt/module/
scp -r /opt/module/zookeeper hadoop@slave2:/opt/module/
  1. slave节点配置
slave1:	
slave1节点编号写为 2
echo 2 > /opt/module/zookeeper/data/myid
chown -R hadoop:hadoop /opt

slave2:
slave2节点编号写为 3
echo 3 > /opt/module/zookeeper/data/myid
chown -R hadoop:hadoop /opt
  1. 环境变量
su root
vi /etc/profile
export ZOOKEEPER_HOME=/opt/module/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

分发
scp -r /etc/profile root@slave1:/etc/profile
scp -r /etc/profile root@slave2:/etc/profile

slave1、slave2刷新环境变量
source /etc/profile
  1. 启动
master、slave1、slave2依次启动
zkServer.sh start
查看运行状态
zkServer.sh status
两个follower 一个leader

四、HBase组件安装配置

(1)解压安装HBase

  1. 传入HBase包
  2. 解压HBase
tar -zxvf HBase路径 -C /opt/module/
cd /opt/module/

改名
mv HBase安装包 hbase
  1. 环境变量
vi /etc/profile
export HBASE_HOME=/opt/module/hbase 
export PATH=$HBASE_HOME/bin:$PATH

刷新环境变量
source /etc/profile

(2)配置HBase

  1. 配置hbase-env.sh
cd /opt/module/hbase/conf/
vi hbase-env.sh
 # export JAVA_HOME=/usr/java/jdk1.6.0/ 把#去掉
/usr/java/jdk1.6.0/ 改成/opt/module/java

查 /export HBASE_MANAGES_ZK
找到 # export HBASE_MANAGES_ZK=true 
把 #去掉、把 true改成false

查/export HBASE_CLASSPATH
找到 # export HBASE_CLASSPATH= 
把 #去掉、在 = 后面加/opt/module/hbase/
保存退出
  1. 配置hbase-site.xml
vi hbase-site.xml
在<configuration>和</configuration>中间插入
	<property>
 		<name>hbase.rootdir</name>
 		<value>hdfs://master:9000/hbase</value> # 使用 9000 端口
 		<description>The directory shared by region servers.</description>
	</property>
	<property>
 		<name>hbase.master.info.port</name>
 		<value>60010</value> # 使用 master 节点 60010 端口
	</property>
	<property>
 		<name>hbase.zookeeper.property.clientPort</name>
 		<value>2181</value> # 使用 master 节点 2181 端口
 		<description>Property from ZooKeeper's config zoo.cfg. The port at which the clients will connect.
 		</description>
	</property>
	<property>
 		<name>zookeeper.session.timeout</name>
 		<value>120000</value> # ZooKeeper 超时时间
	</property>
	<property>
	 	<name>hbase.zookeeper.quorum</name>
 		<value>master,slave1,slave2</value> # ZooKeeper 管理节点
	</property>
	<property>
 		<name>hbase.tmp.dir</name>
 		<value>/opt/module/hbase/tmp</value> # HBase 临时文件路径
	</property>
	<property>
 		<name>hbase.cluster.distributed</name>
 		<value>true</value> # 使用分布式 HBase
	</property>
  1. 配置regionservers
vi regionservers
把localhost删掉然后插入以下内容
slave1
slave2
  1. 分发
创建临时文件的文件夹
mkdir /opt/module/hbase/tmp
cd /opt/module/hbase
chown -R hadoop:hadoop /opt/
su hadoop
scp -r /opt/module/hbase hadoop@slave1:/opt/module/
scp -r /opt/module/hbase hadoop@slave2:/opt/module/
  1. 启动
启动hadoop  
start-all.sh

查看进程启动是否成功
jps

master、slave1、slave2依次启动zookeeper
zkServer.sh start

启动hbase
start-hbase.sh

查看进程启动是否成功
jps
  1. web界面打开
http://192.168.196.101:60010/

(3)HBase常用Shell命令

  1. 进入命令行
hbase shell
  1. 建立表 scores,两个列簇:grade 和 course
create 'scores','grade','course'
查看数据库状态
status

查看数据库版本
version

查看表
list

插入记录 1:jie,grade: 143cloud 
put 'scores','jie','grade:','146cloud'

插入记录 2:jie,course:math,86
put 'scores','jie','course:math','86'

插入记录 3:jie,course:cloud,92
put 'scores','jie','course:cloud','92'

插入记录 4:shi,grade:133soft 
put 'scores','shi','grade:','133soft'

插入记录 5:shi,grade:math,87  
put 'scores','shi','course:math','87'

插入记录 6:shi,grade:cloud,96  
put 'scores','shi','course:cloud','96' 

读取 jie 的记录 
get 'scores','jie'

读取 jie 的班级 
get 'scores','jie','grade' 

查看整个表记录
scan 'scores' 

按例查看表记录
scan 'scores',{COLUMNS=>'course'}

删除指定记录
delete 'scores','shi','grade' 

删除后,执行 scan 命令
scan 'scores'

增加新的列簇
alter 'scores',NAME=>'age' 

 查看表结构 
describe 'scores' 

删除列簇
alter 'scores',NAME=>'age',METHOD=>'delete' 

删除表
disable 'scores' 

退出hbase 
quit  

关闭hbase 
stop-hbase.sh

master、slave1、slave2依次关闭zookeeper
zkServer.sh stop

关闭hadoop	
stop-all.sh

五、Sqoop组件安装配置

(1)解压安装Sqoop

tar -zxvf /opt/software/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C /opt/module/

改名
cd /opt/module
mv sqoop-1.4.7.bin__hadoop-2.6.0 sqoop

(2)配置启动Sqoop

cd /opt/module/sqoop/conf/
拷贝模板
cp sqoop-env-template.sh sqoop-env.sh

vi sqoop-env.sh
对应的把#去掉、加上路径
export HADOOP_COMMON_HOME=/opt/module/hadoop/
export HADOOP_MAPRED_HOME=/opt/module/hadoop/
export HBASE_HOME=/opt/module/hbase
export HIVE_HOME=/opt/module/hive
保存退出

配置环境变量
vi /etc/profile
export SQOOP_HOME=/opt/module/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
export CLASSPATH=$CLASSPATH:$SQOOP_HOME/lib
保存退出

刷新环境变量
source /etc/profile

cp /opt/software/mysql-connector-java-5.1.46.jar /opt/module/sqoop/lib/

启动sqoop

改权限
chown -R hadoop:hadoop /opt/
su hadoop
启动hadoop
start-all.sh

查看进程
jps

连接 MySQL 数据库
sqoop list-databases --connect jdbc:mysql://127.0.0.1:3306/ --username root -P
密码:Password123$

cp /opt/module/hive/lib/hive-common-2.0.0.jar /opt/module/sqoop/lib/

(3)sqoop模板命令、测试

mysql -uroot -pPassword123$
创建 sample 库
create database sample;

使用sample库
use sample;

创建 student 表,该数据表有 number 学号和 name 姓名两个字段
create table student(number char(9) primary key, name varchar(10));

插入数据
insert into student values('01','zhangsan');
insert into student values('02','lisi');
insert into student values('03','wangwu');
查询 student 表的数据
select * from student;

退出mysql
exit


启动 hive 
hive
创建 sample 库
create database sample;

查询所有数据库
show databases;

使用 sample 库
use sample;

创建 student 表
create table student(number STRING, name STRING);

退出hive
exit;

从 MySQL 导出数据,导入 Hive
sqoop import --connect jdbc:mysql://master:3306/sample --username root --password Password123$ --table student --fields-terminated-by '|' --delete-target-dir --num-mappers 1 --hive-import --hive-database sample --hive-table student

mysql -uroot -pPassword123$

使用库
use sample;

删除表
delete from student;

退出mysql 
exit;

从 Hive 导出数据,导入到 MySQL
sqoop export --connect "jdbc:mysql://master:3306/sample?useUnicode=true&characterEncoding=utf-8" --username root --password Password123$ --table student --input-fields-terminated-by '|' --export-dir /user/hive/warehouse/sample.db/student/*

Sqoop 组件应用

(1)列出 MySQL 数据库中的所有数据库
sqoop list-databases -connect jdbc:mysql://localhost:3306/ -username root -password Password123$

(2)连接 MySQL 并列出 sample 数据库中的表
sqoop list-tables -connect jdbc:mysql://localhost:3306/sample -username root -password Password123$

(3) 将关系型数据的表结构复制到hive中,只是复制表的结构,表中的内容没有复制过去
sqoop create-hive-table -connect jdbc:mysql://localhost:3306/sample -table s	tudent -username root -password Password123$ -hive-table test

(4)从关系数据库导入文件到 Hive 中。
sqoop import --connect jdbc:mysql://master:3306/sample --username root --password Password123$ --table student --delete-target-dir --num-mappers 1 --hive-import --hive-database default --hive-table test

(5)删除MySQL数据student表中number为主键,添加信息导致主键重复,报错,所以删除表数据
mysql -u root -pPassword123$
use sample;
delete from student;
exit;

(6)将Hive中的表数据导入到MySQL中,在进行导入之前,MySQL中的表hive_test表必须已经提前创建好
sqoop export -connect jdbc:mysql://master:3306/sample -username root -password Password123$ -table student --input-fields-terminated-by '\001' -export-dir /user/hive/warehouse/test

(7)从数据库导出表的数据到 HDFS 上文件
sqoop import -connect jdbc:mysql://master:3306/sample -username root -password Password123$ -table student --num-mappers 1 -target-dir /user/test

(8)mysql -u root -pPassword123$
(9)use sample;
insert into student values('04','sss');
insert into student values('05','ss2');
insert into student values('06','ss3');
非数值型的值不能当做增量
alter table student modify column number int;
退出mysql 
exit;

(10)从数据库增量导入表数据到 HDFS 中
sqoop import -connect jdbc:mysql://master:3306/sample -username root -password Password123$ -table student --num-mappers 1 -target-dir /user/test -check-column number -incremental append -last-value 0

(11)查看导入数据
hdfs dfs -cat /user/test/part-m-00000
hdfs dfs -cat /user/test/part-m-00001

六、Flume组件安装配置

(1)解压安装Flume

  1. 传入Flume安装包
  2. 解压、改名
tar -zxvf /opt/software/apache-flume-1.7.0-bin.tar.gz -C /opt/module/

cd /opt/module/
改名
mv apache-flume-1.7.0-bin flume
chown -R hadoop:hadoop /opt/
  1. 配置环境变量
vi /etc/profile
export FLUME_HOME=/opt/module/flume
export PATH=$PATH:$FLUME_HOME/bin

su hadoop
刷新环境变量
source /etc/profile

(2)配置Flume

  1. 配置
cd /opt/module/flume/conf/
拷贝模板并重命名为 flume-env.sh	
cp flume-env.sh.template flume-env.sh

vi flume-env.sh
把export JAVA_HOME= 前面的 # 去掉,
修改JDK的安装目录把/usr/lib/jvm/java-6-sun改成 /opt/module/java

验证安装是否成功
flume-ng version
  1. 测试
Flume发送接收网口
cd /opt/module/flume/
在/opt/module/flume/创建test文件
mkdir test
cd test
创建一个apache的配置文件
vi simple-apache-flume.conf
添加以下配置
a1.sources=r1
a1.sinks=k1
a1.channels=c1

a1.sources.r1.type=netcat
a1.sources.r1.bind=localhost
a1.sources.r1.port=44444

a1.sinks.k1.type=logger

a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100

a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1
保存退出

使用apache启动 Flume
flume-ng agent --conf conf --conf-file simple-apache-flume.conf --name a1 -Dflume.root.logger=INFO,console

再新连接一个master
安装telnet
yum install -y telnet

连接上并向Flume发送一个事件
telnet localhost 44444

发送 hello
第一台master接收hello
Flume发送接收hdfs
启动hadoop	
start-all.sh

cd /opt/module/flume/test

查看hadoop有无启动成功
jps

vi simple-hdfs-flume.conf
添加
a1.sources=r1
a1.sinks=k1
a1.channels=c1

a1.sources.r1.type=spooldir
a1.sources.r1.spoolDir=/opt/module/hadoop/logs/
a1.sources.r1.fileHeader=true

a1.sinks.k1.type=hdfs
a1.sinks.k1.hdfs.path=hdfs://master:9000/tmp/flume
a1.sinks.k1.hdfs.rollsize=1048760
a1.sinks.k1.hdfs.rollCount=0
a1.sinks.k1.hdfs.rollInterval=900
a1.sinks.k1.hdfs.useLocalTimeStamp=true

a1.channels.c1.type=file
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100

a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1
保存退出

启动 flume  (监听的是/opt/module/hadoop/logs日志文件)
flume-ng agent --conf-file simple-hdfs-flume.conf --name a1

再连一个master
su hadoop
hdfs dfs -ls /tmp

查 看 HDFS 文件系统 /tmp/f1ume 目录下文件
hdfs dfs -ls /tmp/flume

注:启动flume时如果报错可能是NameNode进入安全模式
可以用hadoop dfsadmin -safemode leave关闭安全模式然后再启动flume

七、Spark安装部署

(1)spark本地模式

  1. 传入spark压缩包到/opt/software

  2. 解压到/opt/module/

tar -zxvf /opt/software/spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/
  1. 改名
cd /opt/module/
mv spark-2.1.1-bin-hadoop2.7 spark
  1. 添加环境变量
vi /etc/profile

export SPARK_HOME=/opt/module/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

  1. 刷新环境变量
su hadoop
source /etc/profile
  1. 进入spark交互窗口
cd /opt/module/spark
bin/spark-shell
  1. 测试
cd data
vi word.txt
hello spark hello wcq  hello cq
var i = 10
sc.textFile("data/word.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect
  1. 进入监控页面
http://192.168.196.101:4040 

(2)spark-Standalone独立部署模式

  1. 解压spark压缩包
tar -zxvf /opt/software/spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/

添加环境变量
vi /etc/profile
export SPARK_HOME=/opt/module/spark-standalone
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

su hadoop

source /etc/profile
  1. 改名
cd /opt/module/
mv spark-2.1.1-bin-hadoop2.7/ spark-standalone
  1. 配置slaves文件
cd spark-standalone/conf
mv slaves.template slaves 
添加
slave1
slave2
  1. 配置mstart文件
mv spark-env.sh.template spark-env.sh  
vi spark-env.sh
export JAVA_HOME=/opt/module/java
SPARK_MASTER_HOST=master # 主机名
SPARK_MASTER_PORT=7077 # 端口

SPARK_MASTER_IP=192.168.196.101 # spark集群的Master节点的ip地址
SPARK_WORKER_MEMORY=1g # 每个worker节点能够最大分配给exectors的内存大小
SPARK_WORKER_CORES=2 # 每个worker节点所占有的CPU核数目
SPARK_WORKER_INSTANCES=1 # 每台机器上开启的worker节点的数目

  1. 分发
scp -r /opt/module/spark-standalone hadoop@slave1:/opt/module
scp -r /opt/module/spark-standalone hadoop@slave2:/opt/module
  1. 添加环境变量
scp -r /etc/profile root@slave1:/etc/profile
scp -r /etc/profile root@slave2:/etc/profile
刷新
source /etc/profile
  1. 启动集群
cd /opt/module/spark-standalone
sbin/start-all.sh 
  1. 进入web页面
http://192.168.196.101:8080/
  1. 进入spark交互窗口
spark-shell
进入http://192.168.196.101:4040/

八、Flink集群搭建

  1. 传入flink压缩包

  2. 解压flink、改名

tar -zxvf /opt/software/flink-1.10.2-bin-scala_2.11.tgz -C /opt/module/
cd /opt/module/
mv flink-1.10.2/ flink
  1. 启动
cd /opt/module/flink
./bin/start-cluster.sh
  1. 查看进程
jps
  1. 修改flink-conf.yaml文件
cd conf/
vi flink-conf.yaml
localhost改为master
jobmanager.rpc.address: master
  1. 修改slaves文件
vi slaves
删除localhost添加以下内容
slave1
slave2
  1. 添加环境变量
su root
vi /etc/profile
添加
export FLINK_HOME=/opt/module/flink
export PATH=$PATH:$FLINK_HOME/bin
保存退出
刷新环境变量
source /etc/profile
  1. 分发环境变量、Flink
scp -r /etc/profile root@slave1:/etc/profile
scp -r /etc/profile root@slave2:/etc/profile

su hadoop
scp -r /opt/module/flink/ hadoop@slave1:/opt/module/
scp -r /opt/module/flink/ hadoop@slave2:/opt/module/
刷新环境变量
source /etc/profile
  1. 重新启动flink
master:
cd /opt/module/flink
./bin/stop-cluster.sh
启动
./bin/start-cluster.sh
查看进程jps
master:StandaloneSessionClusterEntrypoint
slave1:TaskManagerRunner
slave2:TaskManagerRunner
  1. 进入web页面
http://192.168.196.101:8081/

九、Kafka安装部署

(1)安装、配置Kafka

tar -zxvf /opt/software/kafka1.0.0.tgz -C /opt/module/
cd /opt/module
改名
mv kafka_2.11-1.0.0/ kafka
cd /opt/module/kafka/config
vi server.properties
修改
broker.id=0 # 不能重复
log.dirs=/opt/module/kafka/logs
zookeeper.connect=192.168.196.101:2181,192.168.196.102:2181,192.168.196.103:2181
保存退出

cd /opt/module/kafka
mkdir logs

配置环境变量
vi /etc/profile
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin

刷新环境变量
source /etc/profile

分发kafka
scp -r /opt/module/kafka/ hadoop@slave1:/opt/module/
scp -r /opt/module/kafka/ hadoop@slave2:/opt/module/

分发环境变量
scp -r /etc/profile root@slave1:/etc/profile
scp -r /etc/profile root@slave2:/etc/profile

slave1、slave2:

刷新环境变量
source /etc/profile

改slave1、slave2的server.properties
cd /opt/module/kafka/config
vi server.properties
修改
broker.id=1和broker.id=2

启动kafka前要启动hadoop和zkServer
master:
start-all.sh
master、slave1、slave2依次启动zookeeper
zkServer.sh start

master、slave1、slave2依次启动kafka
bin/kafka-server-start.sh -daemon config/server.properties

查看进程有无Kafka
jps

十、Redis的安装

1.安装gcc编译器同时安装redis所依赖的tcl包

yum install -y gcc
yum install -y tcl

2.上传解压redis压缩包

tar -zxvf redis-4.0.1.tar.gz -C /opt/module/
cd /opt/module
改名
mv redis-4.0.1/ redis
进入redis目录
cd redis

3.查看是否有安装make

查看make版本
make -version
如果没有需要安装
yum install -y make

4.执行make命令 做检查,需要在redis目录中执行

cd /opt/module/redis

make MALLOC=libc

5.执行安装

make PREFIX=/opt/module/redis install
显示下面内容就是就是安装成功了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2KNVMTzs-1649652115457)(C:\Users\11720\AppData\Roaming\Typora\typora-user-images\1640508237388.png)]

6.配置redis.conf

vi /opt/module/redis/redis.conf
注释
# bind 127.0.0.1
yes改成no
protected-mode no

daemonize yes

7.启动redis、测试

redis-server 
redis-cli 

8.后台启动服务连接windows

redis-server redis.conf
redis-cli 

# 查看进程
ps -ef | grep redis
杀死进程
kill -9 id

9.后台启动后就可以从windows连接
用可视化工具连接192.168.196.101

r.id=0 # 不能重复
log.dirs=/opt/module/kafka/logs
zookeeper.connect=192.168.196.101:2181,192.168.196.102:2181,192.168.196.103:2181
保存退出

cd /opt/module/kafka
mkdir logs

配置环境变量
vi /etc/profile
export KAFKA_HOME=/opt/module/kafka
export PATH= P A T H : PATH: PATH:KAFKA_HOME/bin

刷新环境变量
source /etc/profile

分发kafka
scp -r /opt/module/kafka/ hadoop@slave1:/opt/module/
scp -r /opt/module/kafka/ hadoop@slave2:/opt/module/

分发环境变量
scp -r /etc/profile root@slave1:/etc/profile
scp -r /etc/profile root@slave2:/etc/profile

slave1、slave2:

刷新环境变量
source /etc/profile

改slave1、slave2的server.properties
cd /opt/module/kafka/config
vi server.properties
修改
broker.id=1和broker.id=2

启动kafka前要启动hadoop和zkServer
master:
start-all.sh
master、slave1、slave2依次启动zookeeper
zkServer.sh start

master、slave1、slave2依次启动kafka
bin/kafka-server-start.sh -daemon config/server.properties

查看进程有无Kafka
jps




# 十、Redis的安装

1.安装gcc编译器同时安装redis所依赖的tcl包

yum install -y gcc
yum install -y tcl


2.上传解压redis压缩包

tar -zxvf redis-4.0.1.tar.gz -C /opt/module/
cd /opt/module
改名
mv redis-4.0.1/ redis
进入redis目录
cd redis


3.查看是否有安装make

查看make版本
make -version
如果没有需要安装
yum install -y make


4.执行make命令 做检查,需要在redis目录中执行

cd /opt/module/redis

make MALLOC=libc


5.执行安装

make PREFIX=/opt/module/redis install
显示下面内容就是就是安装成功了


[外链图片转存中...(img-2KNVMTzs-1649652115457)]

6.配置redis.conf

vi /opt/module/redis/redis.conf
注释

# bind 127.0.0.1

yes改成no
protected-mode no

daemonize yes


7.启动redis、测试

redis-server
redis-cli


8.后台启动服务连接windows

redis-server redis.conf
redis-cli 

# 查看进程
ps -ef | grep redis
杀死进程
kill -9 id

9.后台启动后就可以从windows连接
用可视化工具连接192.168.196.101

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mxcqhgSp-1649652115458)(C:\Users\11720\AppData\Roaming\Typora\typora-user-images\1640757856739.png)]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值