Linux、hive、sqoop常用脚本,hivesqoop


一、Linux常用脚本


1.查看进程

  ps -ef|grep -i tom


2.SCP从远程复制到本地目录

  scp root@/172.19.2.75:/home/root/full.tar.gz /home/daisy/full.tar.gz  


3.查看目录

  pwd 


4.查看hadoop集群状态命令

  hadoop dfsadmin -report  


5.查看default getway命令

  route 或者 netstat -r


6.添加default getway命令

  route add default gw 10.25.125.1 


7.重启网卡服务

  service network restart


8.配置网卡命令

 首先进入目录/etc/sysconfig/network-script
    DEVICE=eth0
  BOOTPROTO=none
  ONBOOT=yes
  TYPE=Ethernet
  NETMASK=255.255.255.0
  IPADDR=IP地址
  USERCTL=no
  PEERDNS=yes

  GATEWAY=网关地址


9.查看防火墙状态
  /etc/init.d/iptables status
  暂时关闭防火墙:
  /etc/init.d/iptables stop
  禁止防火墙在系统启动时启动
  /sbin/chkconfig --level 2345 iptables off
  重启iptables:
  /etc/init.d/iptables restart 
  即时生效,重启后失效
  service 方式
  开启: service iptables start 
  关闭: service iptables stop
  执行清楚命令

  iptables -F 


10.uname -r/uname -a 查看操作系统版本


11.cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c


12.du -sh mul/  查看当前文件目录大小
   du -sm * | sort -n //统计当前目录大小 并安大小 排序
   du -sk *|grep -data //查看一个文件夹大小

   du data *|wc -l //查看当前目录下文件数  


13.hadoop查看数据命令
   hadoop fs -du /data1/hive/warehouse/
   kill 命令

   hadoop job -kill jobid


14.赋权命令
   chown --help 帮助

   chown -R cup:hadoop data/


15.定时命令
   crontab -l 查看定时
   crontab -e 设置定时
   前5个字段分别表示: 
       分钟:0-59 
       小时:1-23 
       日期:1-31 
       月份:1-12 
       星期:0-6(0表示周日)

二、hive非交互模式命令


1.可以将hive执行的sql语句保存到脚本文件中,通过-f选项制定脚本文件执行hive

    eg:hive -f script.sql


2.对于较短的sql语句,可以直接使用-e选项运行hive

    eg:hive -e 'select * from table a'


3.-S选项
  hive执行过程中,会在终端上显示mapreduce的进度。如果不想显示进度,可以使用-S选项。
  这个静音模式很实用,,通过第三方程序调用,第三方程序通过hive的标准输出获取结果集。
    eg:$HIVE_HOME/bin/hive -S -e 'select a.col from tab1 a' > tab1.csv

三、Sqoop常用命令


1、列出mysql数据库中的所有数据库

   sqoop list-databases --connect jdbc:mysql://localhost:3306/ -username 111 -password 111


2、连接mysql并列出数据库中的表

   sqoop list-tables --connect jdbc:mysql://localhost:3306/test --username 111 --password 111


3、将关系型数据的表结构复制到hive中
   sqoop create-hive-table --connect jdbc:mysql://localhost:3306/test --table users --username dyh --password 000000 
   --hive-table users  --fields-terminated-by "\0001"  --lines-terminated-by "\n";
   参数说明:
   --fields-terminated-by "\0001"  是设置每列之间的分隔符,"\0001"是ASCII码中的1,它也是hive的默认行内分隔符, 
   而sqoop的默认行内分隔符为"," --lines-terminated-by "\n"  设置的是每行之间的分隔符,此处为换行符,也是默认的分隔符;

   注意:只是复制表的结构,表中的内容没有复制


4、将数据从关系数据库导入文件到hive表中
   sqoop import --connect jdbc:mysql://localhost:3306/test --username dyh --password 000000 
   --table users --hive-import --hive-table users -m 2 --fields-terminated-by "\0001";
   参数说明:
   -m 2 表示由两个map作业执行;

   --fields-terminated-by "\0001"  需同创建hive表时保持一致;


5、将hive中的表数据导入到mysql数据库表中
   sqoop export --connect jdbc:mysql://192.168.20.118:3306/test --username dyh --password 000000 

   --table users --export-dir /user/hive/warehouse/users/part-m-00000 --input-fields-terminated-by '\0001'


6、将数据从关系数据库导入文件到hive表中,--query 语句使用
   sqoop import --append --connect jdbc:mysql://192.168.20.118:3306/test --username dyh --password 000000
   --query "select id,age,name from userinfos where \$CONDITIONS"  -m 1  --target-dir /user/hive/warehouse/userinfos2

   --fields-terminated-by "


7、将数据从关系数据库导入文件到hive表中,--columns  --where 语句使用
   sqoop import --append --connect jdbc:mysql://192.168.20.118:3306/test --username dyh --password 000000 
   --table userinfos --columns "id,age,name"  --where "id > 3 and (age = 88 or age = 80)"  -m 1  
   --target-dir /user/hive/warehouse/userinfos2 --fields-terminated-by ",";

相关内容