Mryqu's Notes


  • 首页

  • 搜索
close

[Hue] 清空MySQL数据库的hue.django_content_type表时遇到由于外键约束无法删除错误!

时间: 2016-08-26   |   分类: BigData     |   阅读: 286 字 ~2分钟
Hue (Hadoop User Experience)是一个使用ApacheHadoop分析数据的Web界面。它可以: 将数据加载到Hadoop 查看数据、处理数据或准备数据 分析数据、搜索数据、对数据进行可视化分析 默认Hue服务器使用嵌入式数据库SQLite存储元数据和查询信息。当我将其迁移到MySQL时,按照Cloudera - Hue Installation Guide的步骤同步数据库时后清空MySQL中的django_content_type表时遭遇下列问题: hadoop@node50064:~$ $HUE_HOME/build/env/bin/hue syncdb --noinput Syncing... Creating tables ... Creating table auth_permission Creating table auth_group_permissions Creating table auth_group Creating table auth_user_groups Creating table auth_user_user_permissions Creating table auth_user Creating table django_openid_auth_nonce Creating table django_openid_auth_association Creating table django_openid_auth_useropenid Creating table django_content_type Creating table django_session Creating table django_site Creating table django_admin_log Creating table south_migrationhistory Creating table axes_accessattempt Creating table axes_accesslog Installing custom SQL .
阅读全文 »

[Hue] 解决Filesystem root '/' should be owned by 'hdfs'

时间: 2016-08-24   |   分类: BigData     |   阅读: 18 字 ~1分钟
安装Hue后,通过about页面检查配置,有一个提示:Filesystemroot ‘/’ should be owned by ‘hdfs’ 我在hadoop集群都使用用户hadoop,并没有创建用户hdfs。解决方案是将hue.ini中的default_hdfs_superuser设置: # This should be the hadoop cluster admin default_hdfs_superuser=hadoop 重启Hue后警告解除,呵呵。

了解GSA(Google Search Appliance)

时间: 2016-08-23   |   阅读: 20 字 ~1分钟
今天的公司邮件有提及GSA,才了解了一下这个被谷歌停止研发的产品。 GSA(Google Search Appliance)是由Google公司出品的提供文件索引功能的一种机架设备,用于企业内部局域网、web服务、门户、文件共享服务、Sharepoint、数据库、内容管理系统、企业应用的实时数据(例如ERP)、基于云的系统(例如谷歌文档)的搜索。操作系统能够为CentOS,软件由谷歌出品,硬件由戴尔制造。当前GSA版本7.6,分两种型号:G100支持2千万文档,G500支持一亿文档。 2016年初谷歌向商业伙伴和客户发了一封密信:GSA在2018年后将被中止。自2016年不再进行三年牌照续期,2017年仅对已有硬件客户进行一年牌照续期。在此期间,谷歌将继续修复问题、提供安全更新和技术支持。 一点感言:以前是一直很酸爽,用不到后是心里狂奔“呵呵呵”,这真是一个好产品。 参考 Google Search Appliance WIKI: Google Search Appliance" Forbes: So Long Google Search Appliance

搞清楚CONSUL_PORT_8500_TCP_ADDR

