网卡
在Ubuntu系统下浏览器无法上网,终端输入ifconfig查看,只能看到lo本地回环网卡,没有找到ens33网卡
解决方法
sudo dhclient ens33
sudo ifconfig ens33
创建普通用户
打开一个终端(可以使用快捷键 Ctrl+Alt+T),使用如下命令创建一个用户hadoop:
sudo useradd -m hadoop -s /bin/bash
使用如下命令为hadoop用户设置密码:
sudo passwd hadoop
为hadoop用户增加管理员权限:
sudo adduser hadoop sudo
更新APT
APT是一个非常优秀的软件管理工具,Linux系统采用APT来安装和管理各种软件。安装成功Linux系统以后,需要及时更新APT软件,否则,后续一些软件可能无法正常安装。请登录Linux系统,打开一个终端(可以使用快捷键Ctrl+Alt+T),进入Shell命令提示符状态,然后输入下面命令:
sudo apt-get update
vim编辑器安装
sudo apt-get install vim
键盘敲击输入一个英文字母i,进入编辑状态以后才能修改内容。修改后,需要按键盘上的Esc键退出vim的编辑状态,之后有以下几种选择:
1、从键盘输入“:wq”三个英文字母,然后回车,表示保存文件并退出。
2、从键盘输入“:q”两个英文字母,然后回车,表示不保存并退出。
3、从键盘输入“:q!”三个英文字母,然后回车,表示不保存并强制退出。
Eclipse安装
到Eclipse官网(https://www.eclipse.org/downloads/)下载安装包,假设安装文件下载后保存在了Linux系统的目录“~/Downloads”下,下面执行如下命令对文件进行解压缩:
cd ~/Downloads
sudo tar -zxvf ./eclipse-4.7.0-linux.gtk.x86_64.tar.gz -C /usr/local
然后,执行如下命令启动Eclipse:
cd /usr/local/eclipse
./eclipse
hadoop的安装和使用
安装SSH
SSH是Secure Shell的缩写,它是建立在应用层基础上的安全协议,专为远程登录会话和其他网络服务提供安全性。利用SSH协议可以有效防止远程管理过程中的信息泄露问题。需要在Ubuntu上安装SSH服务端,才能让FTP软件通过SFTP(SSH File Transfer Protocol)方式连接Ubuntu系统。Ubuntu 默认已安装了 SSH客户端,因此,还需要安装 SSH服务端,安装方法是,在Ubuntu系统中打开一个命令行终端,执行如下命令:
sudo apt-get install openssh-server
安装后,可以使用如下命令登录本机:
ssh localhost
执行该命令后会出现提示信息(SSH首次登录提示),输入“yes”,然后按提示输入密码hadoop,就登录到本机了。
首先,请输入命令“exit”退出刚才的SSH,就回到了原先的终端窗口;然后,可以利用ssh-keygen生成密钥,并将密钥加入到授权中,命令如下:
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
chmod 0600 ~/.ssh/authorized_keys
此时,再执行ssh localhost命令,无需输入密码就可以直接登录了
安装JAVA
执行如下命令创建“/usr/lib/jvm”目录用来存放JDK文件:
cd /usr/lib
sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件
执行如下命令对安装文件进行解压缩:
cd ~ #进入hadoop用户的主目录
cd Downloads
sudo tar -zxvf ./jdk-21——linux-x64_bin.tar.gz -C /usr/lib/jvm
下面继续执行如下命令,设置环境变量:
vim ~/.bashrc
上面命令使用vim编辑器打开了hadoop这个用户的环境变量配置文件,请在这个文件的开头位置,添加如下几行内容:
export JAVA_HOME=/usr/lib/jvm/jdk-21.0.2
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存.bashrc文件并退出vim编辑器。然后,继续执行如下命令让.bashrc文件的配置立即生效:
source ~/.bashrc
这时,可以使用如下命令查看是否安装成功:
java -version
安装Hadoop
Hadoop包括三种安装模式:
•单机模式:只在一台机器上运行,存储是采用本地文件系统,没有采用分布式文件系统HDFS;
•伪分布式模式:存储采用分布式文件系统HDFS,但是,HDFS的名称节点和数据节点都在同一台机器上;
•分布式模式:存储采用分布式文件系统HDFS,而且,HDFS的名称节点和数据节点位于不同机器上。
本教程采用的Hadoop版本是3.1.3,可以到Hadoop官网下载安装文件(http://mirrors.cnnic.cn/apache/hadoop/common/)
请使用hadoop用户登录Linux系统,打开一个终端,执行如下命令:
sudo tar -zxf ~/下载/hadoop-3.3.6.tar.gz -C /usr/local # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-3.3.6/ ./hadoop # 将文件夹名改为hadoop
sudo chown -R hadoop ./hadoop # 修改文件权限
Hadoop解压后即可使用,可以输入如下命令来检查 Hadoop是否可用,成功则会显示 Hadoop版本信息:
cd /usr/local/hadoop
./bin/hadoop version
Hadoop默认模式为非分布式模式(本地模式),无需进行其他配置即可运行。Hadoop附带了丰富的例子,运行如下命令可以查看所有例子:
cd /usr/local/hadoop
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar
这里选择运行grep例子
cd /usr/local/hadoop
mkdir input
cp ./etc/hadoop/*.xml ./input # 将配置文件复制到input目录下
./bin/hadoop jar ./share/hadoop/mapreduce/hadoop-mapreduce-examples-*.jar grep ./input ./output 'dfs[a-z.]+'
cat ./output/* # 查看运行结果
Hadoop文件配置
配置/usr/local/hadoop/etc/hadoop/hdfs-site.xml文件,命令如下:
<configuration>
<property>
<name>dfs.reolication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
配置/usr/local/hadoop/etc/hadoop/core-site.xml文件,命令如下:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
</configuration>
/usr/local/hadoop/sbin/start-dfs.sh和stop-dfs.sh文件:
HDFS_DATANODE_USER=root
HDFS_DATANODE_SECURE_USER=hdfs
HDFS_NAMENODE_USER=root
HDFS_SECONDARYNAMENODE_USER=root
/usr/local/hadoop/sbin/start-yarn.sh和stop-yarn.sh文件:
YARN_RESOURCEMANAGER_USER=root
YARN_DATANODE_SECURE_USER=yarn
YARN_NODEMANAGER_USER=root
配置/usr/local/hadoop/etc/hadoop/hadoop-env.sh文件,命令如下
export JAVA_HOME=/usr/lib/jvm/jdk-21.0.2
export HADOOP_HOME=/usr/local/hadoop
配置/usr/local/hadoop/etc/hadoop/mapred-site.xml文件,命令如下:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置yarn-site.xml文件,命令如下:
<configuration>
<property>
<name>yarn.nodemanager.aus-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
最后执行命令进行格式化:
hadoop namenode -format
环境变量配置
输出命令:
vim /etc/profile
然后进行如下配置:
export JAVA_HOME=/usr/lib/jvm/jdk-21.0.2
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_INSTALL=$HADOOP_HOME
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export HADOOP_YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export HADOOP_OPTS="-Djava.library.path=$HADOOP_HOME/lib:$HADOOP_COMMON_LIB_NATIVE_DIR"
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
然后输入命令使配置生效:
source /etc/profile
最后到Hadoop的sbin目录下,执行start-all.sh即可(执行这个则一次将其他sh一起启动了):
./start-all.sh
然后执行以下jps,查看是不是都启动了:
jps
安装Hbase
解压安装包hbase-2.4.14-bin.tar.gz至路径 /usr/local,命令如下:
sudo tar -zxf ~/Downloads/hbase-2.5.8-bin.tar.gz -C /usr/local
将解压的文件名hbase-2.5.8-bin.tar.gz改为hbase,以方便使用,命令如下:
sudo mv /usr/local/hbase-2.5.8 /usr/local/hbase
将hbase下的bin目录添加到path中,这样,启动hbase就无需到/usr/local/hbase目录下,大大的方便了hbase的使用。
编辑 ~/.bashrc 文件
sudo vi ~/.bashrc
在"export PATH=$PATH:..."后添加
:/usr/local/hbase/bin
编辑完成后,再执行source
命令使上述配置在当前终端立即生效,命令如下:
source ~/.bashrc
添加HBase权限
cd /usr/local
sudo chown -R hadoop ./hbase #将hbase下的所有文件的所有者改为hadoop,hadoop是当前用户的用户名。
查看HBase版本,判断是否安装成功
/usr/local/hbase/bin/hbase version
HBase有三种运行模式,单机模式、伪分布式模式、分布式模式。以下先决条件很重要,如果没有配置好,就会报错:
jdk
Hadoop(伪分布式模式需要)
SSH
配置hbase-env.sh
vim /usr/local/hbase/conf/hbase-env.sh
配置JAVA_HOME,HBASE_CLASSPATH,HBASE_MANAGES_ZK。
export JAVA_HOME=/usr/lib/jvm/jdk-21.0.2
export HBASE_CLASSPATH=/usr/local/hbase/conf
export HBASE_MANAGES_ZK=true
配置hbase-site.xml。用vim打开并编辑hbase-site.xml,命令如下:
vim /usr/local/hbase/conf/hbase-site.xml
修改hbase.rootdir,指定HBase数据在HDFS上的存储路径;
将属性hbase.cluter.distributed设置为true;
假设当前Hadoop集群运行在伪分布式模式下,在本机上运行,且NameNode运行在9000端口。
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://localhost:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
</configuration>
hbase.rootdir指定HBase的存储目录;hbase.cluster.distributed设置集群处于分布式模式。
测试运行HBase
第一步:首先登陆ssh,之前设置了无密码登陆,因此这里不需要密码;
第二步:再切换目录至/usr/local/hadoop
;
第三步:启动hadoop(如果已经启动hadoop请跳过此步骤)。
ssh localhost
cd /usr/local/hadoop
./sbin/start-dfs.sh
输入命令jps,能看到NameNode,DataNode和SecondaryNameNode都已经成功启动,表示hadoop启动成功,如下:
xxxx DataNode
xxxx NameNode
xxxx SecondaryNameNode
xxxx Jps
切换目录至/usr/local/hbase
,启动HBase:
cd /usr/local/hbase
bin/start-hbase.sh
启动成功,输入命令jps,看到以下界面说明Hbase启动成功:
xxxx SecondaryNameNode
xxxx HMaster
xxxx NameNode
xxxx DataNode
xxxx Jps
xxxx HRegionServe
xxxx HQuorumPeer
进入Shell界面:
hbase shell
停止HBase运行:
stop-hbase.sh
安装MySQL服务端和客户端
相关命令:
sudo apt-get install mysql-server
sudo apt-get install mysql-client
修改mysql的配置文件
在终端中输入
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
修改mysql的配置文件,在内容[mysqld]之后,任意新建一行,添加文本并保存
skip-grant-tables
mysql登录操作
重启mysql服务:
service mysql restart
mysql -u root -p
无需输入密码,直接回车,即可登录
mysql修改登录密码操作
先切换到名为mysql的数据库
use mysql
更新user表中的root用户的密码,本例设置密码为123
update user set authentication_string='123' where user = 'root';
flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123';
退出mysql终端:
quit
恢复前面所修改的mysql配置文件
删除或注释掉所添加skip-grant-tables,并保存
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
mysql -u root -p
密码为前面设置的密码123
下载MySQL JDBC驱动程序
为了让Hive能够连接到MySQL数据库,需要下载MySQL JDBC驱动程序。可以到MySQL官网(http://www.mysql.com/downloads/connector/j/)下载mysql-connector-j-8.3.0.tar.gz。
在Linux系统中打开一个终端,在终端中执行如下命令解压缩文件:
cd ~
tar -zxvf mysql-connector-j-8.3.0.tar.gz #解压
#下面将mysql-connector-j-8.3.0-bin.jar拷贝到/usr/local/hive/lib目录下
sudo cp mysql-connector-j-8.3.0/mysql-connector-j-8.3.0-bin.jar /usr/local/hive/lib
Hive的安装部署
将Hive的安装文件“apache-hive-3.1.2-bin.tar.gz”复制到当前用户目录中
在终端中输入
sudo tar -zxvf apache-hive-3.1.2-bin.tar.gz -C /usr/local
对解压缩输出文件夹进行重命名为Hive,并授予当前用户访问权限
cd /usr/local/
sudo mv apache-hive-3.1.2-bin hive
sudo chown -R hadoop hive
将安装的驱动程序文件夹中的JAR文件“mysql-connector-j-8.3.0.jar”复制到Hive安装目录的lib文件夹中
编辑用户的环境变量配置文件
sudo vim ~/.bashrc
在文件的开头位置,添加如下几行内容:
export HIVE_HOME=/usr/local/hive
export HADOOP_HOME=/usr/local/hadoop
export PATH=PATH:HIVE_HOME/bin
让环境变量设置生效
source ~/.bashrc
将“/usr/local/hive/conf”目录下的hive-default.xml.template文件重命名为hive-default.xml,命令如下:
cd /usr/local/hive/conf
sudo mv hive-default.xml.template hive-default.xml
使用vim编辑器新建一个文件hive-site.xml,命令如下:
cd /usr/local/hive/conf
vim hive-site.xml
在hive-site.xml中输入如下配置信息:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>
<description>JDBC connect string for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.cj.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>username to use against metastore database</description>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>hive</value>
<description>password to use against metastore database</description>
</property>
</configuration>
Hive访问MySQL的用户名设置为hive 密码被设置为hive
查看目录“/usr/local/Hadoop/share/Hadoop/common/lib”目录下guava.jar的版本
查看目录“/usr/local/hive/lib”目录下guava.jar的版本
检查hadoop和hive的guava.jar的版本是否一致
如果不一致,则启动hive会出错。
解决方法:删除低版本guava.jar,用高版本的guava.jar代替
如:hadoop 3.1.3的guava为guava-27.0-jre,hive3.1.2的guava为guava-19.0。
Hive连接MySQL的配置
启动MySQL
在MySQL中为Hive新建数据库
配置MySQL允许Hive接入
相关命令:
CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
GRANT ALL ON *.* TO 'hive'@'localhost';
flush privileges;
启动Hive
启动Hive之前,需要先启动Hadoop集群 伪分布式
start-dfs.sh
再执行如下命令初始化
cd /usr/local/hive
bin/schematool -dbType mysql -initSchema
hive
命令启动Hive
MySQL命令
启动MySQL服务
在终端输入:
service mysql start
查看MySQL版本
在MySQL命令行输入:
status;
删除用户
DROP USER <用户1> [ , <用户2> ]...
注意:
- DROP USER语句可用于删除一个或多个用户,并撤销其权限
- 使用DROP USER语句必须拥有MySQL数据库的DELETE权限或全局CREATE USER权限
- 在DROP USER语句的使用中,若没有明确地给出账户的主机名,则该主机名默认为"%"