Linux-新手小白速秒Hadoop集群全生态搭建(图文混编超详细)

news2024/12/25 12:32:50

在之前的文章中,我教会大家如何一步一步搭建一个Hadoop集群,但是只提供了代码,怕有些朋友会在一些地方产生疑惑,今天我来以图文混排的方式,一站式交给大家如何搭建一个Hadoop高可用集群包括(HadoopHA,Zookeeper、MySQL、Hbase、Hive、Sqoop、Scala、Spark)。如果对之前文章感兴趣的朋友,可以观看这刊专栏:

大数据技术之Hadoop全生态组件学习与搭建icon-default.png?t=N7T8http://t.csdnimg.cn/LMyEn文章较长,附目录,此次安装是在VM虚拟环境下进行。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢。

目录

一,创建集群

一、创建主机

二、解压安装包配置环境变量

一、解压安装包

二、配置环境变量

三、创建从机

二、配置安装应用

1、HadoopHA 及 zookeeper

2、HBase

3、Hive及MySQL

4、sqoop

5、scala 及spark


一,创建集群

一、创建主机

 首先,我们需要在vm里安装新建一台名为BigData01的虚拟机作为我们的主机。

这个内存要注意,如果只是学习搭建,内存不用给很大,如果你的集群搭建是为了工作或别的高需求目的,能给多大就多大。

 

 

 

 

 

 

这样,我们就可以开启虚拟机了,第一次需要初始化。

这是添加新用户,name是用户名,password是密码。

这边我们选择用root(管理员)用户来登录,密码就是刚才创建虚拟机时所设置的密码。

将我们所需要的安装包(jdk、Hadoop、zookeeper、hbase、MySQL、MySQL.java、hive、sqoop、Scala、spark)上传到Linux的Downloads中。

二、解压安装包配置环境变量

一、解压安装包

打开终端,解压到opt下

tar zxvf /root/Downloads/jdk-8u171-linux-x64.tar.gz -C/opt/
tar zxvf /root/Downloads/zookeeper-3.4.5.tar.gz -C/opt/
tar zxvf /root/Downloads/hadoop-2.7.5.tar.gz -C/opt/
mv /opt/zookeeper-3.4.5/ /opt/zookeeper
mv /opt/hadoop-2.7.5/ /opt/hadoopHA
tar zxvf /root/Downloads/hbase-1.2.6-bin.tar.gz -C/opt/

tar zxvf /root/Downloads/apache-hive-2.1.1-bin.tar.gz -C/opt/
mv /opt/apache-hive-2.1.1-bin/ /opt/hive

卸载原有数据库
rpm -qa | grep mariadb(出来的是哪个版本号下面就哪个)
rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64
rpm -e --nodeps mariadb-5.5.68-1.el7.x86_64
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

安装mysql
cd /opt/
mkdir mysql
cd
tar xvf /root/Downloads/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar -C/opt/mysql
cd /opt/mysql/
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh  mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm


检查安装情况
rpm -qa | grep mysql 

mv /root/Downloads/mysql-connector-java-5.1.46-bin.jar /opt/hive/lib/

tar -zxvf /root/Downloads/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C/opt/
mv /opt/sqoop-1.4.7.bin__hadoop-2.6.0/ /opt/sqoop

二、配置环境变量

创建所需文件,配置环境变量

cd /opt/zookeeper
mkdir data && mkdir logs
cd

vim /etc/profile

export JAVA_HOME=/opt/jdk1.8.0_171
export HADOOP_HOME=/opt/hadoopHA
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

export ZOOKEEPER_HOME=/opt/zookeeper
export PATH=$PATH:$ZOOKEEPER_HOME/bin

export HBASE_HOME=/opt/hbase-1.2.6
export PATH=$PATH:$HBASE_HOME/bin

export HIVE_HOME=/opt/hive
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HCAT_HOME=$HIVE_HOME/hcatalog
export PATH=$PATH:$HIVE_HOME/bin

export SQOOP_HOME=/opt/sqoop
export PATH=$PATH:$SQOOP_HOME/bin

export SCALA_HOME=/usr/local/soft/scala-2.12.12
export PATH=$PATH:${SCALA_HOME}/bin

export SPARK_HOME=/opt/spark-3.2.1
export PATH=$PATH:${SPARK_HOME}/bin
export PATH=$PATH:${SPARK_HOME}/sbin

source /etc/profile

三、创建从机

主机关机,从目前的主机状态克隆出两个从机当集群中的从节点,名称分别为BigData01,BigData02。

 