时间: 2016-08-22   |   分类: Tool   Consul     |   阅读: 223 字 ~2分钟
Consul集群里既有Server也有Client。那除了Consul serverleader,其他节点怎么加入这个Consul集群里呢?我目前看到的Docker方案是其他节点使用consul agent -join$CONSUL_PORT_8500_TCP_ADDR加入Consul集群的。那么CONSUL_PORT_8500_TCP_ADDR是怎么设置到其他容器节点的? root@httpd:/# env CONSUL_PORT_8300_TCP_PORT=8300 CONSUL_PORT_53_TCP_PORT=53 VAGRANT_CONSUL_1_PORT_8301_UDP_ADDR=172.17.0.2 HOSTNAME=httpd CONSUL_PORT_8301_TCP_PROTO=tcp VAGRANT_CONSUL_1_PORT_8302_TCP_PORT=8302 VAGRANT_CONSUL_1_PORT_53_UDP_PROTO=udp CONSUL_1_PORT_8300_TCP_ADDR=172.17.0.2 VAGRANT_CONSUL_1_PORT_8301_TCP_ADDR=172.17.0.2 CONSUL_1_PORT_8400_TCP=tcp://172.17.0.2:8400 CONSUL_1_PORT_53_UDP=udp://172.17.0.2:53 CONSUL_1_PORT_8300_TCP_PROTO=tcp APACHE_RUN_USER=www-data VAGRANT_CONSUL_1_PORT_8301_TCP_PROTO=tcp CONSUL_PORT_8301_UDP=udp://172.17.0.2:8301 VAGRANT_CONSUL_1_PORT_8400_TCP_ADDR=172.17.0.2 CONSUL_PORT_53_TCP_ADDR=172.17.0.2 VAGRANT_CONSUL_1_PORT_8301_UDP_PORT=8301 CONSUL_1_PORT_53_TCP=tcp://172.17.0.2:53 CONSUL_1_PORT_8300_TCP_PORT_START=8300 CONSUL_PORT_53_TCP_PROTO=tcp VAGRANT_CONSUL_1_PORT_8302_TCP=tcp://172.17.0.2:8302 VAGRANT_CONSUL_1_PORT_8300_UDP_END=udp://172.17.0.2:8302 CONSUL_1_NAME=/vagrant_httpd_1/consul_1 CONSUL_1_PORT_8300_UDP_PORT_END=8302 VAGRANT_CONSUL_1_PORT_53_TCP_PROTO=tcp CONSUL_1_PORT_8500_TCP=tcp://172.17.0.2:8500 CONSUL_PORT_53_UDP_ADDR=172.17.0.2 CONSUL_PORT_8300_TCP_PORT_START=8300 CONSUL_1_PORT_53_TCP_PORT=53 CONSUL_1_PORT_8302_UDP_PORT=8302 VAGRANT_CONSUL_1_PORT_8400_TCP=tcp://172.17.0.2:8400 CONSUL_1_PORT_8300_UDP_END=udp://172.17.0.2:8302 CONSUL_PORT_8302_UDP_PORT=8302 CONSUL_PORT_8302_TCP_ADDR=172.17.0.2 VAGRANT_CONSUL_1_PORT_8301_UDP_PROTO=udp CONSUL_1_PORT_8302_TCP_PORT=8302 CONSUL_1_PORT_8301_TCP=tcp://172.17.0.2:8301 CONSUL_ENV_CONSUL_OPTIONS=-bootstrap -client 0.0.0.0 VAGRANT_CONSUL_1_PORT_8302_UDP_PORT=8302 CONSUL_1_PORT_8302_UDP=udp://172.17.0.2:8302 CONSUL_PORT_53_UDP_PORT=53 VAGRANT_CONSUL_1_PORT_8302_UDP_PROTO=udp VAGRANT_CONSUL_1_PORT_8300_TCP_START=tcp://172.17.0.2:8300 CONSUL_PORT_8302_UDP_ADDR=172.17.0.2 CONSUL_PORT_8300_TCP=tcp://172.17.0.2:8300 CONSUL_1_PORT_8302_TCP_ADDR=172.17.0.2 CONSUL_1_PORT_53_TCP_PROTO=tcp VAGRANT_CONSUL_1_PORT_53_TCP=tcp://172.17.0.2:53 CONSUL_1_PORT_8302_UDP_PROTO=udp VAGRANT_CONSUL_1_PORT_8300_TCP=tcp://172.17.0.2:8300 CONSUL_1_PORT_8301_TCP_PROTO=tcp CONSUL_PORT_8400_TCP=tcp://172.17.0.2:8400 VAGRANT_CONSUL_1_PORT_8500_TCP_PROTO=tcp CONSUL_PORT_8301_TCP_PORT=8301 VAGRANT_CONSUL_1_PORT_53_UDP_PORT=53 VAGRANT_CONSUL_1_PORT_8300_TCP_PROTO=tcp CONSUL_1_PORT_8301_UDP_ADDR=172.17.0.2 CONSUL_1_PORT_8300_TCP_START=tcp://172.17.0.2:8300 APACHE_LOG_DIR=/var/log/apache2 CONSUL_PORT_53_TCP=tcp://172.17.0.2:53 VAGRANT_CONSUL_1_PORT_8301_TCP_PORT=8301 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin CONSUL_PORT_8500_TCP_ADDR=172.
阅读全文 »

