HDFS命令
- HDFS命令大全
Usage: hdfs [--config confdir] COMMAND where COMMAND is one of
- 常用命令
对于HDFS dfs命令,针对在shell命令在大部分可以使用,只要在相应的命令前加 -。使用时,在Hive Cli可以省略hadoop命令。
展示hdfs文件中的根目录:hdfs dfs -ls /展示home目录下的信息:hdfs dfs -ls 创建home目录下创建目录product,当没有加目录时,就是在对应用户的home目录hdfs dfs -mkdir product拷贝文件到HDFS,将product.csv文件拷贝到刚才创建的product文件夹下。hdfs dfs -put product.csv product将文件从HDFS上拷贝到本地系统hdfs dfs -get product/prodcut.csv product_copy.csv在HDFS文件系统内进行文件拷贝hdfs dfs -cp product/product.csv product_copy.csv删除文件hdfs dfs -rm product_copy.csv删除一个目录hdfs dfs -rm -r product
获取HDFS转态报告(限管理员)hdfs dfsadmin -report输出结果:[root@sandbox-hdp hive_data]# hdfs dfsadmin -report Configured Capacity: 113791799296 (105.98 GB)Present Capacity: 86075118592 (80.16 GB)DFS Remaining: 84059177984 (78.29 GB)DFS Used: 2015940608 (1.88 GB)DFS Used%: 2.34%Under replicated blocks: 0Blocks with corrupt replicas: 0Missing blocks: 0Missing blocks (with replication factor 1): 0-------------------------------------------------report: Access denied for user root. Superuser privilege is required
对HDFS文件系统的健康型检查hdfs fsck /输出结果如下:Connecting to namenode via http://sandbox-hdp.hortonworks.com:50070/fsck?ugi=root&path=%2FFSCK started by root (auth:SIMPLE) from /172.18.0.2 for path / at Sun Dec 30 09:35:33 UTC 2018...................................................................................Status: HEALTHY Total size: 1984726046 B Total dirs: 232 Total files: 1083 Total symlinks: 0 (Files currently being written: 1) Total blocks (validated): 1081 (avg. block size 1836009 B) (Total open file blocks (not validated): 1) Minimally replicated blocks: 1081 (100.0 %) Over-replicated blocks: 0 (0.0 %) Under-replicated blocks: 0 (0.0 %) Mis-replicated blocks: 0 (0.0 %) Default replication factor: 1 Average block replication: 1.0 Corrupt blocks: 0 Missing replicas: 0 (0.0 %) Number of data-nodes: 1 Number of racks: 1FSCK ended at Sun Dec 30 09:35:33 UTC 2018 in 329 millisecondsThe filesystem under path '/' is HEALTHY
Hive命令
JDBC连接元数据
Hive元数据存储了如表的模式和分区等信息,用户执行如CREATE TABLE或ALTER TABLE等命令会制定这些信息,对于这些会存在并发同时访问,所以默认的内置数据库不适合于生产环境,目前绝大多数情况系啊,使用Mysql进行存储元数据信息,Mysql驱动的存放位置为:
/usr/hdp/xx.xx版本号/hive/conf 818 819 hive_metastore_user_passwd 820 hive 821 822 823 824 javax.jdo.option.ConnectionDriverName 825 com.mysql.jdbc.Driver 826 827 828 829 javax.jdo.option.ConnectionURL 830 jdbc:mysql://sandbox-hdp.hortonworks.com/hive?createDatabaseIfNotExist=true 831 832 833 834 javax.jdo.option.ConnectionUserName 835 root 836
命令行选项
执行 hive -h 或 hive --help 可以查看命令选项
变量和属性
--define key = value 等价于 --hivevar key=value,可在命令行定义用户自定义变量以便在Hive脚本中引用,来满足不同的执行。 Hive将这些键值对放到Hivevar命名空间,这样可以和其他的3中内置命名空间hiveconf,system,env 进行区分。
使用 set 命令对各不同命名空间中的变量进行设置,shell环境变量,对应的可以使用 echo $param 来进行输出现实。通用的配置信息可以在 /etc/profile,/etc/bashrc , ~/bash_profile 文件中定义。set env:home | echo $HOMEset env:HADOOP_HOME | echo $HADOOP_HOMEset env:JAVA_HOME | echo $JAVA_HOME
使用 -d 或 --hivevar进行定义变量。hive -d max_year=2018hive --hivevar configinfo=something --hivevar hosturl=hostname
--hiveconf 配置信息,hive的配置参数,覆盖hive-site.xml中的参数值
hive --hiveconf hive.cli.print.current.db=true --hiveconf hive.cli.print.header=true;
hive --hiveconf hive.root.logger=INFO,console
hiverc | hive -i 文件配置,在Hive cli中使用-i参数进行制定一个配置文件,在cli启动时,在提示符出现前会执行这个文件。Hive会自动在HOME目录下寻找名为.hiverc的文件,而且会自动 执行这个文件中的命令。 对于用户需要频繁执行的命令,使用这个文件是很方便的。例如设置系统属性,或增加对于Hadoop的分布内存进行自定义的Hive扩展Java包。
查看.hiverc文件,在对应账号的home目录,如果没有,就自己创建一个。对于配置的内容,通用使用 set 命令进行设置。
查看.hiverc文件,在对应账号的home目录,如果没有,就自己创建一个。对于配置的内容,通用使用 set 命令进行设置。
使用举例
hive -e 一次性执行Hive Sql语句。
结合使用 hivevarhive --hivevar param=data -e "SELECT * FROM TABLE WHERE cloum > ${hivevar:param} "
hive -f 指定Hive Sql脚本文件
hive --hivevar param=data -f "hive sql file path"
查看Hive操作历史命令:Hive 会将近10000行命令记录到文件 $HOME/.hivehistory在Hive中执行Shell命令,在命令前加 ! 即可> !ls;