BigData03创建方式同上 

二、配置安装应用

1、HadoopHA 及 zookeeper

vim /etc/hosts
192.168.67.128  BigData01
192.168.67.129  BigData02
192.168.67.130  BigData03
(根据实际ip改变)
scp -r /etc/hosts @BigData02:/etc/
scp -r /etc/hosts @BigData03:/etc/
(接yes和密码)

 

ssh-keygen -t rsa
cd ~/.ssh/	
cat ./id_rsa.pub >> ./authorized_keys

产生的授权后的钥匙要发送给s1和s2节点
#scp 发送命令
scp ./authorized_keys root@BigData02:/.ssh
scp ./authorized_keys root@BigData03:/.ssh

ssh-copy-id BigData02
ssh-copy-id BigData03

ssh-add 启动ssh的服务

echo 1 > /opt/zookeeper/data/myid
cp /opt/zookeeper/conf/zoo_sample.cfg /opt/zookeeper/conf/zoo.cfg

vim /opt/zookeeper/conf/zoo.cfg
修改dataDir=/opt/zookeeper/data
末尾添加:
server.1=BigData01:2888:3888
server.2=BigData02:2888:3888
server.3=BigData03:2888:3888

scp -r /opt/zookeeper root@BigData02:/opt/
scp -r /opt/zookeeper root@BigData03:/opt/

02虚拟机下:echo 2 > /opt/zookeeper/data/myid 
03虚拟机下:echo 3 > /opt/zookeeper/data/myid 

三个节点:
systemctl stop firewalld.service
zkServer.sh start
zkServer.sh status

cd /opt/hadoopHA/
mkdir tmp
scp -r /opt/hadoopHA/tmp @BigData02:/opt/hadoopHA/
scp -r /opt/hadoopHA/tmp @BigData03:/opt/hadoopHA/

vim /opt/hadoopHA/etc/hadoop/hadoop-env.sh
export JAVA_HOME=/opt/jdk1.8.0_171



vim /opt/hadoopHA/etc/hadoop/core-site.xml
        <property>
                <!--指定HDFS的通信地址-->
                <name>fs.defaultFS</name>
                <value>hdfs://ns1</value>
        </property>
        <property>
                <!--指定hadoop运行时产生文件的存储路径(即临时目录)-->
                <name>hadoop.tmp.dir</name>
                <value>/opt/hadoopHA/tmp</value>
        </property>
        <property>
                <!--指定ZooKeeper地址(2181端口参考zoo.cfg配置文件) -->
                <name>ha.zookeeper.quorum</name>
                <value>BigData01:2181,BigData02:2181,BigData03:2181</value>
        </property>



vim /opt/hadoopHA/etc/hadoop/hdfs-site.xml
        <property>
                <!--指定HDFS的nameservices为ns1,需要与core-site.xml保持一致-->
                <name>dfs.nameservices</name>
                <value>ns1</value>
        </property>
        <property>
                <!--ns1下面设置2个NameNode,分别是nn1,nn2-->
                <name>dfs.ha.namenodes.ns1</name>
                <value>nn1,nn2</value>
        </property>

        <property>
                <!--设置nn1的RPC通信地址-->
                <name>dfs.namenode.rpc-address.ns1.nn1</name>
                <value>BigData01:9000</value>
        </property>
        <property>
                <!--设置nn1的http通信地址-->
                <name>dfs.namenode.http-address.ns1.nn1</name>
                <value>BigData01:50070</value>
        </property>

        <property>
                <!--设置nn2的RPC通信地址-->
                <name>dfs.namenode.rpc-address.ns1.nn2</name>
                <value>BigData02:9000</value>
        </property>
        <property>
                <!--设置nn2的http通信地址-->
                <name>dfs.namenode.http-address.ns1.nn2</name>
                <value>BigData02:50070</value>
        </property>

        <property>
                <!--设置NameNode的元数据在JournalNode上的存放位置-->
                <name>dfs.namenode.shared.edits.dir</name>
                <value>qjournal://BigData01:8485;BigData02:8485;BigData03:8485/ns1</value>
        </property>
        <property>
                <!--指定JournalNode存放edits日志的目录位置-->
                <name>dfs.journalnode.edits.dir</name>
                <value>/opt/hadoopHA/tmp/dfs/journal</value>
        </property>

        <property>
                <!--开启NameNode失败自动切换-->
                <name>dfs.ha.automatic-failover.enabled</name>
                <value>true</value>
        </property>
        <property>
                <!--配置失败自动切换实现方式-->
                <name>dfs.client.failover.proxy.provider.ns1</name>
                <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
        </property>
        <property>
                <!--配置隔离机制-->
                <name>dfs.ha.fencing.methods</name>
                <value>sshfence</value>
        </property>
        <!--设置使用隔离机制时需要的SSH免登录-->
        <property>
                <name>dfs.ha.fencing.ssh.private-key-files</name>
                <value>/home/hadoop/.ssh/id_rsa</value>
        </property>



 vim /opt/hadoopHA/etc/hadoop/yarn-site.xml
        <property>
                <!--设置resourcemanager在哪个节点上-->
                <name>yarn.resourcemanager.hostname</name>
                <value>BigData01</value>
        </property>
        <property>
                <!--Reducer取数据的方法是mapreduce_shuffle-->
                <!--指定nodemanager启动时加载server的方式-->
                <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>


