CentOS 6.8 安装 Nginx
提前安装:
1 | # sudo yum install yum-utils |
一般情况下这个工具系统已经安装。
导出示例:
1 | $ mongoexport --host 192.168.72.60 --db realtime_statistic_backup --collection all_play_stats_summary --fields "_id.timestamp,total_uv" --type csv --out uv.csv --sort "{'_id.timestamp': -1}" --query "{'_id.province_id':'sc','_id.city_id':'all', '_id.display_name': 'all'}" |
--uri
方式连接MongoDB--fields
指定要导出的field,如果是嵌套的json,可以通过点(.)操作指定内层的field在使用Jenkins编译Hadoop3.1.2时报错信息如下:
1 | [INFO] --- hadoop-maven-plugins:3.1.2:protoc (compile-protoc) @ hadoop-common --- |
原因是Jenkins中找不到protoc命令。解决方法是在Jenkins中配置环境变量PATH指定protoc路径。
使用以下命令安装指定版本的包:
1 | # pip install pyspark==2.3.3 |
Jenkins重启后发现Maven的项目都没有正常加载。检查Jenkins的启动日志发现以下错误信息:
java.io.IOException: Unable to read /home/jenkins/.jenkins/jobs/test-maven/config.xml
at hudson.XmlFile.read(XmlFile.java:149)
at hudson.model.Items.load(Items.java:371)
at jenkins.model.Jenkins$14.run(Jenkins.java:3128)
at org.jvnet.hudson.reactor.TaskGraphBuilder$TaskImpl.run(TaskGraphBuilder.java:169)
at org.jvnet.hudson.reactor.Reactor.runTask(Reactor.java:296)
at jenkins.model.Jenkins$5.runTask(Jenkins.java:1069)
at org.jvnet.hudson.reactor.Reactor$2.run(Reactor.java:214)
at org.jvnet.hudson.reactor.Reactor$Node.run(Reactor.java:117)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: com.thoughtworks.xstream.mapper.CannotResolveClassException: maven2-moduleset
at com.thoughtworks.xstream.mapper.DefaultMapper.realClass(DefaultMapper.java:79)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.DynamicProxyMapper.realClass(DynamicProxyMapper.java:55)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
at com.thoughtworks.xstream.mapper.PackageAliasingMapper.realClass(PackageAliasingMapper.java:88)
at com.thoughtworks.xstream.mapper.MapperWrapper.realClass(MapperWrapper.java:30)
将Maven Integration plugin重装并重启Jenkins后恢复正常。
在大数据Hive数据仓库的开发中,主要是shell + HQL的脚本开发。脚本的测试需要放到适当的大数据环境中进行。如果大家共用GitLab项目上的同一个Branch进行测试需要代码频繁合并,影响效率。我的思路是每个Developer在自己的Branch开发并经过测试后发起Merge Request。
在我的开发场景中GitLab在内网中通过端口映射后允许从外网访问,GitLab中的IP都是内网的,GitLab上的项目链接地址都是内网的,如(ssh://git@192.168.1.10:50022/test/test.git)。并且我的Jenkins也是在内网中的,所以需要通过一层代理接收外部的REST API请求。这一点给最终的实现带来一些难点。
Jenkins安装插件时报网络不通的错误,根据错误信息看是连接https://www.google.com网络不通。解决这个问题的方法是修改“Update Site”的URL地址,将默认地址由https改为http。
“Update Site”配置项位置在“插件管理->Advanced”中,修改后如下图:
Python虚拟环境主要是为了解决Python多版本及模块间版本兼容的问题。创建虚拟环境的方法很简单,使用下面的命令即可:
1 | python3 -m venv PySparkEnv |
PySparkEnv即虚拟环境的主目录。如果要启用这个虚拟环境的话,使用以下命令: