1、修改主机名(6台机器都要操作,以Master为举例)
hostnamectl set-hostname Master(永久修改主机名)
reboot(重启系统)
将第一行127.0.0.1 xxxx注释掉,加上:
195.168.2.127 master
195.168.2.128 slave1
195.168.2.129 slave2
vi /etc/sysconfig/network-scripts/ifcfg.ens0
BOOTRPROTO=static
IPADDR=192.168.2.127
NETMASK=255.255.255.0
GATEWAY=192.168.2.1
DNS1=192.168.2.1
DNS2=8.8.8.8
NAME=ens32
ONBOOT=yes
DEVICE=ens32
systemctl restart network
修改以上三个后> reboot
重启后确认IP是否都是设置那样了
1、 ssh生成密钥(6台机器都要操作)
ssh-keygen -t rsa (连续三次回车)
2、将3台的id_rsa_pub合并到一个authorized_keys上
分别登陆slave1、slave2,输入:
> scp .ssh/id_rsa.pub master:/home/kfs/.ssh/id_rsa_slave1
> scp .ssh/id_rsa.pub master:/home/kfs/.ssh/id_rsa_slave2
在master输入:
> cat ~/.ssh/id_rsa* >> authorized_keys
> scp .ssh/ authorized_keys slave1:/home/kfs/.ssh/
> scp .ssh/ authorized_keys slave2:/home/kfs/.ssh/
每台都修改权限:
> chmod 600 authorized_keys
(首次ssh会输入yes,所以需要进行这一步)
slave1、salve2同样进行以上步骤
systemctl stop firewalld.service
1、安装jdk之前,先检查是否已经安装了open的jdk,有的话需要先卸载(6台机器都要卸载)
java -version
2、查看有jdk的存在,需要先卸载然后再安装oracle的jdk
rpm -qa | grep java (查询java版本)
3、rpm -e --nodeps xxx (逐个删除完)
1、登陆kfs用户,解压到/home/kfs/下
> tar- zxvf jdk-8u144-linux-x64.tar.gz -C ~/
2、.jdk的环境变量配置(使用的是在root目录下的全局配置文件/etc/profile,6台机器都要配置,master举例)
> vi ~/.bashrc
export JAVA_HOME=/home/kfs/jdk1.8.0_141
export PATH=$PATH:$JAVA_HOME/bin
保存退出之后使用命令让配置生效
> source /etc/profile
验证版本
>java -version
JDK |
scala |
hadoop |
hive |
mysql |
sqoop |
zookeeper |
hbase |
flume |
spark |
kafka |
|
Master |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
|||
Slave1 |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
Slave2 |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
安装的软Hadoop HA件明细
QuorumPeerMain |
journalnode |
namenode |
nodemanager |
DFSZKFailover |
datanode |
resourcemanager |
|
master |
√ |
√ |
√ |
√ |
√ |
√ |
|
slave1 |
√ |
√ |
√ |
√ |
√ |
√ |
√ |
slave2 |
√ |
√ |
√ |
√ |
√ |
QuorumPeerMain
是zookeeper集群的启动类,用于加载配置启动QuorumPeer线程,确定了基于paxos算法的zookeeper集群数量;QuorumPeer线程是zookeeper的Laeder选举的启动类,负责选举算法、zk数据恢复、启动leader选举等。
在zookeeper/conf/zoo.cfg server.x个数确定;
启动不起来,根据报错信息排查zoo.cfg的server.x=master:2888:3888、dataDir=xx是否包含myid(从1开始)。
Journalnode
实现两个NameNode之间的数据同步,通过一组JournalNodes(JNs)的独立进程进行相互通信,当active状态的namenode的命名空间有变化,会通知大部分的JournalNode进程。Standby的namenode有能力读取JNs的变更信息,并监控edit log的变化,同时将变化应用于自己的命名空间,保证了集群出错时,acitive和standby的空间状态是一致的。
Namenode
负责客户端(web)请求的相应;元数据的管理、查询。
启动时,将fsimage(镜像)载入到内存,并执行(replay)编辑日志editlog的各项操作;一旦在内存建立文件系统元数据映射,则创建一个新的fsimage文件(元数据镜像文件:保存文件系统的目录树)、一个空的editlog(元数据操作日志:针对目录树的修改操作)文件;
开始监听RPC和HTTP请求。
DFSZKFailover
Failover故障转移需要两个组件:Zookeeper quorum(仲裁:驱动ZKFC的运转)、ZKFCFailoverController进程(ZKFC)。
ZKFC:每个NameNode上运行的zookeeper一个zookeeper进程,主要是监控namenode的健康状态、zookeeper会话管理、基于zookeeper的选举。
Datanode
负责管理所在节点上存储的数据读写,及存储数据;每三秒datanode节点向namenode发送心跳信号和文件块状态报告;执行数据的流水线复制。
Resourcemanager & Nodemanager & ApplicationMasters
1、ResourceManager(RM),是集群资源的仲裁者,它包括两部分:一个是可插拔式的调度Scheduler,一个是ApplicationManager,用于管理集群中的用户作业。
2、NodeManagers (NMs)从ResourceManager获取指令并管理本节点的可用资源(Container使用情况)
3、ApplicationMasters (AMs)的职责是从ResourceManager谈判资源(Containers),为NodeManagers启动容器,并且和NodeManager交互来执行和监控具体的task。
Hmaster & HRegionserver
Hmaster 作用:管理用户对table表的增删改查;管理HRegion服务器的负载均衡,调整HRegion的分布;在HRgion分裂后,负责新的HRegion的分配;HRegion停机后,负责失效HRegion服务器上HRegion的迁移。
HRegionsServer一般和DataNode在同台机器运行,实现数据的本地行。HRegionsServer包含多个HRegion,由HLog(副本机制,防止hbase宕机)、BlockCache(读缓存,默认 on-heap LRUBlockCache 和 BucketCache)、HStore(HBase的存储核心,memStore和storeFile组成)、HFile(HbasekeyValue数据、Hadoop的二进制)组成。
jobhistory & historyServer
historyServer同时启动两个定时任务线程,分别解析eventLog和清理过期的eventLog日志文件,默认18080.
Runjar(metadata、metastore、hiveserver2)
metadata(需要初始化):hive元数据定义的表名,一般存在mysql中,在测试阶段也可以用hive内置Derby数据库。
metastore:hivestore服务端。主要提供将DDL,DML等语句转换为MapReduce,提交到hdfs中。默认监听端口是:9083
hiveserver2:hive服务端,提供hive服务,可以通过beeline、jdbc(java代码连接)等多种方式多客户端连接到hive。基于Thrift RPC的实现是HiveServer的改进版本。默认10002端口,可以master:10002/jmx获取指标。
组件 |
Daemon |
端口 |
配置 |
说明 |
HDFS |
DataNode |
50010 |
dfs.datanode.address |
datanode服务端口,用于数据传输 |
50075 |
dfs.datanode.http.address |
http服务的端口 |
||
50475 |
dfs.datanode.https.address |
https服务的端口 |
||
50020 |
dfs.datanode.ipc.address |
ipc服务的端口 |
||
NameNode |
50070 |
dfs.namenode.http-address |
http服务的端口 |
|
50470 |
dfs.namenode.https-address |
https服务的端口 |
||
8020 |
fs.defaultFS |
接收Client连接的RPC端口,用于获取文件系统metadata信息。 |
||
journalnode |
8485 |
dfs.journalnode.rpc-address |
RPC服务 |
|
8480 |
dfs.journalnode.http-address |
HTTP服务 |
||
ZKFC |
8019 |
dfs.ha.zkfc.port |
ZooKeeper FailoverController,用于NN HA |
|
YARN |
ResourceManager |
8032 |
yarn.resourcemanager.address |
RM的applications manager(ASM)端口 |
8030 |
yarn.resourcemanager.scheduler.address |
scheduler组件的IPC端口 |
||
8031 |
yarn.resourcemanager.resource-tracker.address |
IPC |
||
8033 |
yarn.resourcemanager.admin.address |
IPC |
||
8088 |
yarn.resourcemanager.webapp.address |
http服务端口 |
||
NodeManager |
8040 |
yarn.nodemanager.localizer.address |
localizer IPC |
|
8042 |
yarn.nodemanager.webapp.address |
http服务端口 |
||
8041 |
yarn.nodemanager.address |
NM中container manager的端口 |
||
JobHistory Server |
10020 |
mapreduce.jobhistory.address |
IPC |
|
19888 |
mapreduce.jobhistory.webapp.address |
http服务端口 |
||
HBase |
Master |
60000 |
hbase.master.port |
IPC |
60010 |
hbase.master.info.port |
http服务端口 |
||
RegionServer |
60020 |
hbase.regionserver.port |
IPC |
|
60030 |
hbase.regionserver.info.port |
http服务端口 |
||
HQuorumPeer |
2181 |
hbase.zookeeper.property.clientPort |
HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。 |
|
Hive |
Metastore |
9083 |
/etc/default/hive-metastore中export PORT= |
|
HiveServe2r |
10002 |
/etc/hive/conf/hive-env.sh中export HIVE_SERVER2_THRIFT_PORT= |
||
ZooKeeper |
Server |
2181 |
/etc/zookeeper/conf/zoo.cfg中clientPort= |
对客户端提供服务的端口 |
2888 |
/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分 |
follower用来连接到leader,只在leader上监听该端口。 |
||
3888 |
/etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分 |
用于leader选举的。只在electionAlg是1,2或3(默认)时需要。 |
dataDir=/home/kfs/zookeeper-3.4.5/data
dataLogDir=/home/kfs/zookeeper-3.4.5/log
clientPort=2181
server.1=master:2888:3888
server.2=salve1:2888:3888
server.3=salve1:2888:3888
> echo “1” > data/myid
在hadoop-2.8.4/etc/hadoop下
core-site.xml
hdfs-site.xml
mapred-site.xml
yarn-site.xml
yarn.nodemanager.aux-services mapreduce_shuffle
yarn.resourcemanager.recovery.enabled true
yarn.resourcemanager.store.class org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore
yarn.nodemanager.resource.memory-mb 8192
yarn.nodemanager.resource.cpu-vcores 8
yarn.scheduler.maximum-allocation-mb 8192
yarn.scheduler.maximum-allocation-vcores 4
slaves
需要主要windows复制过去的话,换行符的格式的问题。
vi **.sh
set ff=unix
sed -i “s/\r//” **.sh
> source /home/kfs/.bashrc
> mkdir /home/kfs/data/hadoop-data/tmp
> mkdir /home/kfs/data/hadoop-data/journaldata
首次启动
1、首先启动各个节点的Zookeeper,在各个节点上执行以下命令:
> bin/zkServer.sh start
2、在每个journalnode节点用如下命令启动journalnode
> sbin/hadoop-daemon.sh start journalnode
3、在主namenode节点格式化namenode和journalnode目录
> hdfs namenode -format ns
4、在主namenode节点启动namenode进程
> sbin/hadoop-daemon.sh start namenode
5、在备namenode节点执行第一行命令,这个是把备namenode节点的目录格式化并把元数据从主namenode节点copy过来,并且这个命令不会把journalnode目录再格式化了!然后用第二个命令启动备namenode进程!
> hdfs namenode -bootstrapStandby
> sbin/hadoop-daemon.sh start namenode
6、在某一个namenode节点执行如下命令,创建命名空间
> hdfs zkfc -formatZK
7、在两个namenode节点都执行以下命令
> sbin/hadoop-daemon.sh start zkfc
8、启动dfs
> sbin/start-all.sh
9、启动备regionserver
> sbin/yarn-daemon.sh start resourcemanager
用jps查看一下起的进程是否正确
后续启动
(zookeeper)节点启动:zookeeper/bin/zkServer.sh start
(yarn)两个rm节点分别运行:hadoop-2.8.4/sbin/yarn-daemon.sh start resourcemanager
(yarn)在主或者备节点启动:hadoop-2.8.4/sbin/start-yarn.sh
(zkfc namenode datanode)所有:hadoop-2.8.4/sbin/start-all.sh
确保每个zookeeper集群启动成功后,再启动dfs,这个步骤可能需要多次;
停止stop-dfs.sh、stop- yarn.sh、stop-all.sh
(Historyserver)Historyserver:sbin/mr-jobhistory-daemon.sh start/stop historyserver
可访问的地址
Hadoop hdfs:http:// slave1:50070/dfshealth.html#tab-overview
一个active,一个standy
Hadoop hdfs datanode : http://slave1:50075/datanode.html
Hadoop yarn resourcemanager:http://master:8088
如果配置了mapreduce的historyserver
则通过./sbin/mr-jobhistory-daemon.sh start/stop historyserver
访问http://master:19888
hadoop fs(使用范围最广,对象:可任何对象);hdfs dfs(只HDFS文件系统相关,常用),下面测试两者一样。
创建三个测试文件
创建目录,将测试文本Put到目录上
#本地的/home/hdfs/input/文件夹下有多个txt文件,每个单词单独一行
hadoop fs -mkdir -p /hadoop/test
hadoop fs -ls /hadoop/test/
hadoop fs -put test/* /hadoop/test/
运行测试(testout不能存在)
hadoop-mapreduce-examples-2.7.0.jar在路径share/hadoop/mapreduce下
yarn jar ~/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.8.4.jar wordcount /hadoop/test /hadoop/testout
hadoop dfs -ls /hadoop/testout
hadoop dfs -cat /hadoop/testout/part-r-00000
hadoop fs -rm -r -skipTrash /hadoop/testout
Yarn
Hdfs
mapreduce.map.java.opts控制maptask堆内存大小。(不够会报错 java.lang.outofmemoryerror)
hbase-site.xml
hbase-env.sh
regionservers
> scp -r /home/kfs/data/hbase-data/ slave1:/home/kfs/data/
> scp -r /home/kfs/hbase-1.2.6/ slave1:/home/kfs/
返回kfs用户启动主HMaster
> ./hbase-1.2.6/bin/start-hbase.sh
启动Slave1作为备份的HMaster
> ./hbase-1.2.6/bin/ start-hbase.sh start master
其他节点,有个别节点没有启动HRegionserver,则单独启动
> ./hbase-1.2.6/bin/hbase-daemon.sh start regionserver
失败可改大时间(需要集群时间一致,不然会报错!!)
hbase的hbase-site.xml配置文件下添加hbase.master.maxclockskew
主Hmaster、备:Hmaster、HRegionServer,其他:HRegionServer
Master:16010、Slave1:16010
cluster模式和client模式
cluster模式:Driver程序在YARN中运行,Driver所在的机器是随机的,应用的运行结果不能在客户端显示只能通过yarn查看,所以最好运行那些将结果最终保存在外部存储介质(如HDFS、Redis、Mysql)而非stdout输出的应用程序,客户端的终端显示的仅是作为YARN的job的简单运行状况。
client模式:Driver运行在Client上,应用程序运行结果会在客户端显示,所有适合运行结果有输出的应用程序(如spark-shell)
bin/spark-submit --master spark://master:6066 --deploy-mode cluster --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.3.2.jar 1000 --num-executors 3
bin/spark-submit --master spark://master:7077 --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.3.2.jar 1000 --num-executors 3
启动HDFS和YARN(不用启动master和woker),在client节点配置中spark-env.sh添加JDK和HADOOP_CONF_DIR目录,Spark程序将作为yarn的客户端用户提交任务。HADOOP_CONF_DIR是Saprk On Yarn与StandAlone重要区别。
yarn-client和yarn-cluster提交任务的方式:
# --master yarn(默认client模式) 等价于 yarn-client(已弃用)和--master yarn --deploy-mode client
./bin/spark-submit --master yarn --driver-memory 1g --executor-memory 1g --executor-cores 2 --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.3.2.jar 1000
./bin/spark-submit --master yarn --deploy-mode cluster --class org.apache.spark.examples.SparkPi examples/jars/spark-examples_2.11-2.3.2.jar 1000
# 如果按照集群cluster的方式提交任务,--num-executors 3也都是2,如果客户端,则三个exector都有任务。
root用户下的usr创建一个scala文件夹将scala安装包复制到其中然后解压
/etc/profile
查看scala版本
scala -version
spark-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_141
export SCALA_HOME=/usr/scala/scala-2.13.6
export HADOOP_HOME=/home/kfs/hadoop-2.8.4
export HADOOP_CONF_DIR=/home/kfs/hadoop-2.8.4/etc/hadoop
export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master:2181,slave1:2181,slave2:2181 -Dspark.deploy.zookeeper.dir=/spark"
slaves
下面有的,就会运行woker,一般master运行worker
将spark拷贝到其他节点 /etc/profile
scp -r spark-2.3.0-bin-hadoop2.7/ slave1:/home/kfs/spark-2.3.0-bin-hadoop2.7/
./sbin/start-all.sh
启动不起来一般就是slaves或者是spark-env.sh配置错了。
备用的运行: sbin/start-master.sh
查看master:8080
master:8080和http://master:8088/cluster (一个会显示alive,一个是standby)
cp spark-defaults.conf.template spark-defaults.conf
需要记住三个字段
spark.eventLog.dir hdfs://ns1/ sparklog
spark.history.fs.logDirectory hdfs://ns1/sparklog
spark.yarn.historyServer.address master:18080
hdfs创建目录
./spark-submit --class org.apache.spark.examples.SparkPi --master yarn-client --executor-memory 2G --num-executors 2 ../examples/jars/spark-examples_2.11-2.3.2.jar 100
如果报错:Spark context stopped while waiting for backend,则修改hadoop/yarn-site.xml,重启hadoop
同时检查conf/spark-env.sh
运行成功后,可以在18080查看。
(以上都是针对yarn的情况,Standalone比较简单,但是env.sh和conf都需要修改!)
broker.id=0
port=9092
log.dirs=/home/data/kafka-data/log-0
zookeeper.connect=localhost:2181
#日志保存天数(3天或者更短)
./bin/kafka-server-start.sh config/server.properties &
# 创建topic
kafka/bin/kafka-topics.sh --create --zookeeper slave1:2181 --replication-factor 2 --partitions 1 --topic lztest
# 创建消费者
kafka/bin/kafka-console-consumer.sh --zookeeper slave1:2181 --topic lztest --from-beginning
# 创建生产者
kafka/bin/kafka-console-producer.sh --broker-list slave1:9092 --topic lztest
# 测试直接在生产者输入内容,即可在消费者看到数据
卸载
安装
rpm安装包
rpm -ivh mysql-(common/community-lib/community-client/community-server)-8.0.1.rpm
绿色版
https://blog.csdn.net/qq_40053836/article/details/104113347
(root)tar -zxvf 解压到 /usr/local/mysql8.0.11下载,在目录下创建log、data文件夹
检查创建mysql用户和mysql组:
useradd mysql
chgrp -R mysql mysql8.0.11/
chown -R mysql mysql8.0.11/
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
初始化成功后后面会出现密码。
配置文件
touch /etc/my.cnf
运行参数文件
vi /etc/my.cnf
mysql/support-files/mysql.server start
如果报错/tmp/xx.sock,则创建一个软连接到报错的路径上:
ln -s /usr/local/mysql-8.0.11/mysql.sock /tmp/mysql.sock,再启动即可。
ALTER(create) USER 'root'@'localhost' IDENTIFIED BY 'lz..';
update user set host='%' where user='root';
FLUSH PRIVILEGES;
mysql>drop database hive;
mysql>create database hive;
mysql>ALTER DATABASE hive character set latin1;
创建一个hive的用户并设置权限(要不要都行,可以在hive配置文件用着root)
hive 配置(conf下新增hive-site.xml、mysql-connector-java-8.0.11.jar复制到hive的lib)
将mysql-connector-java-8.0.11.jar复制到hive的lib目录下
/etc/profile
export HIVE_HOME=/home/kfs/apache-hive-2.3.2-bin
:$HIVE_HOME/bin:$HIVE_HOME/conf
初始化元数据库
bin/schematool -initSchema -dbType mysql -verbose
./bin/hive --service metastore &
./bin/hive –service hiveserver2 &
查看jps有两个RunJar
启动hive
/bin/hive
show tables;
create table test1(a string,b int)
show tables;
数据倾斜的负载均衡
数据倾斜:就是大量的相同key被partition分配到一个分区里,map /reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长。
办法:增加jvm内存、增加reduce的个数、自定义分区partition、重新设计key、使用combinner合并(map red之间)。
> hive
> set hive.groupby.skewindata=true;
默认该参数的值为false,表示不启用,要启用时,可以set hive.groupby.skewindata=ture;进行启用。
当启用时,能够解决数据倾斜的问题,但如果要在查询语句中对多个字段进行去重统计时会报错。
下面的两个报错气都都是要做的
启动服务报错MetaException(message:Version information not found in metastore. )
1、配置文件加上
2、mysql中hive数据库的编码
mysql> alter database hive character set latin1;
hive中创建数据库失败Error: Table 'CTLGS' already exists (state=42S01,code=1050)
手动初始化元数据库
bin/schematool -initSchema -dbType mysql -verbose
"Host '192.168.2.129' is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'"
mysql root的错误链接次数已满,运行:./bin/mysqladmin -uroot -p -h localhost flush-hosts
配置文件需要确保用户具备%的host
Error: Table 'CTLGS' already exists (state=42S01,code=1050)
这是再次执行格式化元数据(bin/schematool -initSchema -dbType mysql -verbose)的报错,可以删掉mysql的hive数据库重建,再执行格式化元数据库就不会报错。也可以直接启动hive服务进行使用。
数据源-> source -> channel -> sink
flume-env.sh
cp flume-env.sh.template flume-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_141
flume-conf.properties
scp -r /home/kfs/apache-flume-1.8.0-bin/ slave2:/home/kfs/
./bin/flume-ng agent --conf ./conf/ --conf-file ./conf/flume-conf.properties --name agent -Dflume.root.logger=INFO,console -Dflume.monitoring.type=http -Dflume.monitoring.port=12345
启动成功
ps -aux | grep flume
ps -aux | grep flume | awk '{print $2}' | xargs kill
# 在matser运行flume
./bin/flume-ng agent --conf ./conf/ --conf-file ./conf/flume-conf.properties --name agent -Dflume.root.logger=INFO,console -Dflume.monitoring.type=http -Dflume.monitoring.port=12345
# 在slave1创建topic
kafka/bin/kafka-topics.sh --create --zookeeper master:2181,slave1:2181,slave2:2181 --replication-factor 3 --partitions 1 --topic cmcc
# 查看有没有生成目标topic
bin/kafka-topics.sh --list --zookeeper hadoop02:2181
# 在slave2创建消费者,消费数据
bin/kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topicName --from-beginning
# 生产者:./bin/kafka-console-producer.sh --broker-list localhost:9092 --topic first_topic
# 另起一个ssh,telnet master 4444 ,输入内容即可在slave2看到数据,在slave1也有topic数据的新增。
=左右不能有空格,DataStream这样hdfs的文件就不会有乱码。
# 在master 新建/data/flume-data/spooldir文件夹,hdfs上新建/flume/events/21-8-4
hdfs dfs -mkdir /flume/events
# 在master 运行flume
./bin/flume-ng agent --conf ./conf/ --conf-file ./conf/flume-conf.properties --name agent -Dflume.root.logger=INFO,console -Dflume.monitoring.type=http -Dflume.monitoring.port=12345
windows上telnet master 5555
输入一些内容即可在hdfs上看到数据
# 在master的flume/data文件夹下随便写入一些数据到一个文件下
echo "Hello Flume 111 !!!" > file1.txt
# 可以看到flume有日志输出到shell上,通过网页50070或者hdfs命令可以查看数据
hdfs dfs -cat /flume/FlumeData.1627392071366
只需要修改两行
# Describe/configure tail -F source1
a1.sources.r1.type=exec
a1.sources.r1.command =tail -F /export/taillogs/access_log
主节点(采集数据source) slave1、slave2下沉到hdfs
解压,配置conf/sqoop-env.sh
cp sqoop-env-template.sh sqoop-env.sh
将sqoop-1.4.7.jar复制到 $HADOOP_HOME/share/hadoop/mapreduce/
将JDBC.jar包拷贝到sqlserver和MySQL分别需要用到的jar包拷贝至lib下(自己选择拷贝什么jar)
./bin/sqoop list-databases --connect jdbc:mysql://slave1:3306/ --username root --password lz..
bin/sqoop import --connect jdbc:mysql://slave1:3306/hive --username root --password lz.. --table TBLS --columns id,name,sex -m 1 --target-dir '/sqoop/hive'