deepin 安装 hive
- 安装 hadoop
- 安装 mysql
- 安装 hive
准备
HDFS设置
- vim $HADOOP_HOME/etc/hadoop/core-site.xml
复制代码- <!--配置所有节点的lhz用户都可作为代理用户-->
- <property>
- <name>hadoop.proxyuser.lhz.hosts</name>
- <value>*</value>
- </property>
- <!--配置lhz用户能够代理的用户组为任意组-->
- <property>
- <name>hadoop.proxyuser.lhz.groups</name>
- <value>*</value>
- </property>
- <!--配置lhz用户能够代理的用户为任意用户-->
- <property>
- <name>hadoop.proxyuser.lhz.users</name>
- <value>*</value>
- </property>
复制代码 启动Hadoop
- # 启动hadoop
- start-hadoop.sh
- # 检查hadoop进程
- jps
- # 检查各端口
- netstat -aplnt | grep java
复制代码 安装MySQL
创建MySQL用户和用户组
- sudo useradd -r -g mysql -s /bin/false mysql
复制代码 下载MySQL安装包
- wget https://cdn.mysql.com//Downloads/MySQL-9.1/mysql-9.1.0-linux-glibc2.28-x86_64.tar.xz
复制代码 解压缩MySQL安装包
- sudo tar -xvf mysql-9.1.0-linux-glibc2.28-x86_64.tar.xz
复制代码 移动安装包到指定目录
- sudo mv mysql-9.1.0-linux-glibc2.28-x86_64 /usr/local/mysql
复制代码 创建链接符号目录
- sudo mkdir /usr/local/mysql/mysql-files
复制代码 修改目录所属
- sudo chown -R mysql:mysql /usr/local/mysql
复制代码 链接符号目录授权
- sudo chmod 750 /usr/local/mysql/mysql-files
复制代码 设置环境变量
暂时环境变量
- export PATH=$PATH:/usr/local/mysql/bin
复制代码 永久环境变量
末尾追加以下内容
- export PATH=$PATH:/usr/local/mysql/bin
复制代码 初始化数据库
- sudo /usr/local/mysql/bin/mysqld --initialize --user=mysql
复制代码 留意:MySQL初始密码会打印在控制台上
比方:[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: .mT/UTw%<5&=
启动MySQL
- sudo /usr/local/mysql/bin/mysqld_safe --user=mysql &
复制代码 修改MySQL root用户密码和授权可访问主机
打开新的控制台实行以下命令
- sudo /usr/local/mysql/bin/mysql -uroot -p
复制代码 根据提示输入之前打印在控制台上的MySQL初始密码
留意:第一次输入可能是利用系统用户密码
修改 root 用户密码为 lihaozhe
- alter user 'root'@'localhost' IDENTIFIED BY 'lihaozhe';
- flush privileges;
复制代码 授权任意主机皆可访问
- update mysql.user set host = '%' where user = 'root';
- flush privileges;
复制代码 退出MySQL
设置MySQL服务
在新的控制台实行以下命令
- sudo cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql.server
复制代码 控制 MySQL 可以利用 以下命令
sudo systemctl start mysql
sudo systemctl stop mysql
sudo systemctl restart mysql
sudo systemctl reloead mysql
大概
sudo service mysql.server start
sudo service mysql.server stop
sudo service mysql.server restart
sudo service mysql.server reloead
测试
重启利用系统
手动开启MySQL服务
- sudo systemctl start mysql
复制代码 大概
- sudo service mysql.server start
复制代码 登录MySQL
利用自界说密码登录
安装hive
- # 将软件上传到 /home/lhz/opt 目录
- wget https://dlcdn.apache.org/hive
- /hive
- -4.0.1/apache-hive
- -4.0.1-bin.tar.gz
- # 解压hive
- tar -zxvf apache-hive
- -4.0.1-bin.tar.gz
- # 目录改名
- mv apache-hive
- -4.0.1-bin hive
- -4
- # 进入配置文件目录
- cd /home/lhz/opt/hive
- -4/conf
- # 编辑环境配置文件
- vim hive
- -env.sh
- # 编辑配置文件
- vim hive
- -site.xml
复制代码 hive
-env.sh
hadoop 安装路径 export HADOOP_HOME=/home/lhz/opt/hadoop-3/
hive
设置文件路径 export HIVE_CONF_DIR=/home/lhz/opt/hive
-4/conf/****
- export HADOOP_HOME=/home/lhz/opt/hadoop-3/
- export HIVE_CONF_DIR=/home/lhz/opt/hive
- -4/conf/
复制代码 hive
-site.xml
必要修改的位置提炼如下:
留意:上面设置文件中的路径在 vi 编辑器下 全局替换 本案例已经替换过了无需实行
- :%s@\${system:java.io.tmpdir}@/tmp/hive
- -log@g
复制代码 不要利用图形化 不然每次生存后3215行都会有个  特殊字符 如果产生删除即可 详细报错信息 后面有单独的形貌
设置环境变量
- export HIVE_HOME=/home/lhz/opt/hive
- -4
- export HCATALOG_HOME=/home/lhz/opt/hive
- -4/hcatalog
- export PATH=$PATH:$HIVE_HOME/bin:$HCATALOG_HOME/bin:$HCATALOG_HOME/sbin
复制代码 完备
- export JAVA_HOME=/home/lhz/opt/jdk-8
- export M2_HOME=/home/lhz/opt/maven
- export HDFS_NAMENODE_USER=lhz
- export HDFS_SECONDARYNAMENODE_USER=lhz
- export HDFS_DATANODE_USER=lhz
- export HDFS_ZKFC_USER=lhz
- export HDFS_JOURNALNODE_USER=lhz
- export HADOOP_SHELL_EXECNAME=lhz
- export YARN_RESOURCEMANAGER_USER=lhz
- export YARN_NODEMANAGER_USER=lhz
- export HADOOP_HOME=/home/lhz/opt/hadoop-3
- export HADOOP_INSTALL=$HADOOP_HOME
- export HADOOP_MAPRED_HOME=$HADOOP_HOME
- export HADOOP_COMMON_HOME=$HADOOP_HOME
- export HADOOP_HDFS_HOME=$HADOOP_HOME
- export YARN_HOME=$HADOOP_HOME
- export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
- export JAVA_LIBRARY_PATH=$HADOOP_HOME/lib/native
- export HIVE_HOME=/home/lhz/opt/hive
- -4
- export HCATALOG_HOME=/home/lhz/opt/hive
- -4/hcatalog
- export SCALA_HOME=/home/lhz/opt/scala-2
- export SPARK_HOME=/home/lhz/opt/spark-3
- export PATH=$PATH:$JAVA_HOME/bin:$M2_HOME/bin:$SCALA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$HIVE_HOME/bin:$HCATALOG_HOME/bin:$HCATALOG_HOME/sbin
复制代码 上传 MySQL 连接驱动 jar 包到 hive
安装目录的lib目录下:
删除原有的 protobuf-java-3.24.4.jar 文件
上传 jar 包有两个 分别为:
- mysql-connector-j-9.1.0.jar
- protobuf-java-4.28.3.jar
- rm -f $HIVE_HOME/lib
- /protobuf-java-3.24.4.jar
复制代码 guava版本冲突
删除 hive
/lib目录中的 guava-22.0.jar
拷贝hadoop/share/hadoop/common/lib目录中的 guava-27.0-jre.jar 到 hive
/lib 目录
- rm -f $HIVE_HOME/lib
- /guava-22.0.jarcp -v $HADOOP_HOME/share/hadoop/common/lib/guava-27.0-jre.jar $HIVE_HOME/lib
复制代码 初始化hive
的元数据库
留意:初始初始元数据库之前 包管 hadoop 和 mysql 正常启动
推荐现在mysql 手动创建 hive
元数据库
- create database hive
- default character set utf8;
复制代码 Linux控制台实行以下命令初始化 hive
元数据库
- schematool -initSchema -dbType mysql -verbose
复制代码 中文乱码
- alter table COLUMNS_V2 modify column COMMENT varchar(256) character set utf8;
- alter table TABLE_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
- alter table PARTITION_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
- alter table PARTITION_KEYS modify column PKEY_COMMENT varchar(4000) character set utf8;
- alter table INDEX_PARAMS modify column PARAM_VALUE varchar(4000) character set utf8;
- flush privileges;
复制代码 远程模式
- hive
- --service metastore
- hive
- --service hive
- server2
- # hive
- --service hive
- server2 与 hive
- server2 start 作用相同
- # 启动服务端 后台运行
- hive
- --service metastore &
- hive
- --service hive
- server2 &
- # 启动服务端 后台运行
- nohup hive
- --service metastore > /dev/null 2>&1 &
- nohup hive
- --service hive
- server2 > /dev/null 2>&1 &
复制代码 bash 中 0、1、2 三个数字分别代表 STDIN_FILENO 、 STDOUT_FILENO 、STDERR_FILENO ,
即标准输入(一般是键盘),
标准输出(一般是显示屏,准确的说是用户终端控制台),
标准错误(输出错信息输出)。
数字寄义0标准输入(一般是键盘)1标准输出(一般是显示屏,准确的说是用户终端控制台)2标准错误(输出错信息输出) /dev/null看作"黑洞". 它等价于一个只写文件.
全部写入它的内容都会永久丢失.
而实验从它那儿读取内容则什么也读不到
启动hive
脚本
start-hive
.sh
- nohup hive
- --service metastore > /dev/null 2>&1 &
- nohup hive
- --service hive
- server2 > /dev/null 2>&1 &
复制代码 为脚本添加可实行权限
分发启动脚本
- mv start-hive
- .sh /home/lhz/opt/hive
- -4/bin/
复制代码 客户端连接
beeline 连接
- beeline -u jdbc:hive
- 2://lihaozhe:10000 -n root
复制代码 beeline 连接参数
- Option Description
- --autoCommit=[true/false] ---进入一个自动提交模式:beeline --autoCommit=true
- --autosave=[true/false] ---进入一个自动保存模式:beeline --autosave=true
- --color=[true/false] ---显示用到的颜色:beeline --color=true
- --delimiterForDSV= DELIMITER ---分隔值输出格式的分隔符。默认是“|”字符。
- --fastConnect=[true/false] ---在连接时,跳过组建表等对象:beeline --fastConnect=false
- --force=[true/false] ---是否强制运行脚本:beeline--force=true
- --headerInterval=ROWS ---输出的表间隔格式,默认是100: beeline --headerInterval=50
- --help ---帮助 beeline --help
- --hive
- conf property=value ---设置属性值,以防被hive
- .conf.restricted.list重置:beeline --hive
- conf prop1=value1
- --hive
- var name=value ---设置变量名:beeline --hive
- var var1=value1
- --incremental=[true/false] ---输出增量
- --isolation=LEVEL ---设置事务隔离级别:beeline --isolation=TRANSACTION_SERIALIZABLE
- --maxColumnWidth=MAXCOLWIDTH ---设置字符串列的最大宽度:beeline --maxColumnWidth=25
- --maxWidth=MAXWIDTH ---设置截断数据的最大宽度:beeline --maxWidth=150
- --nullemptystring=[true/false] ---打印空字符串:beeline --nullemptystring=false
- --numberFormat=[pattern] ---数字使用DecimalFormat:beeline --numberFormat="#,###,##0.00"
- --outputformat=[table/vertical/csv/tsv/dsv/csv2/tsv2] ---输出格式:beeline --outputformat=tsv
- --showHeader=[true/false] ---显示查询结果的列名:beeline --showHeader=false
- --showNestedErrs=[true/false] ---显示嵌套错误:beeline --showNestedErrs=true
- --showWarnings=[true/false] ---显示警告:beeline --showWarnings=true
- --silent=[true/false] ---静默方式执行,不显示执行过程信息:beeline --silent=true
- --truncateTable=[true/false] ---是否在客户端截断表的列
- --verbose=[true/false] ---显示详细错误信息和调试信息:beeline --verbose=true
- -d <driver class> ---使用一个驱动类:beeline -d driver_class
- -e <query> ---使用一个查询语句:beeline -e "query_string"
- -f <file> ---加载一个文件:beeline -f filepath 多个文件用-e file1 -e file2
- -n <username> ---加载一个用户名:beeline -n valid_user
- -p <password> ---加载一个密码:beeline -p valid_password
- -u <database URL> ---加载一个JDBC连接字符串:beeline -u db_URL
复制代码 hive
连接
启动客户端后连接
- !connect jdbc:hive
- 2://lihaozhe:10000 -n root
复制代码 浏览器访问
http://lihaozhe:10002/
关闭 hive
脚本
编写 stop-hive
.sh 脚本 kill 掉后台 RunJar 进程
- #!/bin/bash
- # 查找并杀死所有 RunJar 进程
- pids=$(ps -ef | grep RunJar | grep -v grep | awk '{print $2}')
- # 检查是否有找到任何 PID
- if [ -n "$pids" ]; then
- # 按行kill并输出
- for pid in $pids; do
- echo "Killing the following RunJar processes PID: $pid"
- kill -9 $pid
- done
- else
- echo "No RunJar processes found."
- fi
复制代码 脚本添加可实行权限
分发脚本
- mv stop-hive
- .sh /home/lhz/opt/hive
- -4/bin/
复制代码 体验
- use default;
- create table person (
- id int,
- phonenum bigint,
- salary dicimal,
- name string
- );
- show tables;
- insert into person values (1001,13966668888,9999.99,"张三");
复制代码- songsong,bingbing_lili,xiao song:18_xiaoxiao song:19
- longlong,pingping_liuliu,xiao long:8_xiaoxiao long:9
复制代码- drop table person;
- create table person (
- name string,
- friends array<string>,
- childrens map<string,int>
- )
- row format delimited fields terminated by ','
- collection items terminated by '_'
- map keys terminated by ':'
- lines terminated by '\n';
复制代码- load data local inpath '/root/person.txt' into table person;
复制代码- drop table data;
- create table data (
- name string,
- amount int
- )
- row format delimited fields terminated by ','
- lines terminated by '\n';
- load data local inpath '/root/data.txt' into table data;
复制代码- select count(*) from data;
- select count(*) from data group by name;
- select name,max(t) from data group by name;
- select name,max(t) from data group by name order by max(t) ;
复制代码- # 本地set mapreduce.framework.name=local;set hive
- .exec.mode.local.auto=true;# yarnset mapreduce.framework.name=yarn;set hive
- .exec.mode.local.auto=false;# 向量模式set hive
- .vectorized.execution.enabled=true;set hive
- .vectorized.execution.enabled=false;set mapreduce.framework.name=local;set hive
- .exec.mode.local.auto=true;set hive
- .vectorized.execution.enabled=true;
复制代码 t
)
row format delimited fields terminated by ‘,’
lines terminated by ‘\n’;
load data local inpath ‘/root/data.txt’ into table data;
- ```sqlselect count(*) from data;
- select count(*) from data group by name;
- select name,max(t) from data group by name;
- select name,max(t) from data group by name order by max(t) ;
复制代码- # 本地set mapreduce.framework.name=local;set hive
- .exec.mode.local.auto=true;# yarnset mapreduce.framework.name=yarn;set hive
- .exec.mode.local.auto=false;# 向量模式set hive
- .vectorized.execution.enabled=true;set hive
- .vectorized.execution.enabled=false;set mapreduce.framework.name=local;set hive
- .exec.mode.local.auto=true;set hive
- .vectorized.execution.enabled=true;
复制代码 免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |