Windows版本Pycharm连接Linux hive

作为一个python新手,任何一个步骤都不能放过,就怕后续遇到同样的问题无从下手,先记录再记忆

1,我用的是hadoop2.7,spark-2.4.5-hadoop2.7,Anaconda3.6,Pycharm

2,下载跟你的Hadoop版本相同的winutil.exe放到%HADOOP_HOME%/bin/下,

3,将hive-site.xml,core-site.xml,hdfs-site.xml,yarn-site.xml,mapped-site.xml放到%Spark_HOME%conf/

4,将hive的元数据库mysql-connect-5.7.1.jar或者postgrsql-9.4.128.jre7.jar,postgresql-metadata-storage-0.9.2jar放到spark的jars

5,先连接hive。View——>Tool Windows——>database——>apache hive(输入ip,port,username)

     点击test connect(测试看能不能连接,社区版可跳过)

6,File——>Settings——>Project Interpreter——>添加anaconda的python.exe环境

7,随便运行下代码,然后从edit configuration

     PYSPARK_PYTHON=E:\Anaconda\python.exe;
     HADOOP_USER_NAME=hdfs;
     PYTHONUNBUFFERED=1;
     SPARK_HOME=E:\spark-2.4.5-hadoop2.7;
     HADOOP_HOME=D:\hadoop-2.7.1

8,File——>Settings——>Project Structure——>add content root——>将E:/spark-2.4.5-bin-hadoop2.7/python/lib/下的pyspark.zip

     py4j.zip添加进来

9,如果你的hive表用到分割符为(##或者¥¥)类似的多分割符的,还需要将hive-contrib.jar放到spark的jars下

10,在E盘建立一个E:/tmp/hive2,做为spark及hive sql的临时目录,然后将文件夹权限设置成全部

     (修改文件权限:https://jingyan.baidu.com/article/a3aad71a98173cf1fb0096a6.html)

11,如果还有中文乱码的情况,可以先Google一下,实在解决不了的可以试试下面的,加在Sparksession创建的对象里

      .config('spark.executor.extraJavaOptions','-Dfile.encoding=utf-8')
      .config('spark.driver.extraJavaOptions','-Dfile.encoding=utf-8')

你可能感兴趣的:(python)