是耳熟能详的卓越开源分布式文件存储及处理框架,它能让用户轻松地开发处理海量数据的应用程序,其主要优点有:
高可靠性:Hadoop 按位存储和处理数据的能力值得人们信赖。
高扩展性:Hadoop 在可用的计算机集簇间分配数据并完成计算任务的,这些集簇可以方便地扩展到数以干计的节点中。
高效性:Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
高容错性:Hadoop自动保存数据的多个副本,并自动将失败任务重分配。
低成本:与一体机、商用数据仓库比,Hadoop 开源软件的成本更低。
随着版本的演进,Hadoop 实现了较好的资源隔离并增加其他特性,这里比较一下Hadoop 1.0和2.0版本的特性差异,Hadoop 1.0由HDFS和MapReduce两个系统组成,存在以下几个缺点:
静态资源配置:即每个节点实现配置好可用的slot总数,这些slot数目一旦启动后无法再动态修改;
资源无法共享:将slot分为Map slot和Reduce slot两种,且不允许共享;
资源划分粒度过大:基于无类别slot的资源划分方法的划分粒度仍过于粗糙,往往会造成节点资源利用率过高或者过低;
无有效资源隔离机制:采用基于jvm的资源隔离机制,过于粗糙,很多资源,如CPU无法进行隔离,这会造成同一个节点上的任务之间干扰严重。
Hadoop 2.0由HDFS、MapReduce和YARN三个系统组成,其中YARN是一个资源管理系统,负责集群资源管理和调度,2.0中YAR允许每个节点(NodeManager)配置可用的CPU和内存资源总量,而中央调度器则会根据这些资源总量分配给应用程序。
讯享网
- 静态IP
进入 /etc/sysconfig/network-scripts/ifcfg-* 修改配置
- 修改
BOOTPROTO=“static”
ONBOOT=“yes”
- 追加
IPADDR=“XXX.XXX.XXX.XXX”
GATEWAY=“XXX.XXX.XXX.2”
NETMASK=“XXX.XXX.XXX.0”
DNS1=“114.114.114.114”
- 重启网络
service network restart
- 修改本机名称
vi /etc/hostname
hostnamectl set-hostname pure1 临时修改主机名
- 添加虚拟域名并拷贝至子机
在 /etc/hosts 中追加IP和主机名字,例:
192.168.140.200 pure1
192.168.140.201 pure2
192.168.140.202 pure3
scp /etc/hosts pure2:/etc/
- 免密登录
讯享网
- 检查CentOS7中是否自带了 , 若有将其卸载后重新安装
输入 命令删除Java (需删除多次)
讯享网
输入 命令删除Java
输入 命令查看文件是否已删除
讯享网
- 在 /opt 目录下创建 soft(放置安装包) 目录,利用 Xftp 将 上传至 目录下
- 解压文件 JDK 文件至 目录下 , 改名为 jdk
- 配置环境变量
vi /etc/profile 目录下的环境变量适用于所有用户
vi /root/.bash_profile 目录下的环境变量只适用于 root 用户。
- 配置文件中追加内容如下 :
讯享网
- 配置完成后输入代码使之立刻生效
- 查看 jdk 版本 , 验证是否配置成功
讯享网
- 多台机器同步安装JDK
从机经过第一部的检查后,开始从主机向从机进行拷贝
- 拷贝jdk文件
- 拷贝环境变量后从机重启环境
scp /root/.bash_profile pure2:/root
source /root/.bash_profile
- 验证是否成功
java -version
- 配环境
添加环境变量
- 在 /root/.bash_profile 中追加内容后重启
讯享网
source /root/.bash_profile
- 配软件
进入 hadoop/etc/hadoop 目录下配置相关文件
- 更改 hadoop-env.sh
- core-site.xml
讯享网
- hdfs-site.xml
- mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
讯享网
- yarn-site.xml
- slaves
删除localhost,将主、从机的主机名字写入
- 搭建Hadoop分布式
将主机配置文件复制到从机上
- hadoop文件
scp -r /usr/local/src/hadoop pure2:/usr/local/src
scp -r /usr/local/src/hadoop pure3:/usr/local/src
- 环境变量文件
scp /root/.bash_profile pure2:/root
scp /root/.bash_profile pure3:/root
- 测试
子机重启环境变量并测试是否生效
- 重启环境变量
source /root/.bash_profile
- 测试是否搭建完成
hadoop version
hdfs namenode -format
start-all.sh
jps
浏览器中访问HDFS的Web网站 : IP:50070 (关闭防火墙后再进入)
主机 : NameNode、NodeManager、DataNode、SecondaryNameNode、ResourceManager
从机 : DataNode、NodeManager
- 运行hadoop自带案例
- 创建txt文件上传至HDFS上
hadoop fs -put /opt/MyHadoopText.txt /
- 运行hadoop自带单词计数jar包进行测试
hadoop jar /usr/local/src/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar wordcount /MyHadoopText.txt /out1
注意 : 要把主、从机的防火墙全部关闭
- 查看结果
hadoop fs -cat /out1/part-r-00000
- 配环境
添加环境变量
- 在 /root/.bash_profile 中追加内容后重启
讯享网
source /root/.bash_profile
- 配软件
进入 hadoop/etc/hadoop 目录下配置相关文件
- 更改 hadoop-env.sh
- core-site.xml
讯享网
- hdfs-site.xml
- mapred-site.xml
cp mapred-site.xml.template mapred-site.xml
讯享网
- yarn-site.xml
- slaves
删除localhost,将主、从机的主机名字写入
- 搭建HadoopHA
将主机配置文件复制到从机上
- hadoop文件
scp -r /usr/local/src/hadoop pure2:/usr/local/src
scp -r /usr/local/src/hadoop pure3:/usr/local/src
- 环境变量文件
scp /root/.bash_profile pure2:/root
scp /root/.bash_profile pure3:/root
- 重启环境变量
source /root/.bash_profile
- 启动HadoopHA
- 在每台主机上启动zookeeper集群
zkServer.sh start
- 每台主机上启动journalnode(最好是奇数台基数机器)
hadoop-daemon.sh start journalnode
jps看到 JournalNode 进程
- 在zookeeper为主机的namenode节点上进行格式化
hdfs namenode -format
(格式化成功后在配置的data目录下,有个dfs,里面有name和data,因为没有启动集群,data是空的因为格式化后暂时没有内容)
(name种存储元数据,data存真数据)
(name下有current,下面有4个文件,就是元数据信息<fsimage…,seen_txid,VERSION>)
- 格式化成功后在初始化的机器上找到存放数据的data(core-site.xml里面配置的元数据存储目录),拷贝至另一个namenode节点机器上
scp -r /opt/hadoop/data slave1:/opt/hadoop
- 在任何一个namenode上格式化zookeeper
hdfs zkfc -formatZK
- 随便在一个namenode节点上启动
start-dfs.sh
访问50070 一个显示 (主机) 一个显示 (备用)
- 在两个yarn节点上都启动
start-yarn.sh
访问8088 点击about一个显示 (主机) 一个显示 (备用)
注意网址 : IP:/cluster/cluster 两个/cluster
- 测试是否配置成功(进行主备切换)
- 进行namenode主备切换
在主机器上jps显示NameNode的进程号
kill -9 NameNode进程号 , 查看第二个NameNode的50070状态是不是从standby变为active
启动第一台电脑的NameNode
hadoop-daemon.sh start namenode
启动50070状态为standby
- 进行yarn主备切换
yarn可以用同样的方法测试(resourcemanager)
单点启动yarn的命令为
yarn-daemon.sh start resourcemanager
- 查看 服务进程
cd hadoop
bin/hdfs haadmin -getServiceState nn1
bin/hdfs haadmin -getServiceState nn2
回到顶部
- 配环境
添加环境变量
- 在 /root/.bash_profile 中追加内容后重启
讯享网
source /root/.bash_profile
- 配软件
进入 spark/conf 目录下配置相关文件
- spark-env.sh
cp spark-env.sh.template spark-env.sh
- slaves
cp slaves.template slaves
删除localhost,将从机的主机名字写入
- 搭建Spark集群
将主机配置文件复制到从机上
- spark文件
scp -r /usr/local/src/spark pure2:/usr/local/src
scp -r /usr/local/src/spark pure3:/usr/local/src
- 环境变量文件
scp /root/.bash_profile pure2:/root
scp /root/.bash_profile pure3:/root
- 测试
子机重启环境变量并测试是否生效
- 重启环境变量
source /root/.bash_profile
- 测试是否搭建完成
cd spark/sbin
https://download.csdn.net/blog/column//start-all.sh
jps
主机 : Master
从机 : Worker
- 普通运行spark内置案例测试spark是否正常
运行测试案例注意关闭防火墙 ! ! !
在程序运行时可以通过 IP:4040 查看运行过程
spark-submit –class org.apache.spark.examples.SparkPi –master spark://pure1:7077 /usr/local/src/spark/examples/jars/spark-examples_2.11-2.0.0.jar 100
若结束后可通过 IP:8080 访问历史记录
cd /spark/sbin
https://download.csdn.net/blog/column//start-history-server.sh
浏览器中输入 IP:8080 (需要关闭防火墙)
- spark on yarn 运行案例
完成on yarn相关配置
- spark-env.sh
讯享网
- yarn-site.xml
vi /usr/local/src/hadoop/etc/hadoop/
spark on yarn运行命令
spark-submit –class org.apache.spark.examples.SparkPi –master yarn /usr/local/src/spark/examples/jars/spark-examples_2.11-2.0.0.jar 100
- 配环境
添加环境变量
- 在 /root/.bash_profile 中追加内容后重启
讯享网
source /root/.bash_profile
- 配软件
进入 flink/conf 目录下配置相关文件
- flink-conf.yaml
注意 : 后一定要有一个空格否则报错 ! ! !
- slaves
删除原内容,将主机和子机名写入
- 配置子机Flink
将主机配置文件复制到从机上
- flink文件
scp -r /usr/local/src/flink pure2:/usr/local/src
scp -r /usr/local/src/flink pure3:/usr/local/src
- 环境变量文件
scp /root/.bash_profile pure2:/root
scp /root/.bash_profile pure3:/root
- 测试
子机重启环境变量并测试是否生效
- 重启环境变量
source /root/.bash_profile
- 测试是否搭建完成
start-cluster.sh
jps
可以进入webUI界面 : IP:8081 (需要关闭防火墙)
主机 : StandaloneSessionClusterEntrypoint、TaskManagerRunner
从机 : TaskManagerRunner
集群启动后TaskManagerRunner不能启动用命令单点启动TaskManager
taskmanager.sh start
- 普通运行flink内置案例测试flink是否正常
- 连接端口 , 向端口发送数据
nc -l -p 端口号
随便输入一些单词,用空格隔开,通过回车发送。
注意 : 若提示找不到nc命令 则使用 下载nc
- 启动flink中jar包
启动后每隔 5s 进行一次数据更新
讯享网
打开flink下log目录中的 flink-tlj-taskexecutor-O-bogon.out文件,会看到结果,对单词进行了统计。或是在8081的Task Managers中查看
- flink on yarn 运行案例
- yarn-site.xml
vi /usr/local/src/hadoop/etc/hadoop/yarn-site.xml
flink on yarn运行命令(运行时不检查虚拟内存[yarn-site.xml中可以不用配置运行时不检查虚拟内存])
flink run -m yarn-cluster -p 2 -yjm 2G -ytm 2G $FLINK_HOME/examples/batch/WordCount.jar
flink on yarn运行命令(运行时检查虚拟内存)
flink run -m yarn-cluster /opt/flink/examples/batch/WordCount.jar
输入flink on yarn运行命令报错中含有 运行下面这条后再次运行(或在flink/bin中追加此条命令)
export HADOOP_CLASSPATH=`hadoop classpath`
- 检查CentOS7中是否自带了 , 若有将其卸载后重新安装MySql
- 搜索查看是否有 mariadb 相关文件
rpm -qa|grep mariadb
- 卸载 mariadb
rpm -e –nodeps mariadb…
卸载完后可以通过搜索再次检查确认
- 安装MySql
讯享网
- 启动MySQL服务并设置密码
- 启动MySQL服务
service mysql start
- 使用MySQL并设置密码
- 再次登录时命令
mysql -u root -p
- 连接第三方软件(navicat)操作MySQL
- 授权远程登录权限并刷新权限,否则无法远程连接
mysql> GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ IDENTIFIED BY ‘’ WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
注意 : 远程连接时要关闭防火墙,否则无法连接
需提前在机器上配置好jdk、Hadoop、MySQL前置环境,Hive只需要在主机中安装
- 配环境
添加环境变量
- 在 /root/.bash_profile 中追加内容后重启
讯享网
source /root/.bash_profile
- 配软件
进入 hive/conf 目录下配置相关文件
- hive-env.sh
cp hive-env.sh.template hive-env.sh
- hive-site.xml
cp hive-default.xml.template hive-site.xml
(1) 改数据库连接地址
/ConnectionURL (搜索结果第二个)
讯享网
注意 : 字段可以随便输入
(2) 改连接数据库的驱动
/ConnectionDriverName
(3) 登录mysql的账号
/ConnectionUserName
讯享网
(4) 密码
/ConnectionPassword
(5) 临时数据目录
/querylog.location
讯享网
(6) 存储中间输出结果
/local.scratchdir
(7) 资源下载的临时目录
/resources.dir
讯享网
- 输入hive --version查看版本
- 将mysql驱动包拷贝至Hive下lib中
cp mysql-connector-java-5.1.39.jar /usr/local/src/hive/lib/
若以下任意一步报错则执行此步骤,常见错误为 :
cp jline-2.12.jar /usr/local/src/hadoop/share/hadoop/yarn/lib/
cd hadoop/share/hadoop/yarn/lib/
删除之前存在的jline的版本
- 初始化hive
schematool -dbType mysql -initSchema
初始化成功后会出现 : Initialization script completed
注意 : 初始化hive之前需要删除mysql中之前创建的hive数据库

