Advanced settings for connecting to a Hortonworks cluster
This article explains advanced settings for configuring the Pentaho Server to connect to a working Hortonworks Data Platform (HDP) cluster.
Before you begin
Procedure
Check the Components Reference to verify that your Pentaho version supports your version of the HDP cluster.
Prepare your HDP cluster by performing the following tasks;
Configure a HDP cluster.
See Hortonwork's documentation if you need help.Install any required services and service client tools.
Test the cluster.
From your Hadoop administrator, get the connection information for the cluster and services that you intend to use. Some of this information may be from Ambari or other cluster management tools.
Add the YARN user on the cluster to the group defined by the dfs.permissions.superusergroup property. The dfs.permissions.superusergroup property can be found in hdfs-site.xml file on your cluster or in the cluster management application.
Read the Notes section to review special configuration instructions for your version of HDP.
Set up the Pentaho Server to connect to a Hadoop cluster. You need to install the driver for your version of HDP.
Set up a secured cluster
Procedure
Configure Kerberos security on the cluster, including the Kerberos Realm, Kerberos KDC, and Kerberos Administrative Server.
Configure the name, data, secondary name, job tracker, and task tracker nodes to accept remote connection requests.
If you are have deployed Hadoop using an enterprise-level program, set up Kerberos for name, data, secondary name, job tracker, and task tracker nodes.
Add the user account credential for each PDI client user who should have access to the Hadoop cluster to the Kerberos database.
Verify that an operating system user account on each node in the Hadoop cluster exists for each user who you want to add to the Kerberos database.
Add operating system user accounts if necessary.NoteThe user account UIDs must be greater than the minimum user ID value (min.user.id). Usually, the minimum user ID value is set to 1000.Set up Kerberos on your Pentaho machines. For instructions, see Set Up Kerberos for Pentaho.
Edit the configuration files for users
Your cluster administrators must download the configuration files from the cluster for the applications your teams are using, and then edit the files to include Pentaho-specific and user-specific parameters. These files must be copied to the user's directory: <username>/.pentaho/metastore/pentaho/NamedCluster/Configs/<user-defined connection name>. This directory and the config.properties file are created when you set up a named connection.
The following files must be modified and provided to your users:
- config.properties
- hbase-site.xml
- hive-site.xml
- mapred-site.xml
- yarn-site.xml
Edit HBase site XML file
Perform the following steps to edit the hbase-site.xml file:
Procedure
Navigate to the <username>/.pentaho/metastore/pentaho/NamedCluster/Configs/<user-defined connection name> directory and open the hbase-site.xml file.
Add the following value:
Parameter Value hbase.tmp.dir /tmp/hadoop/hbase Save and close the file.
Edit Hive site XML file
Procedure
Navigate to the <username>/.pentaho/metastore/pentaho/NamedCluster/Configs/<user-defined connection name> directory and open the hive-site.xml file.
Add the following value:
Parameter Value hive.metastore.uris Set this to the location of your hive metastore. Save and close the file.
Next steps
Edit Mapred site XML file
Perform the following steps to edit the mapred-site.xml file:
Procedure
Navigate to the <username>/.pentaho/metastore/pentaho/NamedCluster/Configs/<user-defined connection name> directory and open the mapred-site.xml file.
Add the following values:
Parameter Value mapreduce.jobhistory.address Set this to the folder where you want to store the job history logs. mapreduce.application.classpath Add classpath information. Here is an example: <property> <name>mapreduce.application.classpath</name> <value>$PWD/mr-framework/hadoop/share/hadoop/mapreduce/* :$PWD/mr-framework/hadoop/share/hadoop/mapreduce/lib/* :$PWD/mr-framework/hadoop/share/hadoop/common/*:$PWD/mr-framework/hadoop/share/hadoop/common/lib/* :$PWD/mr-framework/hadoop/share/hadoop/yarn/*:$PWD/mr-framework/hadoop/share/hadoop/yarn/lib/* :$PWD/mr-framework/hadoop/share/hadoop/hdfs/*:$PWD/mr-framework/hadoop/share/hadoop/hdfs/lib/* :/usr/hdp/${hdp.version}/hadoop/lib/hadoop-lzo-0.6.0.${hdp.version}.jar:/etc/hadoop/conf/secure </value> </property>
mapreduce.application.framework.path Set the framework path. Here is an example: <property> <name>mapreduce.application.framework.path</name> <value>/hdp/apps/${hdp.version}/mapreduce/mapreduce.tar.gz#mr-framework</value> </property>
Verify the mapreduce.app-submission.cross-platform property is in the mapred-site.xml file. If it is not in the file, add it as follows.
Parameter Value mapreduce.app-submission.cross-platform Add this property to allow MapReduce jobs to run on either Windows client or Linux server platforms. <property> <name>mapreduce.app-submission.cross-platform</name> <value>true</value> </property>
Save and close the file.
Edit YARN site XML file
Perform the following steps to edit the yarn-site.xml file:
Procedure
Navigate to the <username>/.pentaho/metastore/pentaho/NamedCluster/Configs/<user-defined connection name> directory and open the yarn-site.xml file.
Add these values:
Parameter Value yarn.application.classpath Add the classpaths needed to run YARN applications, as shown in the following example: <property> <name>yarn.application.classpath</name> <value>$HADOOP_CONF_DIR,/usr/hdp/current/hadoop-client/*, /usr/hdp/current/hadoop-client/lib/*,/usr/hdp/current/hadoop-hdfs-client/*, /usr/hdp/current/hadoop-hdfs-client/lib/*,/usr/hdp/current/hadoop-yarn-client/*, /usr/hdp/current/hadoop-yarn-client/lib/*</value> </property>
Use commas to separate multiple paths.yarn.resourcemanager.hostname Update the hostname in your environment or use the default: sandbox.hortonworks.com yarn.resourcemanager.address Update the hostname and port for your environment. yarn.resourcemanager.admin.address Update the hostname and port for your environment. Save and close the file.
Oozie configuration
If you are using Oozie on a cluster, you must configure the cluster and the server. For instructions, see Using Oozie
Windows configuration for a secured cluster
If you are on a Windows machine, perform the following steps to edit the configuration properties:
Procedure
Navigate to the server/pentaho-server directory and open the start-pentaho.bat file with any text editor.
Set the CATALINA_OPTS environment variable to the location of the krb5.conf or krb5.ini file on your system, as shown in the following example:
set "CATALINA_OPTS=%"-Djava.security.krb5.conf=C:\kerberos\krb5.conf
Save and close the file.
Connect to a Hadoop cluster with the PDI client
After you have set up the Pentaho Server to connect to a cluster, you must configure and test the connection to the cluster. For more information about setting up the connection, see Connecting to a Hadoop cluster with the PDI client.
Connect other Pentaho components to the Hortonworks cluster
The following sections explain how to create and test a connection to the cluster in the Pentaho Server, PRD, and PME. Creating and testing a connection to the cluster in the PDI client involves the following tasks:
- Install a driver for the Pentaho Server. See Set up the Pentaho Server to connect to a Hadoop cluster.
- Create and test the cluster connections.
Create and test connections
For each Pentaho component, create the test as described in the following list.
Pentaho Server for DI
Create a transformation in the PDI client and run it remotely.
Pentaho Server for BA
Create a connection to the cluster in the Data Source Wizard.
PME
Create a connection to the cluster in PME.
PRD
Create a connection to the cluster in PRD.
After you have connected to the cluster and its services properly, provide connection information to users who need access to the cluster and its services. Those users can only obtain access from machines that are properly configured to connect to the cluster.
Here is what users need to connect:
- Hadoop Distribution and version of the cluster
- HDFS, JobTracker, ZooKeeper, and Hive2/Impala Hostnames, IP addresses and port numbers
- Oozie URL (if used)
Users also require the permissions to access the directories they need on HDFS, such as their home directory and any other required directories.
Users might also require more information for specific job entries, transformation steps, and services. Here's a more detailed list of information that your users might need from you.
Notes
The following sections are special notes for the Hortonworks Data Platform.
Simba Spark SQL driver support
Procedure
Download the Simba Spark SQL driver.
Extract the ZIP file, and then copy the following 3 files into the lib/ directory of the Pentaho HDP driver:
- SparkJDBC41.jar
- TCLIServiceClient.jar
- QI.jar
In the Database Connection window, select SparkSQL option.
The default port for the Spark thrift server is 10015.For secure connections, set the following additional parameters on the JDBC URL through the Options tab:
- KrbServiceName
- KrbHostFQDN
- KrbRealm
For unsecure connections, if your Spark SQL configuration specifies hive.server2.authentication=NONE, then include an appropriate User Name in the Database Connection window.
Otherwise, the connection is assumed to be NOSASL authentication, which causes a connection failure after timeout.Stop and restart the component.
HDP 3.1 notes
The following note addresses issues related to HDP 3.1.
Using the 3.0 driver for HDP 3.1 clusters
You can use the HDP 3.0 driver to connect to your HDP 3.1 cluster by updating the PDI config.properties file.
Perform the following steps to update your java.syste.hdp.version driver configuration parameter to HDP 3.1:
Procedure
On your HDP cluster, use the hdp-select command to determine the full version of your cluster, such as '3.1.0.0-78'.
In the Pentaho distribution, open the config.properties file located in the <username>/.pentaho/metastore/pentaho/NamedCluster/Configs/<user-defined connection name> directory.
Change the java.system.hdp.version parameter from the existing version to the full version of your cluster, which you obtained by running the hdp-select command in Step 1. For example, the existing version of '3.0.0.0-1634' might be changed to '3.1.0.0-78'.
Save and close the config.properties file.
Results