Furcy: Thank you. So. Much.

On Dec 10, 2017, 4:34 AM -0800, Furcy Pin <pin.fu...@gmail.com>, wrote:
> Hi Scott,
>
> I ran into similar issues before.
>
>
> I think that you need to do two things to enable Hive access to s3:
>
>
> 1. add the following jars to your Hive classpath, for instance by using 
> symlinks
>
> ln -s $HADOOP_HOME/share/hadoop/tools/lib/aws-java-sdk-1.7.4.jar 
> $HIVE_HOME/lib/.
> ln -s $HADOOP_HOME/share/hadoop/tools/lib/hadoop-aws-2.7.3.jar 
> $HIVE_HOME/lib/.
>
>
> 2. Configure your $HADOOP_HOME/conf/hdfs-site.xml with the following 
> parameters
> (replace the $AWS_ values with your correct values, environment variable 
> substitution doesn't work until Hadoop 3 I believe)
>
>
>     <configuration>
>       <property>
>         <name>fs.s3a.access.key</name>
>         <value>$AWS_ACCESS_KEY_ID</value>
>       </property>
>       <property>
>         <name>fs.s3a.secret.key</name>
>         <value>$AWS_SECRET_ACCESS_KEY</value>
>       </property>
>     </configuration>
>
>
>
> You can also check out the docker I made with Hive and Spark pre-installed 
> and pre-configured for Amazon
> https://github.com/FurcyPin/docker-hive-spark
>
> You can either use it directly or just look at how I did it.
>
> Regards,
>
> Furcy
>
>
>
>
> > 2017-12-09 20:01 GMT+01:00 Scott Halgrim <scott.halg...@zapier.com>:
> > > Thanks, Elliott.
> > >
> > > I’m using Ubuntu 14.04.5 LTS, Hadoop 2.9.0, and Hive 2.3.2.
> > >
> > > I hadn’t had a CLASSPATH environment variable set, but I did just set it 
> > > to have that jar on it and I get the same answer.
> > >
> > > I don’t really have the installation in “/path/to/…” but everything else 
> > > in the path is correct. You’re right, I’m just obfuscating the actual 
> > > value.
> > >
> > > A new odd behavior that didn’t happen yesterday, is that in hive, ‘SELECT 
> > > * FROM TBLS;’ returns an error: ‘Table not found: TBLS’. Yet, I can 
> > > connect to the MySQL backend and query it fine. In hive I can also query 
> > > tables I know are there…just not TBLS.
> > >
> > > Hope that makes sense,
> > >
> > > Thanks again!
> > >
> > > Scott
> > >
> > > On Dec 9, 2017, 9:46 AM -0800, Elliot West <tea...@gmail.com>, wrote:
> > > > Which distribution are you using? Do you have hadoop-aws on the class 
> > > > path? Is ‘/path/to/hadoop/install’ a literal value or a placeholder 
> > > > that you’ using for the actual location?
> > > >
> > > > Cheers,
> > > >
> > > > Elliot.
> > > >
> > > > > On Sat, 9 Dec 2017 at 00:08, Scott Halgrim <scott.halg...@zapier.com> 
> > > > > wrote:
> > > > > > Hi,
> > > > > >
> > > > > > I’ve been struggling with this for a few hours, hopefully somebody 
> > > > > > here can help me out.
> > > > > >
> > > > > > We have a lot of data in parquet format on S3 and we want to use 
> > > > > > Hive to query it. I’m running on ubuntu and we have a MySQL 
> > > > > > metadata store on AWS RDS.
> > > > > >
> > > > > > The command in the hive client I’m trying to run is:
> > > > > > > CREATE EXTERNAL TABLE
> > > > > > > my_schema.my_table
> > > > > > > (account_id INT,
> > > > > > > action VARCHAR(282),
> > > > > > > another_id INT
> > > > > > > yaid INT,
> > > > > > > `date` TIMESTAMP,
> > > > > > > deleted_at TIMESTAMP,
> > > > > > > id INT,
> > > > > > > lastchanged TIMESTAMP,
> > > > > > > thing_index DOUBLE,
> > > > > > > old_id INT,
> > > > > > > parent_id INT,
> > > > > > > running INT,
> > > > > > > other_id INT,
> > > > > > > another_thing VARCHAR(282),
> > > > > > > title VARCHAR(282),
> > > > > > > type_of VARCHAR(282))
> > > > > > > PARTITIONED BY (snapshot_date DATE)
> > > > > > > STORED AS parquet
> > > > > > > LOCATION 's3a://bucket/folder/foo_my_schema.my_table’;
> > > > > >
> > > > > > The error I get is:
> > > > > > > FAILED: SemanticException java.lang.RuntimeException: 
> > > > > > > java.lang.ClassNotFoundException: Class 
> > > > > > > org.apache.hadoop.fs.s3a.S3AFileSystem not found
> > > > > >
> > > > > > I have this in my hive-site.xml file:
> > > > > > > <property>
> > > > > > > <name>hive.aux.jars.path</name>
> > > > > > > <value>/path/to/hadoop-install/hadoop-2.9.0/share/hadoop/tools/lib</value>
> > > > > > > </property>
> > > > > >
> > > > > >
> > > > > > Another thing I tried was to create the external table without a 
> > > > > > location and then alter it to have the location:
> > > > > >
> > > > > > > alter table my_schema.my_table set location 
> > > > > > > "s3a://bucket/folder/foo_my_schema.my_table";
> > > > > >
> > > > > > And then I get a different error:
> > > > > >
> > > > > > > FAILED: SemanticException Cannot connect to namenode, please 
> > > > > > > check if host/port pair for 
> > > > > > > s3a://bucket/folder/foo_my_schema.my_table is valid
> > > > > >
> > > > > > What could I be missing?
> > > > > >
> > > > > > Thanks!
> > > > > >
> > > > > > Scott
>

Reply via email to