- 启动hive
启动hive之前必须启动hadoop(单机,、集群、高可用均可),若不启动hadoo常见报错为 :
hive
回到顶部
下载依赖Java和Hadoop,需要提前配置好Java和Hadoop
- 配环境
添加环境变量
- 在 /root/.bash_profile 中追加内容后重启
source /root/.bash_profile
- 配软件
进入 sqoop/conf 目录下配置相关文件
- sqoop-env.sh
cp sqoop-env-template.sh sqoop-env.sh
讯享网
测试是否安装完成 sqoop version
- 测试和mysql的连接情况
- 将Java连接myql的驱动包拷贝至 sqoop/lib目录下
cp mysql-connector-java-5.1.39.jar /usr/local/src/sqoop/lib/
- 使用命令测试某个机器上所有的数据库列表
sqoop-list-databases --connect jdbc:mysql://localhost:3306 --username root --password
- 使用命令测试某个机器上指定数据库中所有的表
sqoop-list-tables --connect jdbc:mysql://localhost:3306/bigdata_db --username root --password
- sqoop和mysql进行交互
数据表 : bigdata_db.sql
- 把mysql某张数据表中的数据导入hdfs中
sqoop import --connect jdbc:mysql://localhost:3306/数据库名 --username root --password --target-dir 结果放入HDFS的路径 --table 表名 --m 1
- 查看hdfs中是否已经成功导入命令
hdfs dfs -cat /mysql_import/part-m-00000
- 把mysql某张数据表中的数据导入hdfs中 , 更改分隔符号为 “;”
sqoop import --connect jdbc:mysql://localhost:3306/bigdata_db --username root --password --target-dir /mysql_import --table tb_goods --m 1 --fields-terminated-by ‘;’
- 将hdfs中数据导出到mysql中
sqoop export --connect jdbc:mysql://localhost:3306/数据库名?useUnicode=true&characterEncoding=utf-8 --username root --password --table 要导入的数据表名 --export-dir HDFS中的数据路径 --fields-terminated-by ‘;’ --m 1
: 设计表不要处于打开状态 , 表结构全部允许空值 , 没有主键 , 没有递增 , 可以全部设为varchar
- 配环境
添加环境变量
- 在 /root/.bash_profile 中追加内容后重启
source /root/.bash_profile
- 配软件
进入 zookeeper/conf 目录下配置相关文件
- zoo.cfg
cp zoo_sample.cfg zoo.cfg
讯享网
注意 : 自行在/opt下创建zkData及其目录下文件夹(data,logs)
- myid
在/opt/zkData/data目录下创建myid
- 搭建zookeeper集群
将环境变量、zookeeper、zkData拷贝至从机 (注意不要忘记更改zkData/data下的myid文件值)
- 启动zookeeper
每台电脑输入启动命令
zkServer.sh start
集群中一定有一个zookeeper状态为leader(领导者),输入命令查看 (注意关闭防火墙 ! ! !)
zkServer.sh status
jps查看每台机器下进程有 : QuorumPeerMain
- 配环境
添加环境变量
- 在 /root/.bash_profile 中追加内容后重启
讯享网
source /root/.bash_profile
- 配软件
进入 kafka/config 目录下配置相关文件
- server.properties
注意 : 、 、在每台主机上的配置内容都不同
- 将环境变量和kafka拷贝至两台从机
scp -r /usr/local/src/kafka pure2:/usr/local/src
scp -r /usr/local/src/kafka pure3:/usr/local/src
scp /root/.bash_profile pure2:/root
scp /root/.bash_profile pure3:/root
从机上重启环境变量
source /root/.bash_profile
- 在从机上配置server.properties文件
讯享网
- 启动kafka
对每台主机执行以下操作 :
首先需要启动zookeeper
zkServer.sh start
启动完后jps显示 : QuorumPeerMain
kafka-server-start.sh /usr/local/src/kafka/config/server.properties &
- kafka测试
任选一台机器执行命令
创建主题
kafka-topics.sh –create –zookeeper 主机名:2181 –replication-factor 1 –partitions 1 –topic (test为主题名称)
查看主题
kafka-topics.sh –zookeeper 主机名:2181 -list
启动集群生产者(发消息)
kafka-console-producer.sh –broker-list 主机IP:9092,从机1IP:9092,从机2IP:9092 –topic (test为主题名称)
在异于生产者的主机上启动集群消费者(收消息)
kafka-console-consumer.sh –bootstrap-server 主机IP:9092,从机1IP:9092,从机2IP:9092 –topic –from-beginning (test为主题名称)
删除主题
bin/kafka-topics.sh –zookeeper 本机IP:2181 –delete –topic (test为主题名称)
根据group查看kafka消费情况 (未测试)
kafka-consumer-groups.sh –new-consumer –bootstrap-server 192.168.140.151:9092 –describe –group test (test为主题名)
结束测试 (先关kafka)
kafka-server-stop.sh
zkServer.sh stop
- 配环境
添加环境变量
- 在 /root/.bash_profile 中追加内容后重启
source /root/.bash_profile
- 配软件
进入 flume/conf 目录下配置相关文件
- flume-env.sh
cp flume-env.sh.template flume-env.sh
讯享网
- 测试
- 监听 网络端口 发送信息将内容输出到控制台上
(1) 在 flume/conf 目录下创建配置文件,命名随意
vi console.conf
(2) 配置新文件
(3) 执行命令 (需在flume目录下执行)
bin/flume-ng agent -c conf -f conf/console.conf -name a1 -Dflume.root.logger=INFO,console
(4) 测试
检测网络端口是否被占用
netstat -tunlp | grep 44444
在另一台主机上进行网络信息发送
nc pure1 44444
注意 : 若nc命令找不到则使用 命令下载 , 解决错误办法:关闭防火墙
- 监听 网络端口 发送信息将内容保存到文件中
将上步骤配置文件更改,其余步骤相同
注意 : 需提前将配置文件中的保存目录创建出来
讯享网
- 监听 文件变化 收集配置文件到 指定目录 下
注意 : 需提前建好配置文件中的监听文件
配置文件 file.conf 内容如下
测试 :
bin/flume-ng agent -c conf -f conf/ -name -Dflume.root.logger=INFO,console
echo “要加入的内容” >> /opt/temp/flumetest.txt
- 监听 文件变化 收集配置文件到 HDFS 中
配置文件 hdfs.conf 内容如下
讯享网
测试
bin/flume-ng agent -c conf -f conf/hdfs.conf -name a3 -Dflume.root.logger=INFO,console
echo “要加入的内容” >> /opt/temp/flumetest.txt
修改HDFS文件夹权限
hadoop fs -chmod -R 777 /tmp
查看HDFS文件夹下文件
hadoop fs -ls /tmp/flume

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/177623.html