互联网专属保险什么意思,优化搜索引擎的方法,山东新闻 最新消息 今天,学院网站的系统建设方式这个是笔者大学时期的大数据课程使用三台CentOS7.6虚拟机搭建完全分布式集群的案例#xff0c;已成功搭建完全分布式集群#xff0c;并测试跑实例。
9 安装hbase
温馨提示#xff1a;安装hbase先在master主节点上配置#xff0c;然后远程复制到slave01或slave02 #xf…这个是笔者大学时期的大数据课程使用三台CentOS7.6虚拟机搭建完全分布式集群的案例已成功搭建完全分布式集群并测试跑实例。
9 安装hbase
温馨提示安装hbase先在master主节点上配置然后远程复制到slave01或slave02 在配置环境即可。
9.1 解压并配置环境变量
9.1.1 解压安装包 1)使用WinSCP将hbase-2.2.2-bin.tar.gz的压缩包从windows系统传至master主节点机器上并放置在/opt/software目录中同时创建 /usr/hbase目录后续将hbase-2.2.2-bin.tar.gz的压缩包解压到/usr/hbase即可。
2)在usr下创建hbase文件夹 mkdir -p /usr/hbase
3将放置在/opt/software目录中hbase-2.2.2-bin.tar.gz解压到/usr/hbase目录下
tar –zxvf /opt/software/hbase-2.2.2-bin.tar.gz -C /usr/hbase
9.1.2 修改配置文件hbase-env.sh
1先进入hbase配置目录conf cd /usr/hbase/hbase-2.2.2/conf 2修改配置文件hbase-env.sh vim hbase-env.sh
3并修改文件内容
export HBASE_MANAGES_ZKfalse export JAVA_HOME/usr/java/jdk1.8.0_162 export HBASE_CLASSPATH/usr/hadoop/hadoop-2.7.3/etc/hadoop
注 一个分布式运行的Hbase依赖一个zookeeper集群。所有的节点和客户端都必须能够访问zookeeper。默认的情况下Hbase会管理一个zookeep集群即Hbase默认自带一个zookeep集群。这个集群会随着Hbase的启动而启动。而在实际的商业项目中通常自己管理一个zookeeper集群更便于优化配置提高集群工作效率但需要配置Hbase。需要修改conf/hbase-env.sh里面的HBASE_MANAGES_ZK 来切换。这个值默认是true的作用是让Hbase启动的时候同时也启动zookeeper.在本实验中我们采用独立运行zookeeper集群的方式故将其属性值改为false。
9.1.3 修改配置文件vim hbase-site.xml
propertynamehbase.rootdir/namevaluehdfs://LBJ:9000/hbase/value
/property
propertynamehbase.cluster.distributed/namevaluetrue/value
/property
propertynamehbase.master/namevaluehdfs://LBJ:6000/value
/property
propertynamehbase.zookeeper.quorum/namevalueLBJ,slave01,slave02/value
/property
propertynamehbase.zookeeper.property.dataDir/namevalue/usr/zookeeper/zookeeper-3.4.10/value
/property注 要想运行完全分布式模式加一个属性 hbase.cluster.distributed 设置为 true 然后把 hbase.rootdir 设置为HDFS的NameNode的位置 hbase.rootdir这个目录是region server的共享目录用来持久化Hbase。URL需要是’完全正确’的还要包含文件系统的schemehbase.cluster.distributed Hbase的运行模式。false是单机模式true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面。在hbase-site.xml配置zookeeper当Hbase管理zookeeper的时候你可以通过修改zoo.cfg来配置zookeeper对于zookeepr的配置你至少要在 hbase-site.xml中列出zookeepr的ensemble servers具体的字段是 hbase.zookeeper.quorum.在这里列出Zookeeper集群的地址列表用逗号分割。 hbase.zookeeper.property.clientPortZooKeeper的zoo.conf中的配置,客户端连接的端口。hbase.zookeeper.property.dataDirZooKeeper的zoo.conf中的配置。对于独立的Zookeeper要指明Zookeeper的host和端口。需要在 hbase-site.xml中设置。
9.1.4 修改配置文件conf/regionservers
vim regionservers
将里面修改为:两个从节点名称 slave01 Slave02
9.1.5 hadoop配置文件拷入hbase的目录下
hadoop配置文件拷入hbase的目录下(当前目录为/usr/hbase/hbase-2.2.2/conf) cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/hdfs-site.xml /usr/hbase/hbase-2.2.2/conf cp /usr/hadoop/hadoop-2.7.3/etc/hadoop/core-site.xml /usr/hbase/hbase-2.2.2/conf
9.2 分发hbase到子节点并配置环境
9.2.1 分发hbase到子节点
scp -r /usr/hbase rootslave01:/usr/ scp -r /usr/hbase rootslave02:/usr/
9.2.2 子节点配置hbase环境三台机器都需配置
vim /etc/profile
需要配置Hbase环境变量 #hbase export HBASE_HOME/usr/hbase/hbase-2.2.2 export PATH$PATH:$HBASE_HOME/bin
是配置生效source /etc/profile
在master上
在slave01上
在slave02上
9.3 运行和测试(在master上执行并保证hadoop和zookeeper已开启)
在/usr/hbaes/hbase-2.2.2目录下cd /usr/hbaes/hbase-2.2.2/ bin/start-hbase.sh #开启hbase jps 在master上
在slave01上
在slave02上
9.4 shell操作
9.4.1 进入shell界面 在/usr/hbaes/hbase-2.2.2目录下cd /usr/hbaes/hbase-2.2.2/
bin/hbase shell
1在HBase中用create命令创建表 create student,Sname,Ssex,Sage,Sdept,course
2此时即创建了一个“student”表属性有Sname,Ssex,Sage,Sdept,course。因为HBase的表中会有一个系统默认的属性作为行键无需自行创建默认为put命令操作中表名后第一个数据。创建完“student”表后可通过describe命令查看“student”表的基本信息。 describe student
9.4.2 hbase数据库基本操作 温馨提示 在添加数据时HBase会自动为添加的数据添加一个时间戳故在需要修改数据时只需直接添加数据HBase即会生成一个新的版本从而完成“改”操作旧的版本依旧保留系统会定时回收垃圾数据只留下最新的几个版本保存的版本数可以在创建表的时候指定。
1添加数据 注HBase中用put命令添加数据注意一次只能为一个表的一行数据的一个列也就是一个单元格添加一个数据。 当运行命令put ‘student’,’95001’,’Sname’,’LiYing’时即为student表添加了学号为95001名字为LiYing的一行数据其行键为95001。 put student,95001,Sname,LiYing
put student,95001,course:math,90 即为95001行下的course列族的math列添加了一个数据。
2删除数据 delete用于删除一个数据是put的反向操作。 deleteall操作用于删除一行数据
①delete delete ‘student’,‘95001’,‘Ssex’ 即删除了student表中95001行下的Ssex列的所有数据
②deleteall 先put ‘student’,’110’,’Sname’,’LBJ’ 再deleteall ‘student’,‘110’
3查看数据 get用于查看表的某一行数据。 scan用于查看某个表的全部数据。
①get get ‘student’,110’
②scan scan ‘student’
4删除表格 删除表有两步第一步先让该表不可用第二步删除表。 disable ‘student’ drop ‘student’
9.4.3 hbase数据库查询表历史数据 1在创建表格时指定保存的版本数(这里假设指定为5) create teacher,{NAMEusername,VERSIONS5}
2)插入数据然后更新数据使其产生历史版本数据用put命令插入数据和更新数据 put ‘teacher’,‘91001’,‘username’,‘LBJ’ put ‘teacher’,‘91001’,‘username’,‘AD’ put ‘teacher’,‘91001’,‘username’,‘GUI’ put ‘teacher’,‘91001’,‘username’,‘Melo’ put ‘teacher’,‘91001’,‘username’,‘KD’ put ‘teacher’,‘91001’,‘username’,‘Harden’
3查询时指定查询的历史版本数。默认会查询出最新的数据。有效取值为1到5
get ‘teacher’,‘91001’,{COLUMN‘username’,VERSIONS5}
注由于value为LBJ的数据最先插入查询的数据有效取值为1~5所以没有value为LBJ的数据。
9.4.4 退出hbase数据库 注先退出shell命令界面用exit退出。退出shell命令界面后才能关闭hbase。
exit 关闭hbasebin/stop-hbase.sh
10 安装hive
注选用hive的远程模式slave02安装mysql server用于存放元数据slave01作为hive server作为thrift 服务器master作为client客户端进行操作。
10.1 在slave02上安装MySQL server
1)查找yum源中是否有MySQL: yum list | grep mysql
2)下载mysql的repo源: wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
3)安装mysql-community-release-el7-5.noarch.rpm包: sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
注安装这个包后就会获得两个mysql的yum repo源如下
4安装mysql sudo yum install mysql-server
5查看mysqld服务是否开启 ①查看mysqld服务 sudo service mysqld status
systemctl daemon-reload #重新加载某服务配置文件包括Mysql service mysql start #开启mysql systemctl enable mysqld #开启”mysqld”后再设置其开机自启可不做 sudo netstat -tap | grep mysql #查看mysql的开放的端口
结果发现还没有全部开启
⑤开放所有端口以便远程连接。 在/etc/目录下找到my.cnf文件 vim my.cnf 在文件中添加 bind-address 0.0.0.0
所有端口开启成功
安装成功 systemctl status mysql #验证”mysql.service”服务器正在运行
6重新设置mysql密码
①将本地密码设置成123456 mysqladmin -u root password 123456
第一次设置都可以成功如果不能成功设置可以参考一下的步骤 在my.cnf文件中加入skip-grant-tables #即可实现免密码登录
然后在mysql中修改密码即可
修改成功
不要忘记把skip-grant-tables删除
②首先删除之前的root账户然后建立可本机且远程访问的root show databases; use mysql; select user,host, authentication_string from user;
注: 每个人的root用户不同有的没有有的可能 ‘root’‘localhost’ 按自己情况删除 drop user rootlocalhost; select user,host,authentication_string from user; 显示root已被删除
create user rootlocalhost identified by 123456; 允许远程连接 grant all privileges on . to ‘root’‘localhost’ identified by ‘root’ with grant option; flush privileges;
由于远程连接可能会失败所以建议把localhost改为%
允许远程连接 grant all privileges on . to ‘root’‘%’ identified by ‘root’ with grant option; 并将登录密码改为root 在终端中使用”root”用户和新设置的密码登入MySql即可命令如下 mysql -u root –p
更多修改登录密码的操作可以参考Mysql初始化root密码和允许远程访问 - 敏捷的水 - 博客园 (cnblogs.com) 本机mysql使用账号和密码
③成功安装MySql数据库后需要确保部署数据库的服务器上的3306端口已经开启且可以使用数据库连接软件远程访问MySql数据库。
使用以下命令查看3306端口情况 netstat -ntpl |grep 3306
3306端口成功侦听了全部地址
7远程连接登录mysql测试 最好使用navcat等远程连接mysql工具 ip为机器的ip名。
8用root登入mysql创建元数据库hive
create database hive; show databases; exit #退出mysql仅退出未关服务
10.2 在master和slave01上安装hive
1)使用WinSCP将apache-hive-2.1.1-bin.tar.gz的压缩包从windows系统传至master主节点机器上并放置在/opt/software目录中同时创建 /usr/hive目录后续将apache-hive-2.1.1-bin.tar.gz的压缩包解压到/usr/hive即可。
cp /home/hadoop/tmp/apache-hive-2.1.1-bin.tar.gz /opt/software
2)在master上创建hive目录并解压hive安装包 mkdir -p /usr/hive cd /usr/hive
解压到/usr/hive/下 tar -zxvf /opt/software/apache-hive-2.1.1-bin.tar.gz -C /usr/hive/
3同时需要一些联机操作在slave01上建立文件夹/usr/hive然后在master中将安装包远程复制到slave1。 mkdir -p /usr/hive scp -r /usr/hive/apache-hive-2.1.1-bin rootslave01:/usr/hive/
10.3 在master和slave01上配置hive的环境
修改/etc/profile文件设置hive环境变量。master和slave1都执行 vim /etc/profile #hive export HIVE_HOME/usr/hive/apache-hive-2.1.1-bin export PATH$PATH:$HIVE_HOME/bin
并生效 source /etc/profile 在master上
在slave01上
10.4 解决版本冲突和jar包依赖问题
由于客户端需要和hadoop通信所以需要更改Hadoop中jline的版本。即保留一个高版本的jline jar包从hive的lib包中拷贝到Hadoop中lib位置为/usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib。master中执行
cp /usr/hive/apache-hive-2.1.1-bin/lib/jline-2.12.jar /usr/hadoop/hadoop-2.7.3/share/hadoop/yarn/lib/
因为服务端需要和Mysql通信所以服务端需要将Mysql的依赖包放在Hive的lib目录下。slave01中进行 先进入/usr/hive/apache-hive-2.1.1-bin/lib下
cd /usr/hive/apache-hive-2.1.1-bin/lib
cp /home/hadoop/tmp/mysql-connector-java-5.1.47-bin.jar /usr/hive/apache-hive-2.1.1-bin/lib
10.5 将slave01作为服务器端并配置hive
10.5.1配置hive-env.sh文件 注回到slave1修改hive-env.sh文件中HADOOP_HOME环境变量。进入hive配置目录因为hive中已经给出配置文件的范本hive-env.sh.template直接将其复制一个进行修改即可 cd $HIVE_HOME/conf
cp hive-env.sh.template hive-env.sh vim hive-env.sh
hive-env.sh文件中修改HADOOP_HOME环境变量。 HADOOP_HOME/usr/hadoop/hadoop-2.7.3 export HIVE_CONF_DIR/usr/hive/apache-hive-2.1.1-bin/conf export HIVE_AUX_JARS_PATH/usr/hive/apache-hive-2.1.1-bin/lib
10.5.2配置hive-site.xml文件 ①配置hive-site.xml文件 注conf里是没有这个文件的我们自己创建配置直接vim hive-site.xml即可直接创建该新文件。保存退出即可wq
configuration
!-- Hive产生的元数据存放位置--
property
namehive.metastore.warehouse.dir/name
value/usr/hive_remote/warehouse/value
/property
!-- 数据库连接JDBC的URL地址--
property
namejavax.jdo.option.ConnectionURL/name
valuejdbc:mysql://slave02:3306/hive?createDatabaseIfNotExisttrue/value
/property
!-- 数据库连接driver即MySQL驱动--
property
namejavax.jdo.option.ConnectionDriverName/name
valuecom.mysql.jdbc.Driver/value
/property
!-- MySQL数据库用户名--
property
namejavax.jdo.option.ConnectionUserName/name
valueroot/value
/property
!-- MySQL数据库密码--
property
namejavax.jdo.option.ConnectionPassword/name
valueroot/value
/property
property
namehive.metastore.schema.verification/name
valuefalse/value
/property
property
namedatanucleus.schema.autoCreateAll/name
valuetrue/value
/property
/configuration②在/usr下用mkdir -p新建hive_remote/warehouse目录在配置文件中用到hive产生元数据的存储文件夹。
10.6 将master作为客户端配置hive
先进入hive修改配置文件目录 cd $HIVE_HOME/conf
10.6.1 配置 hive-site.xml ①配置hive-site.xml文件 先vim hive-site.xml
configuration
!-- Hive产生的元数据存放位置--
property
namehive.metastore.warehouse.dir/name
value/usr/hive_remote/warehouse/value
/property
!--- 使用本地服务连接Hive,默认为true--
property
namehive.metastore.local/name
valuefalse/value
/property
!-- 连接服务器--
property
namehive.metastore.uris/name
valuethrift://slave01:9083/value
/property
/configuration②在/usr下用mkdir -p新建hive_remote/warehouse目录在配置文件中用到hive产生元数据的存储文件夹。
10.6.2 配置 hive-env.sh文件 在master上 先拷贝hive-env.sh.template文件命名为hive-env.sh cp hive-env.sh.template hive-env.sh
vim hive-env.sh hive-env.sh文件中修改HADOOP_HOME环境变量。 HADOOP_HOME/usr/hadoop/hadoop-2.7.3 export HIVE_CONF_DIR/usr/hive/apache-hive-2.1.1-bin/conf export HIVE_AUX_JARS_PATH/usr/hive/apache-hive-2.1.1-bin/lib
10.7 启动hive
注启动前按顺序将之前所有的hadoopzookeeperhbase服务启动否则在master上输入bin/hive命令时会报错。 1启动hive server服务slave01上 先进入 /usr/hive/apache-hive-2.1.1-bin/ 接着bin/hive --service metastorehive后面后空格
启动成功注slave01启动hive后有些关于ssl的warn如下应该是slave02和其余节点未免密以后安装集群在一开始集群免密还是要三台机器都互相免密
2在master上启动hive client
①进入/usr/hive/apache-hive-2.1.1-bin/目录 cd /usr/hive/apache-hive-2.1.1-bin/ bin/hive #启动hive
②测试hive是否启动成功 show databases; 创建数据库hive_dbcreate database hive_db;之前已经创建
③查看runjar(启动成功的标志) 先不要关闭当前终端会话去外面打开一个新的终端会话打开另一个terminal jps
11 安装Spark
11.1 安装scala环境
1使用WinSCP将scala-2.11.12.tgz的压缩包从windows系统传至master主节点机器上并放置在/opt/software目录中同时创建 /usr/scala目录后续将scala-2.11.12.tgz的压缩包解压到/usr/scala即可。先在master配置好在分发到slave01、slave02节点上
cp /home/hadoop/tmp/scala-2.11.12.tgz /opt/software/
2)创建 /usr/scala目录并解压scala mkdir -p /usr/scala cd /usr/scala
tar -zxvf /opt/software/scala-2.11.12.tgz -C /usr/scala/
rm -rf /opt/software/scala-2.11.12.tgz
3)配置scala的环境变量并生效 vim /etc/profile
#scala
export SCALA_HOME/usr/scala/scala-2.11.12
export PATH$SCALA_HOME/bin:$PATHsource /etc/profile
4查看scala是否安装成功 scala -version
5将scala分发复制到其他节点
scp -r /usr/scala rootslave01:/usr/ scp -r /usr/scala rootslave02:/usr/
并在其他节点配置环境变量并使之生效。
在slave01查看scala是否安装成功
在slave02查看scala是否安装成功
做完这一步scala安装完成了
11.2 安装Spark具体
1使用WinSCP将spark-2.4.0-bin-hadoop2.7.tgz的压缩包从windows系统传至master主节点机器上并放置在/opt/software目录中同时创建 /usr/spark目录后续将spark-2.4.0-bin-hadoop2.7.tgz的压缩包解压到/usr/spark即可。先在master配置好在分发到slave01、slave02节点上
cp /home/hadoop/tmp/spark-2.4.0-bin-hadoop2.7.tgz /opt/software/
2)创建 /usr/spark目录并解压spark mkdir -p /usr/spark cd /usr/spark tar -zxvf /opt/software/spark-2.4.0-bin-hadoop2.7.tgz -C /usr/spark
rm -rf /opt/software/spark-3.0.3-bin-hadoop2.7.tgz
3)配置spark-env.sh文件 由于没有spark-env.sh文件需要复制一份spark-env.sh.template cd spark-3.0.3-bin-hadoop2.7/conf/ cp spark-env.sh.template spark-env.sh vim spark-env.sh
添加以下内容
export SPARK_MASTER_IPLBJ
export SCALA_HOME/usr/scala/scala-2.11.12
export SPARK_WORKER_MEMORY8g
export JAVA_HOME/usr/java/jdk1.8.0_162
export HADOOP_HOME/usr/hadoop/hadoop-2.7.3
export HADOOP_CONF_DIR/usr/hadoop/hadoop-2.7.3/etc/hadoop4配置spark从节点修改slaves文件 注注意slaves节点中只包含节点信息其他注释不需要 由于没有slaves文件需要复制一份slaves.template cp slaves.template slaves vim slaves
5将spark分发复制到其他节点
scp -r /usr/spark rootslave01:/usr/ scp -r /usr/spark rootslave02:/usr/
6配置spark环境变量三台机器都做一样操作
vim /etc/profile 添加内容
#spark
export SPARK_HOME/usr/spark/spark-2.4.0-bin-hadoop2.7
export PATH$SPARK_HOME/bin:$PATH使之生效source /etc/profile
7开启spark在master节点上 /usr/spark/spark-2.4.0-bin-hadoop2.7/sbin/start-all.sh jps 在master上
在slave01上
在slave02上
做完这一步spark安装完成了
11.3 运行例程
注运行spark自带例程和shell命令板块。 1运行自带例程进行验证
cd /usr/spark/spark-2.4.0-bin-hadoop2.7/ bin/run-example SparkPi
bin/run-example SparkPi 21 | grep Pi is
2shell命令验证 进入shell命令界面bin/spark-shell
加载text文件 spark创建sc可以加载本地文件和HDFS文件创建RDD。这里用Spark自带的本地文件README.md文件测试。
val textFile sc.textFile(file:///usr/spark/spark-2.4.0-bin-hadoop2.7/README.md)
简单RDD操作 //获取RDD文件textFile的第一行内容 textFile.first()
//获取RDD文件textFile所有项的计数 textFile.count( ) //抽取含有“Spark”的行返回一个新的RDD val lineWithSpark textFile.filter(line line.contains(“Spark”))
//统计新的RDD的行数 lineWithSpark.count()
可以通过组合RDD操作进行组合可以实现简易MapReduce操作
//找出文本中每行的最多单词数 textFile.map(line line.split( ).size).reduce((a, b) if (a b) a else b)
退出Spark Shell 输入exit即可退出spark shell :quit 做完这一步运行例程验证完成了
12 安装eclipse
1使用WinSCP将eclipse-committers-2020-03-R-linux-gtk-x86_64.tar.gz的压缩包从windows系统传至master主节点机器上在master上解压安装在/usr/即可。
tar -zxvf /home/hadoop/tmp/eclipse-committers-2020-03-R-linux-gtk-x86_64.tar.gz -C /usr/
启动eclipse
做完这一步安装eclipse完成了 后续使用eclipse编程会在后续实现。 做完以上操作hadoop的完全分布式集群搭建成功
三台CentOS7.6虚拟机搭建Hadoop完全分布式集群三笔记到此完结笔者归纳、创作不易大佬们给个3连再起飞吧