Hello UnRAVL

时间: 2016-08-18   |   分类: Service+JavaEE     |   阅读: 387 字 ~2分钟
UnRAVL介绍 UnRAVL(Uniform REST API ValidationLanguage)是用于验证REST应用编程接口的JSON领域特定语言。UnRAVL由SAS架构师DavidBiesack实现,并作为SAS开源软件在GitHub上发布。 UnRAVL脚本包含一个REST API调用的JSON描述: HTTP方法(GET、POST、PUT、DELETE、HEAD、PATCH) URI (可选的)HTTP头 (可选的)请求消息体 (可选的)认证 对于每个API调用,一个UnRAVL脚本可以包含用于验证结果的一或多个断言。某些断言可以表达为前置条件,即在进行API调用之前必须为真。下列内容可以断言: 结果消息体匹配期望的JSON、文本或其他数据 存在带有特定值的特定头 HTTP状态码为特定值或在特定集合内 响应消息体匹配基准(benchmark) 通过Groovy表达式测试响应或环境变量中的元素为真 一个环境变量已赋值 UnRAVL也支持从RESTAPI调用结果中抽取数据、与环境变量进行数据绑定并用于之后的API调用验证。例如,将一个创建资源的POST 调用响应的Location 头进行保存,并将此URL用于后继GET 、PUT 、DELETE 调用。 模板功能提供了可重用的API验证构建能力。 UnRAVL示例 build.gradle buildscript { repositories { mavenCentral() } } apply plugin: 'java' apply plugin: 'eclipse' apply plugin: 'idea' jar { baseName = 'HelloUnRAVL' version = '0.1.0' } repositories { mavenCentral() } sourceCompatibility = 1.7 targetCompatibility = 1.7 ext { jacksonVersion = "2.5.+" groovyVersion = "2.
阅读全文 »

获取Facebook User Token

时间: 2016-08-09   |   分类: DataBuilder     |   阅读: 94 字 ~1分钟
使用Facebook Graph API搜索主页数据,可以用App Token也可以用User Token。 获取Facebook App Token一贴中已经介绍了如何获取Facebook App Token,这里就介绍一下如何获取UserToken。 参考3 Facebook Login - Advance - Manually Build a Login Flow给出了如何构建一个signURL,RestFB的getLoginDialogUrl方法就实现了这样的功能。redirectUri一开始直接想用带外认证urn:ietf:wg:oauth:2.0:oob,可是Facebook不认呀。 Facebook Login - Advance - Manually Build a Login Flow已经提到了:对于桌面应用,redirectUri必须是https://www.facebook.com/connect/login_success.html 。 获取Facebook User Token步骤 生成signURL 生成signURL并进行Get请求: curl "https://www.facebook.com/dialog/oauth?client_id={appId}&redirect_uri=https://www.facebook.com/connect/login_success.html&response_type=token&scope=public_profile" 可以从返回的页面中获取登录表单: 认证 使用自己的Facebook账户和密码填充上一表单,使用Post请求进行认证: curl -X POST "{form-action}" -H "Content-Type: application/x-www-form-urlencoded" --data "lsd={lsd_value}&api_key={api_key_value}&cancel_url={cancel_rul_value}&isprivate={isprivate=_value}&legacy_return={legacy_return_value}&profile_selector_ids={profile_selector_ids_value}&return_session={return_session_value}&skip_api_login={skip_api_login_value}&signed_next={skip_api_login_value}&trynum={trynum_value}&timezone={timezone_value}&lgndim={lgndim_value}&lgnrnd={lgnrnd_value}&lgnjs={lgnjs_value}&email={your_facebook_account}&pass={your_facebook_password}&login={login_value}&persistent={persistent_value}&default_persistent={default_persistent_value}" 获取User Token Facebook通过认证后返回302响应,其Location头是下面这个样子的,很好获取(也可以参考一下RestFB的fromQueryString函数实现)。 https://www.facebook.com/connect/login_success.html#access_token={userToken}&expires_in={expire} 参考 Facebook Login - Access Tokens Facebook Login - Access Tokens - App Access Tokens Facebook Login - Advance - Manually Build a Login Flow RestFB: GET LOGIN DIALOG URL RestFB: EXTENDING AN ACCESS TOKEN Facebook Dialog OAuth Tutorial

[RabbitMQ] RabbitMQ笔记

时间: 2016-08-06   |   分类: Service+JavaEE     |   阅读: 732 字 ~4分钟
RabbitMQ介绍 RabbitMQ是基于高级消息队列协议的消息代理软件。RabiitMQ服务器由Erlang语言开发,客户端支持多种主流编程语言。 RabbitMQ由LShift和CohesiveFT合营公司Rabbit技术有限公司开发,在2010年4月被SpringSource收购,2013年5月归入Pivotal软件。 RabbitMQ项目包括: RabbitMQ交换服务器自身 用于HTTP、流文本定向消息协议(STOMP)和消息队列遥测传输协议(MQTT)的网关 Java、.NET Framework和Erlang语言的AMQP客户端库 支持定制插件的插件平台,内建插件集合为: Shovel插件,负责从一个消息代理(broker)向另一个移动/复制消息。 Federation插件,在消息代理之间有效共享消息(基于exchange这一级) Management插件,监控和管理消息代理 STOMP插件,提供STOMP协议支持 MQTT插件,提供MQTT协议支持 LDAP插件,RabbitMQ通过外部LDAP服务器进行认证和授权 在Widnows平台安装RabbitMQ 根据http://www.rabbitmq.com/install-windows.html安装Erlang和RabbitMQ服务器,运行RabbitMQ安装程序时需要选择“Runas Administrator”,否则事后需要执行下列命令修正.erlang.cookie位置错误。 copy /Y %SystemRoot%\.erlang.cookie %HOMEDRIVE%%HOMEPATH% 设置环境变量(及安装并启动RabbitMQ服务) SET ERLANG_HOME=C:\tools\erl8.0 SET RABBITMQ_SERVER=C:\tools\RabbitMQ_Server\rabbitmq_server-3.6.5 SET RABBITMQ_BASE=C:\rabbitmq-data ECHO []. > C:\rabbitmq-data\rabbitmq.config %RABBITMQ_SERVER%\sbin\rabbitmq-service.bat install %RABBITMQ_SERVER%\sbin\rabbitmq-service.bat start 安装管理插件 rabbitmq-management插件提供用于管理和监控RabbitMQ服务器的基于HTTP的API,以及基于浏览器的界面和一个控制台工具rabbitmqadmin。功能包括: 声明、列举和删除exchange、queue、binding、用户、虚拟主机和权限。 监控队列长度、消息总速率和每通道速率、连接数据速率等。 发送和接受消息。 监控Erlang进程、文件描述符和内存使用。 导出/导入对象定义到JSON格式 强制关闭连接、清除队列。 重启RabbitMQ后登录http://guest:guest@localhost:15672/ ,即可见到管理页面。 rabbitmqctl 通过rabbitmqctl创建一个管理员用户admin和一个对虚拟主机有读写权限的普通用户mryqu: 自建管理员用户admin的默认用户guest的区别在于:guest仅能本机访问RabbitMQ,除非在rabbitmq.config增加loopback_users设置。 使用HTTP管理API 将配置导出成JSON格式: curl -i -u guest:guest http://localhost:15672/api/definitions 激活其他插件 例如激活shovel插件: %RABBITMQ_SERVER%\sbin\rabbitmq-plugins.bat enable rabbitmq_shovel %RABBITMQ_SERVER%\sbin\rabbitmq-plugins.bat enable rabbitmq_shovel_management 测试RabbitMQ 使用GETTING STARTED: Messaging with RabbitMQ 中的代码即可,由于我想试验非本机访问RabbitMQ,因此添加了application.
阅读全文 »

[Spark]Spark和Hive集成

时间: 2016-08-03   |   分类: BigData     |   阅读: 317 字 ~2分钟
在前一博文[Spark] Spark2集群安装实践中安装了Spark后,发现和Hive还没有集成在一起,此外Hive自己也不好使了。 hadoop@node50064:~$hive ls: cannot access /usr/local/spark/lib/spark-assembly-*.jar: No such file or directory ................. 原来Spark assemblyjar在Spark2中已经不存在了,而Hive脚本判断系统存在Spark后仍要使用,需要将$HIVE_HOME/bin/hive中的这部分代码注释掉: # add Spark assembly jar to the classpath #if [[ -n "$SPARK_HOME" ]] #then # sparkAssemblyPath=`ls ${SPARK_HOME}/lib/spark-assembly-*.jar` # CLASSPATH="${CLASSPATH}:${sparkAssemblyPath}" #fi 至此,Hive本身工作正常。下面开始Spark和Hive集成配置工作。 Spark SQL CLI需要使用到Hive Metastore,因此需要在[Hive] 安装Hive 1.2.x的基础上继续修改$HIVE_HOME/conf/hive-site.xml: 将$HIVE_HOME/conf/hive-site.xml软连接到$SPARK_HOME/conf目录中: cd $SPARK_HOME/conf ln -s $HIVE_HOME/conf/hive-site.xml 启动Hive Metastore和HiveServer2: hive --service metastore & hive --service hiveserver2 & 下面进行验证工作: hadoop@node50064:~$ hive hive> use default; OK Time taken: 0.942 seconds hive> show tables; OK apachelog b complex_datatypes_example dummy empinfo irisdata primitive_dataytpes_example testhivedrivertable Time taken: 0.
阅读全文 »

Hive与Spark的版本搭配

时间: 2016-08-02   |   分类: BigData     |   阅读: 23 字 ~1分钟
Hive on Spark: Getting Started里面介绍了如果Hive的查询引擎选择Spark的话,Hive所需相关配置。如果用一个不兼容的Hive和Spark版本,有潜在风险,例如Spark2就没有spark-assembly-*.jar可供低版本Hive使用。 问题来了,么查找已测试的Hive和Spark版本对呢? 网上有人说看Hive代码根路径下的pom.xml。例如Hive branch-1.2中pom.xml包含spark.version为1.3.1,这说明官方在进行Hive1.2.0测试时用的Spark 1.3.1。 此外,也可借鉴C家、H家和MapR技术栈的版本搭配: CDH 5 Packaging and Tarball Information中列出了CHD5中技术栈的版本情况。 在Hortonworks Data Platform列出了HDP所用的技术栈的版本情况。 MapR Ecosystem Support Matrix中列出了MapR中技术栈的版本情况。

[Spark] Set spark.yarn.archive

时间: 2016-08-01   |   分类: BigData     |   阅读: 55 字 ~1分钟
提交Spark作业时,遇到没有设置spark.yarn.jars和spark.yarn.archive的告警: 16/08/01 05:01:19 INFO yarn.Client: Preparing resources for our AM container 16/08/01 05:01:20 WARN yarn.Client: Neither spark.yarn.jars nor spark.yarn.archive is set, falling back to uploading libraries under SPARK_HOME. 16/08/01 05:01:23 INFO yarn.Client: Uploading resource file:/tmp/spark-AA-BB-CC-DD-EE/__spark_libs__XXX.zip -> hdfs://node50064.mryqu.com:9000/user/hadoop/.sparkStaging/application_1469998883123_0001/__spark_libs__XXX.zip 解决方案: cd $SPARK_HOME zip spark-archive.zip jars/* hadoop fs -copyFromLocal spark-archive.zip echo "spark.yarn.archive=hdfs:///node50064.mryqu.com:9000/user/hadoop/spark-archive.zip" >> conf/spark-defaults.conf 如系统没有安装zip,可执行sudoapt-get install zip进行安装。 这样就不用每次上传Spark的jar文件到HDFS,YARN会找到Spark的库以用于运行作业。
9 10 11 12 13 14 15 16 17

Programmer & Architect

662 日志
27 分类
1472 标签
RSS 订阅
GitHub Twitter FB Page
© 2009 - 2023 Mryqu's Notes
Powered by - Hugo v0.120.4
Theme by - NexT
0%