cd /opt/hadoopHA/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
cd
vim /opt/hadoopHA/etc/hadoop/mapred-site.xml
        <property>
                <!--指定MR(mapreduce)框架使用YARN方式-->
                <name>mapreduce.framework.name</name>
                <value>yarn</value>
        </property>


vim /opt/hadoopHA/etc/hadoop/slaves
BigData01
BigData02
BigData03


scp -r /opt/hadoopHA root@BigData02:/opt/
scp -r /opt/hadoopHA root@BigData03:/opt/


三个节点启动zookeeper,查看状态
zkServer.sh start
zkServer.sh status
jps查看进程
hadoop-daemon.sh start journalnode

主节点下:
hdfs namenode -format
scp -r /opt/hadoopHA/tmp/dfs @BigData02:/opt/hadoopHA/tmp/
hadoop-daemon.sh start namenode
另外一个namenode节点下:
hdfs namenode -bootstrapStandby
hadoop-daemon.sh start namenode


主节点下:
hdfs zkfc -formatZK 格式化
启动服务:
start-dfs.sh
start-yarn.sh
查看进程:
jps

关机前关闭集群服务:
stop-yarn.sh
stop-dfs.sh

后面的配置方法同上,就不附图了

2、HBase

在BigData01下:
tar zxvf /root/Downloads/hbase-1.2.6-bin.tar.gz -C/opt/

vim /etc/profile
export HBASE_HOME=/opt/hbase-1.2.6
export PATH=$PATH:$HBASE_HOME/bin

source /etc/profile

vim /opt/hbase-1.2.6/conf/hbase-env.sh 
export JAVA_HOME=/opt/jdk1.8.0_171(27行)

export HBASE_MANAGES_ZK=false(128)此行下面添加:
# Configure PermSize. Only needed in JDK7. You can safely remove it for JDK8+
export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"
export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m -XX:ReservedCodeCacheSize=256m"

vim /opt/hbase-1.2.6/conf/hbase-site.xml 
	<property>
		<name>hbase.rootdir</name> <!-- hbase存放数据目录 ,默认值${hbase.tmp.dir}/hbase-->
		<!-- 端口要和Hadoop的fs.defaultFS端口一致-->
		<!--ns1为hdfs-site.xml中dfs.nameservices的值。或与Hadoop的fs.defaultFS一致-->
		<value>hdfs://ns1/data/hbase_db</value>
	</property>
	<property>
		<name>hbase.cluster.distributed</name> <!-- 是否分布式部署 -->
		<value>true</value>
	</property>
	<property>
		<name>dfs.support.append</name>
		<value>true</value>
	</property>
	<property>
		<name>hbase.zookeeper.quorum</name> <!-- list of  zookooper -->
		<value>BigData01,BigData02,BigData03</value>
	</property>
	<property>
		<name>hbase.zookeeper.property.datadir</name> <!--zookooper配置、日志等的存储位置 -->
		<value>/opt/zookeeper-3.4.12</value>
	</property>
	<property>
		<name>hbase.zookeeper.property.clientPort</name>
		<value>2181</value>
	</property>

vim /opt/hbase-1.2.6/conf/regionservers
BigData01
BigData02
BigData03

vim /opt/hbase-1.2.6/conf/backup-masters
BigData02

scp /opt/hadoopHA/etc/hadoop/hdfs-site.xml /opt/hbase-1.2.6/conf/

scp -r /etc/profile @BigData02:/etc/
scp -r /etc/profile @BigData03:/etc/
scp -r /opt/hbase-1.2.6 root@BigData02:/opt/
scp -r /opt/hbase-1.2.6 root@BigData03:/opt/
两节点下
source /etc/profile

