List of usage examples for org.apache.thrift.protocol TCompactProtocol TCompactProtocol
public TCompactProtocol(TTransport transport)
From source file:org.apache.carbondata.core.writer.ThriftWriter.java
License:Apache License
/** * Open the file for writing./*from w w w . j av a 2s. c om*/ */ public void open() throws IOException { FileFactory.FileType fileType = FileFactory.getFileType(fileName); dataOutputStream = FileFactory.getDataOutputStream(fileName, fileType, bufferSize, append); binaryOut = new TCompactProtocol(new TIOStreamTransport(dataOutputStream)); }
From source file:org.apache.dubbo.rpc.protocol.nativethrift.ThriftProtocol.java
License:Apache License
private <T> T doReferFrameAndCompact(Class<T> type, URL url) throws RpcException { try {//from w w w. j a v a2 s . c o m T thriftClient = null; String typeName = type.getName(); if (typeName.endsWith(THRIFT_IFACE)) { String clientClsName = typeName.substring(0, typeName.indexOf(THRIFT_IFACE)) + THRIFT_CLIENT; Class<?> clazz = Class.forName(clientClsName); Constructor constructor = clazz.getConstructor(TProtocol.class); try { TSocket tSocket = new TSocket(url.getHost(), url.getPort()); TTransport transport = new TFramedTransport(tSocket); TProtocol tprotocol = new TCompactProtocol(transport); TMultiplexedProtocol protocol = new TMultiplexedProtocol(tprotocol, typeName); thriftClient = (T) constructor.newInstance(protocol); transport.open(); logger.info("nativethrift client opened for service(" + url + ")"); } catch (Exception e) { logger.error(e.getMessage(), e); throw new RpcException("Fail to create remote client:" + e.getMessage(), e); } } return thriftClient; } catch (Exception e) { logger.error(e.getMessage(), e); throw new RpcException("Fail to create remote client for service(" + url + "): " + e.getMessage(), e); } }
From source file:org.apache.fluo.core.oracle.OracleServer.java
License:Apache License
private OracleService.Client getOracleClient(String host, int port) { try {/*from www . jav a 2s .c o m*/ TTransport transport = new TFastFramedTransport(new TSocket(host, port)); transport.open(); TProtocol protocol = new TCompactProtocol(transport); log.info("Former leader was reachable at " + host + ":" + port); return new OracleService.Client(protocol); } catch (TTransportException e) { log.debug("Exception thrown in getOracleClient()", e); } catch (Exception e) { throw new RuntimeException(e); } return null; }
From source file:org.apache.hadoop.hbase.thrift.TestThriftServerCmdLine.java
License:Apache License
private void talkToThriftServer() throws Exception { TSocket sock = new TSocket(InetAddress.getLocalHost().getHostName(), port); TTransport transport = sock;/*from w w w . j av a 2 s. co m*/ if (specifyFramed || implType.isAlwaysFramed) { transport = new TFramedTransport(transport); } sock.open(); try { TProtocol prot; if (specifyCompact) { prot = new TCompactProtocol(transport); } else { prot = new TBinaryProtocol(transport); } Hbase.Client client = new Hbase.Client(prot); if (!tableCreated) { TestThriftServer.createTestTables(client); tableCreated = true; } TestThriftServer.checkTableList(client); } finally { sock.close(); } }
From source file:org.apache.hadoop.hbase.thrift.ThriftServerCmdLineTestBase.java
License:Apache License
private void talkToThriftServer() throws Exception { TSocket sock = new TSocket(InetAddress.getLocalHost().getHostName(), port); TTransport transport = sock;//from ww w . j a v a 2s . co m if (specifyFramed || implType.isAlwaysFramed) { transport = new TFramedTransport(transport); } sock.open(); try { TProtocol prot; if (specifyCompact) { prot = new TCompactProtocol(transport); } else { prot = new TBinaryProtocol(transport); } Hbase.Client client = new Hbase.Client(prot); TestThriftServer.doTestTableCreateDrop(client); TestThriftServer.doTestGetRegionInfo(client); TestThriftServer.doTestGetTableRegions(client); TestThriftServer.doTestTableMutations(client); } finally { sock.close(); } }
From source file:org.apache.hadoop.hbase.thrift2.TestThrift2ServerCmdLine.java
License:Apache License
@Override protected void talkToThriftServer() throws Exception { TSocket sock = new TSocket(InetAddress.getLocalHost().getHostName(), port); TTransport transport = sock;//w w w . j av a 2 s.c o m if (specifyFramed || implType.isAlwaysFramed()) { transport = new TFramedTransport(transport); } sock.open(); try { TProtocol tProtocol; if (specifyCompact) { tProtocol = new TCompactProtocol(transport); } else { tProtocol = new TBinaryProtocol(transport); } THBaseService.Client client = new THBaseService.Client(tProtocol); TTableName tTableName = new TTableName(); tTableName.setNs(Bytes.toBytes("")); tTableName.setQualifier(Bytes.toBytes(TABLENAME)); if (!tableCreated) { Assert.assertTrue(!client.tableExists(tTableName)); TTableDescriptor tTableDescriptor = new TTableDescriptor(); tTableDescriptor.setTableName(tTableName); TColumnFamilyDescriptor columnFamilyDescriptor = new TColumnFamilyDescriptor(); columnFamilyDescriptor.setName(Bytes.toBytes(TABLENAME)); tTableDescriptor.addToColumns(columnFamilyDescriptor); client.createTable(tTableDescriptor, new ArrayList<>()); tableCreated = true; } Assert.assertTrue(client.tableExists(tTableName)); } finally { sock.close(); } }
From source file:org.apache.hadoop.hdfs.protocol.TestClientProxyRequests.java
License:Apache License
@Before public void setUp() { transport = new TMemoryBuffer(1024 * 1024); protocol = new TCompactProtocol(transport); }
From source file:org.apache.hadoop.hive.metastore.HiveMetaStoreClientPreCatalog.java
License:Apache License
private void open() throws MetaException { isConnected = false;//from w w w . j a v a 2 s . co m TTransportException tte = null; boolean useSSL = MetastoreConf.getBoolVar(conf, ConfVars.USE_SSL); boolean useSasl = MetastoreConf.getBoolVar(conf, ConfVars.USE_THRIFT_SASL); boolean useFramedTransport = MetastoreConf.getBoolVar(conf, ConfVars.USE_THRIFT_FRAMED_TRANSPORT); boolean useCompactProtocol = MetastoreConf.getBoolVar(conf, ConfVars.USE_THRIFT_COMPACT_PROTOCOL); int clientSocketTimeout = (int) MetastoreConf.getTimeVar(conf, ConfVars.CLIENT_SOCKET_TIMEOUT, TimeUnit.MILLISECONDS); for (int attempt = 0; !isConnected && attempt < retries; ++attempt) { for (URI store : metastoreUris) { LOG.info("Trying to connect to metastore with URI " + store); try { if (useSSL) { try { String trustStorePath = MetastoreConf.getVar(conf, ConfVars.SSL_TRUSTSTORE_PATH).trim(); if (trustStorePath.isEmpty()) { throw new IllegalArgumentException(ConfVars.SSL_TRUSTSTORE_PATH.toString() + " Not configured for SSL connection"); } String trustStorePassword = MetastoreConf.getPassword(conf, MetastoreConf.ConfVars.SSL_TRUSTSTORE_PASSWORD); // Create an SSL socket and connect transport = SecurityUtils.getSSLSocket(store.getHost(), store.getPort(), clientSocketTimeout, trustStorePath, trustStorePassword); LOG.info("Opened an SSL connection to metastore, current connections: " + connCount.incrementAndGet()); } catch (IOException e) { throw new IllegalArgumentException(e); } catch (TTransportException e) { tte = e; throw new MetaException(e.toString()); } } else { transport = new TSocket(store.getHost(), store.getPort(), clientSocketTimeout); } if (useSasl) { // Wrap thrift connection with SASL for secure connection. try { HadoopThriftAuthBridge.Client authBridge = HadoopThriftAuthBridge.getBridge() .createClient(); // check if we should use delegation tokens to authenticate // the call below gets hold of the tokens if they are set up by hadoop // this should happen on the map/reduce tasks if the client added the // tokens into hadoop's credential store in the front end during job // submission. String tokenSig = MetastoreConf.getVar(conf, ConfVars.TOKEN_SIGNATURE); // tokenSig could be null tokenStrForm = SecurityUtils.getTokenStrForm(tokenSig); if (tokenStrForm != null) { LOG.info( "HMSC::open(): Found delegation token. Creating DIGEST-based thrift connection."); // authenticate using delegation tokens via the "DIGEST" mechanism transport = authBridge.createClientTransport(null, store.getHost(), "DIGEST", tokenStrForm, transport, MetaStoreUtils.getMetaStoreSaslProperties(conf, useSSL)); } else { LOG.info( "HMSC::open(): Could not find delegation token. Creating KERBEROS-based thrift connection."); String principalConfig = MetastoreConf.getVar(conf, ConfVars.KERBEROS_PRINCIPAL); transport = authBridge.createClientTransport(principalConfig, store.getHost(), "KERBEROS", null, transport, MetaStoreUtils.getMetaStoreSaslProperties(conf, useSSL)); } } catch (IOException ioe) { LOG.error("Couldn't create client transport", ioe); throw new MetaException(ioe.toString()); } } else { if (useFramedTransport) { transport = new TFramedTransport(transport); } } final TProtocol protocol; if (useCompactProtocol) { protocol = new TCompactProtocol(transport); } else { protocol = new TBinaryProtocol(transport); } client = new ThriftHiveMetastore.Client(protocol); try { if (!transport.isOpen()) { transport.open(); LOG.info("Opened a connection to metastore, current connections: " + connCount.incrementAndGet()); } isConnected = true; } catch (TTransportException e) { tte = e; if (LOG.isDebugEnabled()) { LOG.warn("Failed to connect to the MetaStore Server...", e); } else { // Don't print full exception trace if DEBUG is not on. LOG.warn("Failed to connect to the MetaStore Server..."); } } if (isConnected && !useSasl && MetastoreConf.getBoolVar(conf, ConfVars.EXECUTE_SET_UGI)) { // Call set_ugi, only in unsecure mode. try { UserGroupInformation ugi = SecurityUtils.getUGI(); client.set_ugi(ugi.getUserName(), Arrays.asList(ugi.getGroupNames())); } catch (LoginException e) { LOG.warn("Failed to do login. set_ugi() is not successful, " + "Continuing without it.", e); } catch (IOException e) { LOG.warn("Failed to find ugi of client set_ugi() is not successful, " + "Continuing without it.", e); } catch (TException e) { LOG.warn("set_ugi() not successful, Likely cause: new client talking to old server. " + "Continuing without it.", e); } } } catch (MetaException e) { LOG.error("Unable to connect to metastore with URI " + store + " in attempt " + attempt, e); } if (isConnected) { break; } } // Wait before launching the next round of connection retries. if (!isConnected && retryDelaySeconds > 0) { try { LOG.info("Waiting " + retryDelaySeconds + " seconds before next connection attempt."); Thread.sleep(retryDelaySeconds * 1000); } catch (InterruptedException ignore) { } } } if (!isConnected) { throw new MetaException("Could not connect to meta store using any of the URIs provided." + " Most recent failure: " + StringUtils.stringifyException(tte)); } snapshotActiveConf(); LOG.info("Connected to metastore."); }
From source file:org.apache.hadoop.hive.metastore.tools.HMSClient.java
License:Apache License
private TTransport open(Configuration conf, @NotNull URI uri) throws TException, IOException, LoginException { boolean useSSL = MetastoreConf.getBoolVar(conf, MetastoreConf.ConfVars.USE_SSL); boolean useSasl = MetastoreConf.getBoolVar(conf, MetastoreConf.ConfVars.USE_THRIFT_SASL); boolean useFramedTransport = MetastoreConf.getBoolVar(conf, MetastoreConf.ConfVars.USE_THRIFT_FRAMED_TRANSPORT); boolean useCompactProtocol = MetastoreConf.getBoolVar(conf, MetastoreConf.ConfVars.USE_THRIFT_COMPACT_PROTOCOL); int clientSocketTimeout = (int) MetastoreConf.getTimeVar(conf, MetastoreConf.ConfVars.CLIENT_SOCKET_TIMEOUT, TimeUnit.MILLISECONDS); LOG.debug("Connecting to {}, framedTransport = {}", uri, useFramedTransport); String host = uri.getHost();/*w w w . j av a 2s . c o m*/ int port = uri.getPort(); // Sasl/SSL code is copied from HiveMetastoreCLient if (!useSSL) { transport = new TSocket(host, port, clientSocketTimeout); } else { String trustStorePath = MetastoreConf.getVar(conf, MetastoreConf.ConfVars.SSL_TRUSTSTORE_PATH).trim(); if (trustStorePath.isEmpty()) { throw new IllegalArgumentException(MetastoreConf.ConfVars.SSL_TRUSTSTORE_PATH.toString() + " Not configured for SSL connection"); } String trustStorePassword = MetastoreConf.getPassword(conf, MetastoreConf.ConfVars.SSL_TRUSTSTORE_PASSWORD); // Create an SSL socket and connect transport = SecurityUtils.getSSLSocket(host, port, clientSocketTimeout, trustStorePath, trustStorePassword); LOG.info("Opened an SSL connection to metastore, current connections"); } if (useSasl) { // Wrap thrift connection with SASL for secure connection. HadoopThriftAuthBridge.Client authBridge = HadoopThriftAuthBridge.getBridge().createClient(); // check if we should use delegation tokens to authenticate // the call below gets hold of the tokens if they are set up by hadoop // this should happen on the map/reduce tasks if the client added the // tokens into hadoop's credential store in the front end during job // submission. String tokenSig = MetastoreConf.getVar(conf, MetastoreConf.ConfVars.TOKEN_SIGNATURE); // tokenSig could be null String tokenStrForm = SecurityUtils.getTokenStrForm(tokenSig); if (tokenStrForm != null) { LOG.info("HMSC::open(): Found delegation token. Creating DIGEST-based thrift connection."); // authenticate using delegation tokens via the "DIGEST" mechanism transport = authBridge.createClientTransport(null, host, "DIGEST", tokenStrForm, transport, MetaStoreUtils.getMetaStoreSaslProperties(conf, useSSL)); } else { LOG.info( "HMSC::open(): Could not find delegation token. Creating KERBEROS-based thrift connection."); String principalConfig = MetastoreConf.getVar(conf, MetastoreConf.ConfVars.KERBEROS_PRINCIPAL); transport = authBridge.createClientTransport(principalConfig, host, "KERBEROS", null, transport, MetaStoreUtils.getMetaStoreSaslProperties(conf, useSSL)); } } else { if (useFramedTransport) { transport = new TFramedTransport(transport); } } final TProtocol protocol; if (useCompactProtocol) { protocol = new TCompactProtocol(transport); } else { protocol = new TBinaryProtocol(transport); } client = new ThriftHiveMetastore.Client(protocol); if (!transport.isOpen()) { transport.open(); LOG.info("Opened a connection to metastore, current connections"); if (!useSasl && MetastoreConf.getBoolVar(conf, MetastoreConf.ConfVars.EXECUTE_SET_UGI)) { // Call set_ugi, only in unsecure mode. try { UserGroupInformation ugi = SecurityUtils.getUGI(); client.set_ugi(ugi.getUserName(), Arrays.asList(ugi.getGroupNames())); } catch (LoginException e) { LOG.warn("Failed to do login. set_ugi() is not successful, " + "Continuing without it.", e); } catch (IOException e) { LOG.warn( "Failed to find ugi of client set_ugi() is not successful, " + "Continuing without it.", e); } catch (TException e) { LOG.warn("set_ugi() not successful, Likely cause: new client talking to old server. " + "Continuing without it.", e); } } } LOG.debug("Connected to metastore, using compact protocol = {}", useCompactProtocol); return transport; }
From source file:org.apache.hive.service.cli.ColumnBasedSet.java
License:Apache License
public ColumnBasedSet(TRowSet tRowSet) throws TException { descriptors = null;//from ww w . j a va 2s . c om columns = new ArrayList<ColumnBuffer>(); // Use TCompactProtocol to read serialized TColumns if (tRowSet.isSetBinaryColumns()) { TProtocol protocol = new TCompactProtocol( new TIOStreamTransport(new ByteArrayInputStream(tRowSet.getBinaryColumns()))); // Read from the stream using the protocol for each column in final schema for (int i = 0; i < tRowSet.getColumnCount(); i++) { TColumn tvalue = new TColumn(); try { tvalue.read(protocol); } catch (TException e) { LOG.error(e.getMessage(), e); throw new TException("Error reading column value from the row set blob", e); } columns.add(new ColumnBuffer(tvalue)); } } else { if (tRowSet.getColumns() != null) { for (TColumn tvalue : tRowSet.getColumns()) { columns.add(new ColumnBuffer(tvalue)); } } } startOffset = tRowSet.getStartRowOffset(); }