Hadoop3.2.2、Hbase2.4.2、Hive3.1.2、MySQL8.0.24、Spark3.1.1、Scala2.13.5
(即使可以,也不推荐使用apt安装,因为版本会报错,所有我下面均使用压缩包来安装)
Hadoop3.2.2下载 bfsu这个镜像下载最快
Hbase2.4.2下载
Hive3.1.2下载选择bin.tar.gz
Spark下载地址记得第2栏选择Hadoop版本,本教程是3.2
Scala2.13.5下载地址 进去官网后拉到最底部,选择第一个
MySQL下载地址
这里一定要选择这个Linux Generic
下载前面这两个,64位和32位根据自己电脑情况来选
我用的是Deepin20(Debian10 Buster库)好看吧, 还有“QQ2008”
首先在终端输入sudo apt-get update来更新一下apt的包列表(apt代表赋予管理员权限,建议每句命令都加上)
输入sudo apt-get install openssh-server回车,再输入sudo apt-get install openssh-client回车(Deepin可能已经预装了ssh,不过再输入一下确认一下也没什么)
Ubuntu安装是如下界面
Deepin已经安装过是如下界面
配置ssh无密码自动登录(很重要)
$ ssh localhost #登陆SSH,第一次登陆输入yes
$ exit #退出登录的ssh localhost
$ cd ~/.ssh/ #如果没法进入该目录,执行一次ssh localhost
$ ssh-keygen -t rsa
输入完$ ssh-keygen -t rsa 语句后,需要连续敲击三次回车
$ cat ./id_rsa.pub >> ./authorized_keys #加入授权
$ ssh localhost #此时已不需密码即可登录localhost,并可见下图的Welcome
输入apt-cache search openjdk ,这是查看可以安装的Java版本有哪些,查询结果显示如下,我们可以看到,又openjdk-8-jdk
接着,我们输入sudo apt-get install openjdk-8-jdk 回车,等待下载就安装成功了
$ sudo apt-get install openjdk-8-jdk
无论是Deepin还是Ubuntu,apt安装的Java都存在系统盘的usr/lib.jvm里
最后配置Java的环境变量
我们在终端中输入vim ~/.bashrc ,会进入一个文档,也许会出现这个页面,按一下键盘上的E就能进入文档了
$ vim ~/.bashrc
进入文档后是这样的
我这边配置了本教程所有的环境变量,大家之间粘贴进去,后面就不用再配置了
注意!!!vim的操作和普通文本编辑器不同!!!
vim进去以后,先按一下键盘上的A,进入编辑模式,然后再右键,点粘贴,或者是CTRL+SHIFT+V粘贴,粘贴上去以后,按一下键盘上的“ESC”键,然后按“SHIFT+ZZ”就保存并退出到终端了
export JAVA_HOME=/usr/lib/jvm/jdk8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:${HADOOP_HOME}/bin:$HIVE_HOME/bin:$CALSSPATH
export SCALA_HOME=/usr/local/scala
export SPARK_HOME=/usr/local/spark
export HADOOP_HOME=/usr/local/hadoop
export HIVE_HOME=/usr/local/hive
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$HBASE_HOME/bin:${JAVA_HOME}/bin:$JRE_HOME/bin:$HIVE_HOME/bin:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin
然后输入source ~/.bashrc,这个意思是使配置的环境变量立即生效
检查Java版本,安装并配置成功
我们把下载好的Hadoop安装包放在“下载”文件夹里,Deepin下载的默认路径就是这个
在这个目录下右键选择“在终端中打开”
在打开的终端中输入sudo tar -zxvf hadoop-3.2.2.tar -C /usr/local
将下载的Hadoop压缩包解压到usr/local/hadoop-3.2.2文件夹下,hadoop-3.2.2.tar.gz是下载的文件名
sudo tar -zxvf hadoop-3.2.2.tar.gz -C /usr/local
然后将hadoop-3.2.2重命名为hadoop,依次执行下列命令
$ cd /usr/local
$ sudo mv ./hadoop-3.2.2 ./hadoop
查看文件夹,已经命名为hadoop
你们的hadoop文件夹上肯定会带有一个黄色的锁,还需要赋予hadoop文件夹权限,避免以后出现问题,接着执行下列命令,就消失了,以后安装Hbase、Hive等,也是执行下列命令赋予权限,把文件夹名修改一下就行
$ sudo chmod 777 -R hadoop
伪分布需要配置三个文件
1、/hadoop/etc/hadoop路径下的hadoop-env.sh,右键打开方式选文本编辑器,添加下面代码进去
export HADOOP_OS_TYPE=${
HADOOP_OS_TYPE:-$(uname -s)}
export JAVA_HOME=/usr/lib/jvm/jdk8
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export HADOOP_SSH_OPTS="-p 22"
export HADOOP_CLASSPATH=.:$CLASSPATH:$HADOOP_CLASSPATH:$HADOOP_HOME/bin
2、/hadoop/etc/hadoop路径下的core-site.xml,添加下面代码进去
<configuration>
<property>
<name>fs.default.namename>
<value>hdfs://localhost:9000value>
<description>HDFS的URI,文件系统://namenode标识:端口号description>
property>
<property>
<name>hadoop.tmp.dirname>
<value>file:/usr/local/hadoop/tmpvalue>
<description>namenode上本地的hadoop临时文件夹description>
property>
<property>
<name>dfs.permissions.enabledname>
<value>falsevalue>
property>
<property>
<name>hadoop.proxyuser.root.hostsname>
<value>*value>
property>
<property>
<name>hadoop.proxyuser.root.groupsname>
<value>*value>
property>
configuration>
3、/hadoop/etc/hadoop路径下的hdfs-site.xml,添加下面代码进去
<configuration>
<property>
<name>dfs.namenode.name.dirname>
<value>file:/usr/local/hadoop/tmp/dfs/namevalue>
<description>namenode上存储hdfs名字空间元数据 description>
property>
<property>
<name>dfs.datanode.data.dirname>
<value>file:/usr/local/hadoop/tmp/dfs/datavalue>
<description>datanode上数据块的物理存储位置description>
property>
<property>
<name>dfs.checkpoint.dirname>
<value>file:/usr/local/hadoop/tmp/dfs/snnvalue>
<description>secondary namenode 的位置description>
property>
<property>
<name>dfs.checkpoint.edits.dirname>
<value>file:/usr/local/hadoop/tmp/dfs/snnvalue>
<description>secondary namenode 的位置description>
property>
<property>
<name>dfs.replicationname>
<value>1value>
<description>副本个数,配置默认是3,应小于datanode机器数量description>
property>
configuration>
Hadoop 的运行方式是由配置文件决定的,因此如果需要从伪分布式模式切换回非分布式模式,需要删除 core-site.xml 中的配置项。此外,伪分布式虽然只需要配置 fs.defaultFS 和 dfs.replication 就可以运行(参考官方教程),不过若没有配置 hadoop.tmp.dir 参数,则默认使用的临时目录为 /tmp/hadoo-hadoop,而这个目录在重启时有可能被系统清理掉,导致必须重新执行 format 才行。所以我们进行了设置,同时也指定 dfs.namenode.name.dir 和 dfs.datanode.data.dir,否则在接下来的步骤中可能会出错。
配置完之后,执行根节点的格式化,在hadoop文件夹下右键,“在终端中打开”
输入bin/hdfs namenode -format
格式化根节点只在第一次配置完之后执行一次,切勿多次手动格式化,如果多次手动格式化导致DataNode或NameNode无法启动,请关闭Hadoop服务,删除hadoop文件夹下的这三个文件夹后,重新格式化根节点
我们已经配置好环境变量,所以可以在终端中直接输入start-dfs.sh来启动Hadoop的服务
注意!!!!今后启动不再使用start-dfs.sh命令,因为这个命令没有启动所有的Hadoop服务,以后做项目或者配置其他环境会报错,记住,以后启动Hadoop使用start-all.sh这个命令
打开浏览器,输入localhost:9870(Hadoop3的默认端口)
关闭Hadoop服务的命令是stop-dfs.sh
参考解压hadoop进行解压
重命名文件夹
赋予权限
本教程安装的所有的环境都解压在/usr/local里,后面不在赘述解压过程
将下面代码复制到Hbase文件夹里的conf文件夹里的hbase-site.xml文件中
<configuration>
<property>
<name>hbase.rootdirname>
<value>hdfs://localhost:9000/hbasevalue>
property>
<property>
<name>hbase.cluster.distributedname>
<value>truevalue>
property>
<property>
<name>hbase.zookeeper.quorumname>
<value>localhostvalue>
property>
<property>
<name>dfs.replicationname>
<value>1value>
property>
<property>
<name>hbase.unsafe.stream.capability.enforcename>
<value>falsevalue>
property>
<property>
<name>hbase.zookeeper.property.clientPortname>
<value>2182value>
property>
<property>
<name>hbase.master.info.portname>
<value>60010value>
property>
configuration>
将下面代码复制到Hbase文件夹里的conf文件夹里的hbase-env.sh文件中
export JAVA_HOME=/usr/lib/jvm/jdk8
export HBASE_MANAGES_ZK=true
export HBASE_CLASSPATH=/usr/local/hbase/conf
export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP="true"
然后就可以启动Hbase了,注意,启动Hbase之前先启动Hadoop,关闭Hbase的命令是stop-hbase.sh
可以localhost:60010访问Hbase页面
输入hbase shell可以打开hbase shell
建个表
查看表属性
添加一个学生信息
查看学生信息
退出shell输入exit回车
解压过程不赘述,请看安装Haoop板块介绍的方法
修改Hive/conf文件夹下的hive-site.xml,如果没有就在该文件夹下右键,“在终端中打开”,使用下面命令新建一个hive-site.xml
$ sudo gedit hive-site.xml
或者直接右键,新建文本文档,后缀修改为xml
在hive-site.xml中这样写,此配置为MySQL8.0.24的配置,如果版本低于8,则不是这样配置
<configuration>
<property>
<name>javax.jdo.option.ConnectionURLname>
<value>jdbc:mysql://localhost:3306/metastore?createDatabaseIfNotExist=truevalue>
<description>JDBC connect string for a JDBC metastoredescription>
property>
<property>
<name>javax.jdo.option.ConnectionDriverNamename>
<value>com.mysql.cj.jdbc.Drivervalue>
<description>Driver class name for a JDBC metastoredescription>
property>
<property>
<name>javax.jdo.option.ConnectionUserNamename>
<value>hivevalue>
<description>username to use against metastore databasedescription>
property>
<property>
<name>javax.jdo.option.ConnectionPasswordname>
<value>hivevalue>
<description>password to use against metastore databasedescription>
property>
<property>
<name>hive.metastore.warehouse.dirname>
<value>/usr/local/hive/warehousevalue>
property>
<property>
<name>hive.exec.scratchdirname>
<value>/usr/local/hive/tmpvalue>
property>
<property>
<name>hive.querylog.locationname>
<value>/usr/local/hive/logvalue>
property>
<property>
<name>hive.metastore.urisname>
<value>thrift://linux100:9083value>
property>
<property>
<name>hive.server2.thrift.portname>
<value>10000value>
property>
<property>
<name>hive.server2.thrift.bind.hostname>
<value>0.0.0.0value>
property>
<property>
<name>hive.server2.webui.hostname>
<value>0.0.0.0value>
property>
<property>
<name>hive.server2.webui.portname>
<value>10002value>
property>
<property>
<name>hive.server2.long.polling.timeoutname>
<value>5000value>
property>
<property>
<name>hive.server2.enable.doAsname>
<value>truevalue>
property>
<property>
<name>datanucleus.autoCreateSchemaname>
<value>falsevalue>
property>
<property>
<name>datanucleus.fixedDatastorename>
<value>truevalue>
property>
<property>
<name>hive.execution.enginename>
<value>mrvalue>
property>
<property>
<name>hive.cli.print.headername>
<value>truevalue>
property>
<property>
<name>hive.cli.print.current.dbname>
<value>truevalue>
property>
configuration>
修改hive/conf文件夹下的hive-env.sh,添加下面语句
export HADOOP_HOME=/usr/local/hadoop/
export HIVE_CONF_DIR=/usr/local/hive/conf/
export HIVE_AUX_JARS_PATH=/usr/local/hive/lib
MySQL可以使用apt安装,Deepin默认的MySQL就是最新版,Ubuntu我不知道是不是,可以使用下面命令看一下版本
然后使用下面命令安装MySQL
sudo apt-get install mysql-server
安装完成后查看MySQL版本
接下来还要安装一个mysql-connector-java
下载地址
Deepin和UOS选Debian,Ubuntu选Ubuntu
下载完成后,文件是deb格式,直接双击点击安装就行了,我的因为安装过了,只有更新可以点
在终端输入以下命令启动MySQL服务
sudo systemctl start mysql
执行sudo mysql_secure_installation
sudo mysql_secure_installation
为MySQL设置密码(一定要设置,而且密码不能为空,不然后面报错)
然后下面会让你输入很多Y/N,全部输入Y回车
完成所有设置后,以root用户登录MySQL。 在终端中,键入以下命令:mysql -u root -p,输入 root用户的密码,然后按Enter ,登陆进MySQL
新建hive数据库,别忘了加分号
然后依次输入下面语句,意思是将所有数据库的所有表的所有权限赋给hive用户,后面的hive是配置hive-site.xml中配置的连接密码
CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
GRANT ALL ON *.* TO 'hive'@'localhost';
然后输入下面语句
flush privileges; #刷新mysql系统权限关系表
启动Hive之前,先运行start-all.sh启动Hadoop集群,然后输入hive启动
如果输入hive以后出现下面报错
则输入hdfs dfsadmin -safemode leave关闭安全模式,再运行hive即可
启动成功,输入exitl;可退出hive shell
解压不再赘述,请看安装Haoop板块介绍的方法,安装好查看版本
配置spark/conf文件夹下的spark-env.sh
在最后一行下面添加
export JAVA_HOME=/usr/lib/jvm/jdk8
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
export SCALA_HOME=/usr/local/scala
export SPARK_HOME=/usr/local/spark
export SPARK_MASTER_IP=127.0.0.1
export SPARK_MASTER_PORT=7077
export SPARK_MASTER_WEBUI_PORT=8099
export SPARK_WORKER_CORES=3
export SPARK_WORKER_INSTANCES=1
export SPARK_WORKER_MEMORY=5G
export SPARK_WORKER_WEBUI_PORT=8081
export SPARK_EXECUTOR_CORES=1
export SPARK_EXECUTOR_MEMORY=1G
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$HADOOP_HOME/lib/native
配置spark/conf文件夹下的worker,就在最后一行下面加上一个localhost即可(Spark基于hadoop3.2版本的配置文件从slaves变成了worker,旧版本为slaves)
启动Spark之前,同样要先保证Hadoop集群已经启动
启动Spark使用start-master.sh和start-slaves.sh
然后输入jps,查看,多出了Master和Worker
4.10:好了这篇文章到这就暂时结束了,Linux傻逼,这系统气到我了,虽然早就配好了,但是等我心情好了再写吧
4.29:心情不错,正在更新
4.29:一口气写完
后续会写一个WordCount实例的教程