依次启动zkServer.sh start(检查防火墙)
systemctl stop firewalld

01下:

start-dfs.sh
start-yarn.sh
start-hbase.sh
jps
03下:
mr-jobhistory-daemon.sh start historyserver
jps

浏览器打开查看
http://192.168.67.128:16010
http://192.168.67.128:16030
根据实际ip地址查看





HBase的Shell命令
1)基本Shell命令
1、启动Shell(进入HBase命令行环境)
$ hbase shell 
[hadoop@BigData01 ~]$ hbase shell 
hbase(main):001:0> 

2、查看HBase运行状态
hbase(main):002:0> status
1 active master, 1 backup masters, 3 servers, 0 dead, 0.6667 average load

3、查看版本
hbase(main):003:0> version

4、获得帮助
hbase(main):004:0> help

5、退出Shell
hbase(main):005:0> exit

2)DDL操作命令
1、创建表
create  表名student,列族名address,  列族名info 
hbase(main):001:0> create 'student', 'address', 'info' 
0 row(s) in 2.9230 seconds
=> Hbase::Table - student

2、列表的形式显示所有数据表
hbase(main):002:0> list
TABLE                                                                              
student                                                                            
1 row(s) in 0.0920 seconds

=> ["student"]

3、查看表的结构
hbase(main):003:0> describe 'student' 
Table student is ENABLED                                                                                                                    
student                                                                                                                                     
COLUMN FAMILIES DESCRIPTION                                                                                                                 
{NAME => 'address', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', 
DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', 
BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}      
{NAME => 'info', BLOOMFILTER => 'ROW', VERSIONS => '1', IN_MEMORY => 'false', KEEP_DELETED_CELLS => 'FALSE', 
DATA_BLOCK_ENCODING => 'NONE', TTL => 'FOREVER', COMPRESSION => 'NONE', MIN_VERSIONS => '0', BLOCKCACHE => 'true', 
BLOCKSIZE => '65536', REPLICATION_SCOPE => '0'}         
2 row(s) in 0.1420 seconds

4、修改表结构(需要先将表设为不可用)
hbase(main):004:0> disable 'student' 
0 row(s) in 2.4820 seconds

4.1)增加列族
hbase(main):005:0> alter 'student', NAME=>'cf3', VERSIONS=>5
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 2.3320 seconds

4.2)删除列族
hbase(main):007:0> alter 'student', NAME=>'cf3', METHOD=>'delete'
Updating all regions with the new schema...
1/1 regions updated.
Done.
0 row(s) in 2.2480 seconds 

4.3)设表为启用状态
enable 'student' 

5、查询表是否存在
exists 'student' 

6、查询表是否可用
is_enabled 'student' 

7、判断表是否不可用
is_disabled 'student' 

8、删除表
先disable表,再drop表
disable 'test' 
drop 'test' 

2)DML操作命令
假设student表的列族address{province,city,university},info{height,weight,birthday,telephone,qq}

create 'student', 'address', 'info' 

Row Key: 姓名(也可根据需要设学号为row key)
1、插入记录数据(put '表名', 'row key', '列族:列', '列的值')
put 'student','zhangsan','info:height','180'
put 'student','zhangsan','info:birthday','1990-01-20'
put 'student','zhangsan','info:weight','70'
put 'student','zhangsan','address:province','Hubei'
put 'student','zhangsan','address:city','Wuhan'
put 'student','zhangsan','address:university','Wenhua College'

2、获取一条数据(get '表名', 'row key')
hbase(main):011:0> get 'student', 'zhangsan'
COLUMN                CELL                                                         
 address:city         timestamp=1521772686458, value=Wuhan                         
 address:province     timestamp=1521772681481, value=Hubei                         
 address:university   timestamp=1521772690856, value=Wenhua College                
 info:birthday        timestamp=1521772670610, value=1990-01-20                    
 info:height          timestamp=1521772660840, value=180                           
 info:weight          timestamp=1521772675096, value=70                            
6 row(s) in 0.1980 seconds

3、获取一个ID(row key),一个列族的所有数据
get 'student', 'zhangsan', 'info'

4、获取一个ID(row key),一个列族中某列的所有数据
get 'student', 'zhangsan', 'info:birthday'

5、更新一条记录
put 'student', 'zhangsan', 'info:weight', '75'

6、读出数据(全表扫描)
scan 'student'

7、查询表有多少行(row key的数量)
count 'student' 

8、将整表清空
truncate 'student' 

