如何在我的本地 linux 服务器上运行 google-cloud-datalab?

Posted

技术标签:

【中文标题】如何在我的本地 linux 服务器上运行 google-cloud-datalab?【英文标题】:How to run google-cloud-datalab on my local linux server? 【发布时间】:2015-10-26 07:43:38 【问题描述】:

我已在 Google Developers Console 上注册,但我的项目不是计费项目。我做了“初始化环境”的步骤。和“构建并运行 ”正如网页 https://github.com/GoogleCloudPlatform/datalab/wiki/Development-Environment 和 https://github.com/GoogleCloudPlatform/datalab/wiki/Build-and-Run 所描述的那样。 但是当我在本地 linux 服务器上部署的 Notebook 中运行代码时,我遇到了以下错误:

创建并运行 SQL 查询

bq.Query('SELECT * FROM [cloud-datalab-samples:httplogs.logs_20140615] LIMIT 3').results()

异常回溯(最近一次调用最后一次) 在 () 1 # 创建并运行 SQL 查询 ----> 2 bq.Query('SELECT * FROM [cloud-datalab-samples:httplogs.logs_20140615] LIMIT 3').results()

/usr/local/lib/python2.7/dist-packages/gcp/bigquery/_query.pyc 结果(self,use_cache) 130 """ 131 如果不是 use_cache 或(self._results 为 None): --> 132 self.execute(use_cache=use_cache) 第133章 134

/usr/local/lib/python2.7/dist-packages/gcp/bigquery/_query.pyc 在执行(self,table_name,table_mode,use_cache,priority,allow_large_results) 第343章 第344章 --> 345 优先级=优先级,allow_large_results=allow_large_results) 第346章 第347章

/usr/local/lib/python2.7/dist-packages/gcp/bigquery/_query.pyc in execute_async(self, table_name, table_mode, use_cache, priority, allow_large_results) 第307章 308 例外为 e: --> 309 提高 e 310 如果 'jobReference' 不在 query_result 中: 311引发异常('意外的查询响应。')

异常:发送 HTTP 请求失败。 一步一步,我找到了抛出异常的地方: 如果标题为无: 标头 =

headers['user-agent'] = 'GoogleCloudDataLab/1.0'
# Add querystring to the URL if there are any arguments.
if args is not None:
  qs = urllib.urlencode(args)
  url = url + '?' + qs

# Setup method to POST if unspecified, and appropriate request headers
# if there is data to be sent within the request.
if data is not None:
  if method is None:
    method = 'POST'

  if data != '':
    # If there is a content type specified, use it (and the data) as-is.
    # Otherwise, assume JSON, and serialize the data object.
    if 'Content-Type' not in headers:
      data = json.dumps(data)
      headers['Content-Type'] = 'application/json'
  headers['Content-Length'] = str(len(data))
else:
  if method == 'POST':
    headers['Content-Length'] = '0'

# If the method is still unset, i.e. it was unspecified, and there
# was no data to be POSTed, then default to GET request.
if method is None:
  method = 'GET'

# Create an Http object to issue requests. Associate the credentials
# with it if specified to perform authorization.
#
# TODO(nikhilko):
# SSL cert validation seemingly fails, and workarounds are not amenable
# to implementing in library code. So configure the Http object to skip
# doing so, in the interim.
http = httplib2.Http()
http.disable_ssl_certificate_validation = True
if credentials is not None:
  http = credentials.authorize(http)

try:
  response, content = http.request(url,method=method,body=data,headers=headers)
  if 200 <= response.status < 300:
    if raw_response:
      return content
    return json.loads(content)
  else:
    raise RequestException(response.status, content)
except ValueError:
  raise Exception('Failed to process HTTP response.')
except httplib2.HttpLib2Error:
  raise Exception('Failed to send HTTP request.')

不知道是我的配置错误还是云数据实验室不支持本地部署和运行。也就是说,我们无法在本地数据实验室服务器上运行笔记本中的代码。 请给我一些想法。这个问题困扰了我一个星期!谢谢!

【问题讨论】:

【参考方案1】:

如果您希望在本地运行 Datalab 容器,而不是在 Google Cloud 中运行,也可以按照此处所述: https://github.com/GoogleCloudPlatform/datalab/wiki/Build-and-Run

但是,这是用于构建/更改 Datalab 代码的开发人员设置,目前不适合希望将 Datalab 用作工具的数据科学家/开发人员。 IE。与仅将 Datalab 部署到支持计费的云项目相比,它的设置更加复杂。即使使用本地运行的容器,您也可能希望有一个 Google Cloud 项目来运行 BigQuery 查询等

【讨论】:

【参考方案2】:

如果您的项目未启用结算功能,则您无法针对 BigQuery 运行查询,这看起来就是您正在尝试做的事情。

【讨论】:

【参考方案3】:

按照标题为 Run Cloud Datalab locally 的快速入门指南中的步骤,在本地运行 datalab,而无需设置 datalab 开发环境。

【讨论】:

以上是关于如何在我的本地 linux 服务器上运行 google-cloud-datalab?的主要内容,如果未能解决你的问题,请参考以下文章

如何让这个 CI php 应用程序在我的本地机器上运行

Google 富文本编辑器演示未在本地主机上运行

如何在我自己的本地 PHP 服务器上造成拒绝服务?

如何在 aws ec2(linux 实例)上部署 Next js

在我的本地 SQL Server 2014 上,它在远程服务器上运行良好我得到了这个

$_SESSION 变量没有保存在托管服务器上,但可以在我的本地主机上完美运行