9、删除某ID(row key)的某列的值 
delete 'student', 'zhangsan', 'info:weight' 

3)运行HBase Shell脚本
可以把操作命令写入到文件中,如testHbaseData.sh,再在Linux shell命令下执行:
$ hbase shell testHbaseData.sh 

如testHbaseData.sh文件中写入如下内容:
put 'student','lisi','info:height','170'
put 'student','lisi','info:birthday','1991-06-20'
put 'student','lisi','info:weight','65'
put 'student','lisi','address:province','Hubei'
put 'student','lisi','address:city','Wuhan'
put 'student','lisi','address:university','Wuhan University'

3、Hive及MySQL

tar zxvf /root/Downloads/apache-hive-2.1.1-bin.tar.gz -C/opt/
mv /opt/apache-hive-2.1.1-bin/ /opt/hive

关闭防火墙及自启
systemctl stop firewalld
systemctl disable firewalld

卸载原有数据库
rpm -qa | grep mariadb(出来的是哪个版本号下面就哪个)
rpm -e --nodeps mariadb-libs-5.5.65-1.el7.x86_64
rpm -e --nodeps mariadb-5.5.68-1.el7.x86_64
rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64

安装mysql
cd /opt/
mkdir mysql
cd
tar xvf /root/Downloads/mysql-5.7.26-1.el7.x86_64.rpm-bundle.tar -C/opt/mysql
cd /opt/mysql/
rpm -ivh mysql-community-common-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-5.7.26-1.el7.x86_64.rpm
rpm -ivh  mysql-community-libs-compat-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-5.7.26-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-5.7.26-1.el7.x86_64.rpm

检查安装情况
rpm -qa | grep mysql 

修改配置文件
 vim /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服务
mysqld --initialize --user=mysql
systemctl start mysqld
systemctl status mysqld(出现绿色active (running))

cat /var/log/mysqld.log | grep password(查看默认密码,复制:s/!:!8:kNrf)
mysql -uroot -p(输入拷贝的密码)
set password=password("123456");(修改密码)
update mysql.user set host='%' where user='root';(实现任意主机root用户的远程登录)
flush privileges;(刷新权限表)
quit;(退出,重新登录)
mysql -uroot -p(修改后的密码登录成功即可退出,mysql配置成功)


hive配置

mv /root/Downloads/mysql-connector-java-5.1.46-bin.jar /opt/hive/lib/

修改hive环境变量
vim /etc/profile
export HIVE_HOME=/opt/hive
export HIVE_CONF_DIR=$HIVE_HOME/conf
export HCAT_HOME=$HIVE_HOME/hcatalog
export PATH=$PATH:$HIVE_HOME/bin

source /etc/profile

配置hive
cd /opt/hive/conf/
cp hive-default.xml.template hive-site.xml

vim /opt/hive/conf/hive-site.xml

<name>javax.jdo.option.ConnectionPassword</name>
    <value>123456</value>
    <description>password to use against metastore database</description>

  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://BigData01:3306/hive?createDatabaseIfNotExist=true&amp;useSSL=false</value>
    <description>JDBC connect string for a JDBC metastore</description>
  </property>
(484-488)

(684为true)

<property>
	<name>javax.jdo.option.ConnectionDriverName</name>
	<value>com.mysql.jdbc.Driver</value>
	<description>Driver class name for a JDBC metastore</description>
</property>(928-932)



  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>Username to use against metastore database</description>
  </property>
(953-957)

<name>hive.exec.scratchdir</name>
<value>/opt/hive/tmp</value>
<description>Location of Hive run time structured log file</description>(1513-1514)

<name>hive.exec.local.scratchdir</name>
 <value>/opt/hive/tmp</value>

<name>hive.downloaded.resources.dir</name>
<value>/opt/hive/tmp/resources</value>

<name>hive.server2.logging.operation.log.location</name>
<value>/opt/hive/tmp/operation_logs</value>

创建hive缓存路径
mkdir /opt/hive/tmp

添加Hadoop远程登录配置文件
vim /opt/hadoopHA/etc/hadoop/core-site.xml
        <property>
                <name>hadoop.proxyuser.hadoop.hosts</name>
                <value>*</value>
        </property>
        <property>
                <name>hadoop.proxyuser.hadoop.groups</name>
                <value>*</value>
        </property>

scp -r /opt/hadoopHA/etc/hadoop/core-site.xml root@BigData02:/opt/hadoopHA/etc/hadoop/
scp -r /opt/hadoopHA/etc/hadoop/core-site.xml root@BigData03:/opt/hadoopHA/etc/hadoop/

初始化 hive 元数据
cd /opt/hive/lib/
ll
mv log4j-slf4j-impl-2.4.1.jar log4j-slf4j-impl-2.4.1.jar.bak
schematool -initSchema -dbType mysql(报错纠错查看报错原,极大可能是配置文件出错)
mysql -uroot -p
show databases;(出现hive表即配置成功)

启动hive

启动各服务,关闭防火墙
systemctl stop firewalld
stop-all.sh
start-all.sh
依次启动zkServer.sh start(检查防火墙)
01下:
start-dfs.sh
start-yarn.sh
start-hbase.sh
jps
03下:
mr-jobhistory-daemon.sh start historyserver

确保各前置服务启动成功后首次启动hive需初始化
hive --service metastore
出现WARNING!即成功

hive

4、sqoop

tar -zxvf /root/Downloads/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz -C/opt/
mv /opt/sqoop-1.4.7.bin__hadoop-2.6.0/ /opt/sqoop

vim /etc/profile
export SQOOP_HOME=/opt/sqoop
export PATH=$PATH:$SQOOP_HOME/bin
source /etc/profile

scp /opt/hive/lib/mysql-connector-java-5.1.46-bin.jar /opt/sqoop/lib/
cp sqoop-env-template.sh sqoop-env.sh


vim sqoop-env.sh
#Set path to where bin/hadoop is available
export HADOOP_COMMON_HOME=/opt/hadoopHA
#Set path to where hadoop-*-core.jar is available
export HADOOP_MAPRED_HOME=/opt/hadoopHA
#set the path to where bin/hbase is available
export HBASE_HOME=/opt/hbase-1.2.6
#Set the path to where bin/hive is available
export HIVE_HOME=/opt/hive
#Set the path for where zookeper config dir is
export ZOOCFGDIR=/opt/zookeeper

5、scala 及spark

cp /opt/spark-3.2.1/conf/spark-env.sh.template /opt/spark-3.2.1/conf/spark-env.sh
cp /opt/spark-3.2.1/conf/workers.template /opt/spark-3.2.1/conf/workers

vim /opt/spark-3.2.1/conf/spark-env.sh
 
export SCALA_HOME=/opt/scala-2.12.15
export JAVA_HOME=/opt/jdk1.8.0_171
export SPARK_MASTER_IP=BigData01
export SPARK_WOKER_CORES=2
export SPARK_WOKER_MEMORY=2g
export HADOOP_CONF_DIR=/opt/HadoopHA
#export SPARK_MASTER_WEBUI_PORT=8080
#export SPARK_MASTER_PORT=7070
 

vim /opt/spark-3.2.1/conf/workers
 
BigData02
BigData03


scp -r /opt/spark-3.2.1/ BigData02:/opt/
scp -r /opt/spark-3.2.1/ BigData03:/opt/

vim /etc/profile
 
export SPARK_HOME=/opt/spark-3.2.1
export PATH=$PATH:${SPARK_HOME}/bin
export PATH=$PATH:${SPARK_HOME}/sbin
 
 
source /etc/profile


主节点下:
cd /opt/spark-3.2.1/sbin/
 ./start-all.sh
三个节点分别:
jps

三、效果

 

 

拓展-Hadoop生态系统组件

组件简略作用
HDFS (Hadoop Distributed File System)用于存储和管理大规模数据集,提供高可靠性、可扩展性和高吞吐量的数据存储。
MapReduce分布式计算框架,用于并行处理大规模数据集,实现大数据量的计算和分析。
YARN (Yet Another Resource Negotiator)集群资源管理器,负责管理和调度集群中的计算资源,允许多租户并行运行不同的作业。
Hive基于Hadoop的数据仓库基础设施,提供类似SQL的查询语言(HiveQL),用于处理和分析结构化数据。
Pig数据流编程语言和执行环境,用于在Hadoop上进行数据转换和分析,简化大数据处理过程。
HBase分布式列存数据库,用于存储非结构化和半结构化数据,提供高可靠性、高性能的数据存储和访问能力。
ZooKeeper分布式协调服务,用于维护服务器状态信息、存储配置信息、实现命名服务和集群管理。
Spark快速、通用的大数据处理引擎,可以在内存中进行数据处理,提供高效的数据分析和计算能力。

组件简略作用
Sqoop用于在Hadoop和传统数据库之间进行高效的数据传输,可以实现数据的导入和导出操作。
Oozie工作流调度系统,用于定义和管理Hadoop作业的工作流,实现作业的自动化执行和调度。
Flume分布式、可靠和高可用的服务,用于有效地收集、聚合和移动大量日志数据。
Ambari管理工具,用于安装、配置、监控和管理Hadoop集群,提供直观的用户界面和强大的管理功能。
Tez基于Hadoop YARN的框架,用于优化执行速度,使得Hive、Pig等处理引擎能够更快地处理数据。
Flink一个流处理和批处理的开源平台,可以在Hadoop上运行,提供高效的数据处理和分析能力。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1523491.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

HTML基础:img图像标签的4个属性值详解

你好&#xff0c;我是云桃桃。今天来聊一聊图片标签。 语法 HTML <img> 标签用于在网页中插入图像&#xff0c;它是 HTML 中的一个自闭合标签。通过在网页中显示图像&#xff0c;可以丰富页面内容、传达信息和提升用户体验。 <img src"img/jay01.jpg" al…

汽车IVI中控开发入门及进阶(十三):语音识别

前言: IVI中控上的语音识别,在目前市场上也是非常显眼的一个创新,大幅改变了传统IVI的操作习惯。 语音识别Speech recognition,也称为自动语音识别(ASR)、计算机语音识别或语音到文本,是一种使程序能够将人类语音处理成书面格式的能力。 语音识别Speech recognition是计…

【JACS】:用于稳定单原子分散的催化剂架构可对吸附到 Pt 原子、氧化 Pt 簇和 TiO2上金属 Pt 簇的 CO 进行特定位点光谱和反应性测量

摘要&#xff1a;氧化物负载的贵金属纳米粒子是广泛使用的工业催化剂。由于费用和稀有性&#xff0c;开发降低贵金属纳米颗粒尺寸并稳定分散物质的合成方案至关重要。负载型原子分散的单贵金属原子代表了最有效的金属利用几何结构&#xff0c;尽管由于合成均匀且稳定的单原子分…

机器学习周记(第三十周:文献阅读-SageFormer)2024.3.11~2024.3.17

目录 摘要 ABSTRACT 1 论文信息 1.1 论文标题 1.2 论文摘要 1.3 论文背景 2 论文模型 2.1 问题描述 2.2 模型信息 2.2.1 Series-aware Global Tokens&#xff08;序列感知全局标记&#xff09; 2.2.2 Graph Structure Learning&#xff08;图结构学习&#xff09; …

【图像分割】使用Otsu 算法及迭代计算最佳全局阈值估计并实现图像分割(代码实现与分析)

本实验要求理解全局阈值分割的概念&#xff0c;并实现文本图像分割。需要大家深入理解Ostu 算法的实现过程及其迭代原理&#xff0c;同时通过学习使用Otsu 算法及其迭代&#xff0c;实践图像分割技术在文本图像处理中的应用。 以下将从实验原理、实验实现、实验结果分析三部分对…

数据结构-队列java实现

队列 队列(queue)1.队列的特点2.数组模拟队列JAVA代码3.上述过程优化 博文主要是自己学习的笔记&#xff0c;供自己以后复习使用&#xff0c; 参考的主要教程是B站的 尚硅谷数据结构和算法 队列(queue) 1.队列的特点 1&#xff09;队列是一个有序列表&#xff0c;可以用数组…

cannot find -xml2: No such file or directory的解决方法

一&#xff0c;问题现象 在编译库的时候出现如下图所示的报错&#xff1a;C:/msys64/mingw32/bin/…/lib/gcc/i686-w64-mingw32/13.2.0/…/…/…/…/i686-w64-mingw32/bin/ld.exe: ca nnot find -lxml2: No such file or directory collect2.exe: error: ld returned 1 exit s…

Linux环境下用IDEA运行Golang记录

一、背景 和存储同时开发AI项目&#xff0c;在Linux环境运行Golang项目&#xff0c;因此需要进行相关的配置。 二、Golang安装 参考&#xff1a;【Linux — 安装 Go】Linux 系统安装 Go 过程总结_linux 安装go-CSDN博客 三、IDEA中Golang配置 1、去除代理 否则在Plugins中…

奇舞周刊第522期:“Vite 又开始搞事情了!!!”

奇舞推荐 ■ ■ ■ Vite 又开始搞事情了&#xff01;&#xff01;&#xff01; Vite 的最新版本将引入一种名为 Rolldown 的新型打包工具。 unocss 究竟比 tailwindcss 快多少&#xff1f; 我们知道 unocss 很快&#xff0c;也许是目前最快的原子化 CSS 引擎 (没有之一)。 巧用…

每日五道java面试题之mybatis篇(一)

目录&#xff1a; 第一题. MyBatis是什么&#xff1f;第二题. ORM是什么?第三题. 为什么说Mybatis是半自动ORM映射工具&#xff1f;它与全自动的区别在哪里&#xff1f;第四题. 传统JDBC开发存在的问题第五题. JDBC编程有哪些不足之处&#xff0c;MyBatis是如何解决这些问题的…

差分逻辑电平 — LVDS、CML、LVPECL、HCSL互连

前言 首先了解差分逻辑电平、单端逻辑电平的基础知识 地址&#xff1a;常见的逻辑电平_常用的逻辑电平-CSDN博客 注&#xff1a; ECL >> PECL >> LVPECL演变&#xff1b; ECL速度快&#xff0c;驱动能力强&#xff0c;噪声小&#xff0c;但是功耗大&#xff0c;使…

SpringBoot(数据库操作 + druid监控功能)

文章目录 1.JDBC HikariDataSource&#xff08;SpringBoot2默认数据源&#xff09;1.数据库表设计2.引入依赖 pom.xml3.配置数据源参数 application.yml4.编写一个bean&#xff0c;映射表5.编写测试类来完成测试1.引入依赖 pom.xml2.使用JdbcTemplate进行测试3.成功&#xff0…

并发编程CountDownLatch浅析

目录 一、CountDownLatch简介二、源码三、使用3.1 demo13.2 demo2 四、应用场景五、参考链接 一、CountDownLatch简介 CountDownLatch(倒计时锁存器)是Java并发包中的一个工具类&#xff0c;用于实现多个线程之间的同步。它通过一个计数器来实现线程之间的等待和唤醒操作&…

51单片机系列-单片机定时器

&#x1f308;个人主页&#xff1a;会编辑的果子君 &#x1f4ab;个人格言:“成为自己未来的主人~” 软件延时的缺点 延时过程中&#xff0c;CPU时间被占用&#xff0c;无法进行其他任务&#xff0c;导致系统效率降低&#xff0c;延时时间越长&#xff0c;该缺点就越明显&…

esp8266调试记录

连接笔记本电脑 使用笔记本电脑的USB接口为NodeMCU开发板供电&#xff0c;你需要确保电压和电流在安全范围内。虽然NodeMCU的输入输出电压限制为3.3V&#xff0c;但是大多数开发板都内置了电压调节器&#xff0c;可以从5V的USB电源降压到3.3V。因此&#xff0c;通常情况下&…

通用的springboot web jar包执行脚本,释放端口并执行jar包

1、通用的springboot web jar包执行脚本&#xff0c;释放端口并执行jar包&#xff1a; #!/bin/bash set -eDATE$(date %Y%m%d%H%M) # 基础路径 BASE_PATH/data/yitu-projects/yitu-xzhq/sftp # 服务名称。同时约定部署服务的 jar 包名字也为它。 SERVER_NAMEyitu-server # 环境…

【图论】拓补排序 - 邻接表

文章目录 题目&#xff1a;310. 最小高度树题目描述代码与注释 题目&#xff1a;310. 最小高度树 题目描述 代码与注释 func findMinHeightTrees(n int, edges [][]int) (ans []int) {if n 1 {return []int{0}}g : make([][]int, n)degree : make([]int, n) // 记录每个节点…

Android Studio字体大小调节

外观页面字体调节 settings->Appearance->User cunstom font 代码字体调节 Settings->Editor->Font此时logcat窗口、Build窗口和Ternimal窗口字体大小也会同步调节&#xff08;2023.2.1版本上验证&#xff09;

FFmpeg查看所有支持的编码/解码器/封装/解封装/媒体格式/滤镜

查看所有支持的编码器与解码器 ffmpeg -codecs 只查看所有编码器: ffmpeg -encoders 只查看所有解码器: ffmpeg -decoders 只查看H264编码器: ffmpeg -h encoderh264 只查看H264解码器: ffmpeg -h decoderh264 查看所有支持的封装: ffmpeg -muxers 查看所有支持的解封装…

【算法】数论(求质数)——蓝桥杯笔记、2.质数、7.质数、质数数目、纯质数、函数判断顺序的优化

文章目录 蓝桥杯2.质数7.质数质数数目纯质数 蓝桥杯 2.质数 求质数的几种方法&#xff1a; #include<iostream> #include<algorithm> using namespace std;bool is_primer1(int n) {if (n < 2) return n;//for (int i 2; i < n; i)for (int i 2; i < …