大数据

一.安装hadoop

1.参考1
2.参考2
3.参照3
4.要点:安装ssh、修改主机名

二.安装spark

三.CM安装CDH

1.CM下载地址
2.CDH下载地址
3.参考

1.参考1
2.参考2
3.参考3_图形配置
4.参考4_图形配置
5.关闭透明大页

4.rpm包下载
5.遇到未连接到Event Server和Host Monitor问题可以通过添加Cloudera Management Service解决
6、配置ntp

1.更改/etc/sysconfig/ntpd内容为

OPTIONS="-g -x"   #平滑同步
SYNC_HWCLOCK=yes #更改bios时间

7、httpd更改/var/www/html目录需要把/etc/httpd/conf/httpd.conf所有该值替换为自定义路径
8、禁用virbr0,需重启
9、手动安装完agent可以选管理主机,不选新建
10、启用oozie web console

1.ext2.2可以去oozie官网下载
2.需要在cm oozie的配置中启用web console,需要重启oozie

11、在/etc/profile中追加export HADOOP_USER_NAME=hdfs,使spark
12、hadoop配置文件路径/etc/hadoop/conf
13、yarn结束spark任务:yarn application -kill ${application_id}
14.使用dbeaver ce版连接hive
15.sqoop连接数据库,需要将jdbc driver jar拷贝到/opt/cloudera/parcels/CDH/lib/sqoop/lib下
16.以hdfs用户登录hive可以规避hdfs文件夹权限问题
17.sqoop

1.sqoop --query 后sql用双引号使用\$CONDITIONS,单引号使用$CONDITIONS
2.sqoop --options-file文件格式为通换行替换空格

import
--connect
jdbc:mysql://${ip}:3306/${database}
--username
${username}
--password
${password}
--query
'${sql} where $CONDITIONS'
--split-by
${mysql_primary_key}
--hive-import
--create-hive-table
--hive-table
${database}.{table}
--null-string
'\\N'
--null-non-string
'\\N'
-m
${node_num}
--target-dir
${hdfs_not_exists_tmp_path}

18、hive使用spark进行计算

set hive.execution.engine=spark;
set spark.executor.cores=4;
set spark.executor.memory=2g;

19.impala不能查询orc表,比hive上运行spark快
20、cdh中hue集成mysql,在hue_safety_valve.ini中追加以下配置

[librdbms]
  [[databases]]
    [[[mysql]]]
      nice_name="My SQL DB"
      engine=mysql
      host=${host}
      port=3306
      user=${user}
      password=${password}

[desktop]
app_blacklist=

[notebook]
  show_notebooks=true
    [[[hive]]]
      name=Hive
      interface=hiveserver2
    [[[impala]]]
      name=Impala
      interface=hiveserver2
    [[[spark]]]
      name=Scala
      interface=livy
    [[[pyspark]]]
      name=PySpark
      interface=livy
    [[[r]]]
      name=R
      interface=livy
    [[[jar]]]
      name=Spark Submit Jar
      interface=livy-batch
    [[[py]]]
      name=Spark Submit Python
      interface=livy-batch
    [[[text]]]
      name=Text
      interface=text
    [[[markdown]]]
      name=Markdown
      interface=text
    [[[mysql]]]
      name = MySQL
      interface=rdbms
    [[[sqlite]]]
      name = SQLite
      interface=rdbms
    [[[postgresql]]]
      name = PostgreSQL
      interface=rdbms
    [[[oracle]]]
      name = Oracle
      interface=rdbms
    [[[solr]]]
      name = Solr SQL
      interface=solr
    [[[pig]]]
      name=Pig
      interface=oozie
    [[[java]]]
      name=Java
      interface=oozie
    [[[spark2]]]
      name=Spark
      interface=oozie
    [[[mapreduce]]]
      name=MapReduce
      interface=oozie
    [[[sqoop1]]]
      name=Sqoop1
      interface=oozie
    [[[distcp]]]
      name=Distcp
      interface=oozie
    [[[shell]]]
      name=Shell
      interface=oozie

21、hue中mysql查询不支持中文解决方法,更改文件/opt/cloudera/parcels/CDH-6.3.0-1.cdh6.3.0.p0.1279813/lib/hue/desktop/libs/librdbms/src/librdbms/server/mysql_lib.py


  def execute_statement(self, statement):
    cursor = self.connection.cursor()
    cursor.execute('SET NAMES utf8;')
    cursor.execute('SET CHARACTER SET utf8;')
    cursor.execute('SET character_set_connection=utf8;')
    cursor.execute(statement)
    self.connection.commit()
  def __init__(self, *args, **kwargs):
    super(MySQLClient, self).__init__(*args, **kwargs)
    self.connection = Database.connect(**self._conn_params)
    self.connection.set_character_set('utf8')

22、更改hue和oozie时区
23、impala-shell需要连接到slave节点(使用-i参数,端口为21000),或者在slave节点运行
24、impala-shell -f只能读取本地文件,可以将文件存储到hdfs,通过shell下载到执行impala的机器本地(windows上传linux注意文件格式)

FILE_NAME='test.sql'
DOWNLOAD_FILE_PATH='/tmp/'
export PYTHON_EGG_CACHE=./myeggs
hdfs dfs -copyToLocal ${HDFS_FILE_PATH}${FILE_NAME} ${DOWNLOAD_FILE_PATH} 
impala-shell -f ${DOWNLOAD_FILE_PATH}${FILE_NAME}
rm -rf ${DOWNLOAD_FILE_PATH}${FILE_NAME} 

25、可以通过yarn job的history查看错误日志
26、hue执行sqoop需要将mysql驱动上传到/user/oozie/share/lib/lib_20191017143957/sqoop/下并更改owner为oozie,执行时注意看stderr(oozie输出日志不详细,而且hue中sqoop命令与命令行有差异,建议都使用shell)

#hue sqoop
export --connect jdbc:mysql://X.X.X.X:3306/x?useSSL=false --username x --password x --table x --export-dir /user/hive/warehouse/x --input-fields-terminated-by "\01" -m 3 --input-null-string "\\N" --input-null-non-string "\\N"
#command line sqoop
sqoop export --connect jdbc:mysql://X.X.X.X:3306/x?useSSL=false --username x --password x --table x --export-dir /user/hive/warehouse/x --input-fields-terminated-by "\01" -m 3 --input-null-string "\\\\N" --input-null-non-string "\\\\N"
#sqoop import(如m指定2,则会插入2条相同数据)
export HADOOP_USER_NAME=hdfs
sqoop import --connect jdbc:mysql://X.X.X.X:3306/x --username x--password x--query "select * from t where \$CONDITIONS" --split-by x --hive-import --hive-table x.x --null-string "\\\\N" --null-non-string "\\\\N" -m 1 --target-dir /poc/tt_ro

27、hdfs开启HA后配置hue使用httpfs

1、参照1
2、参照2
3、通过hdfs->操作->添加角色实例添加httpfs,并通过hdfs->实例启动

28、关闭交换内存
29、hue连接hbase
30、机器时间不一致可以导致hbase启动失败
31、cdh安装phoenix

1、hue连接phoenix

1、启动queryserver使用queryserver.py
2、hue中显示phoenix建表
3.异步索引表名需大写(phoenix bug
4、启动命名空间
1、同时需更改phoenix的bin目录下的hbase-site.xml,如queryserver已启动需重启才能是hue中editor生效
2、如使用dbeaver,则需右键添加这2项值到连接属性

2、建立异步索引(未成功,创建时报ha无需指定端口错误)

1、先见hbase同名view或者table(drop时同时删除hbase内容)
2、创建索引CREATE INDEX x ON x.x(x.x) async
3、在phoenix安装机器配置/etc/profile,export HBASE_CLASSPATH_PREFIX=/mnt/software/phoenix/phoenix-5.0.0-alpha-HBase-2.0/commons-cli-1.4.jar
4、运行/opt/cloudera/parcels/CDH/bin/hbase org.apache.phoenix.mapreduce.index.IndexTool --schema x --index-table x --data-table x --output-path /x

3、更改NameNode Service RPC Port

1、第5步没找到(cdh文档也一般,还总404),可以参考

4、创建同步索引(10分钟1000万条)

1、在cdhhbase-site.xml 的 HBase 服务高级配置代码段(安全阀)hbase-site.xml 的 HBase 客户端高级配置代码段(安全阀)配置phoenix.query.timeoutMs为36000000
2、同时更改phoenix的bin目录下的hbase-site.xml ,追加

<property>
    <name>phoenix.query.timeoutMs</name>
    <value>36000000</value>
</property>

32、hbase使用solr索引

1、索引创建后的插入的数据才会生效
2、solr中没有schema.xml更改managed-schema即可
3、field的required="true"则新插入数据必须含有该字段才能被solr查询出来
4、更新配置
5、IKAnalyzer配置
6、solrctl collection和reload需要操作solr admin ui
7、可以在hue的索引中看到创建的索引和内容
8.dbeaver连接solr urljdbc:solr://x.x.x:2181/solr?collection=x,sql中中文需转成utf8编码(如\u64cd)

33、Livy

1、编译生成CDH parcel
2、CDH安装parcel
3、数据分析ETL KNIME
4、hue配置livy
5、curl访问livy

1、参考1
2、参考2

6、livy ui
7、很遗憾在cdh6.3上没能通过parcel形式安装成功,最后直接启动的livy官网zip包,配置的hue,无法通过cm管理

1、cloudera版livy 0.2.0安装后无法使用,可能是版本不匹配;0.3.0编译失败,未深入解决编译问题;编译时最好都跳过test
2、knime版livy 0.5.0安装后无法启动,一直报livy-server找不到,export LIVY_HOME也不行,无法直接改cm启动livy shell,因为每次都生成新的,未深入研究源文件在哪(可以试下给/usr/lib/livy做个软链接到clouldera的livy下)
3、通过cm-livy-scripts编译github版livy,期间解决了N多编译问题。包括maven wget插件无法下载spark_hadoop包(在target下手动下载),python2.7 model缺失和版本问题(建议有条件的同学安装anaconda,在python3虚拟环境下编译)。最终安装后(安装时需要解决logs目录问题,会读取$LIVY_LOG_DIR环境变量)最新版和0.6.0在hue中使用时都报repl jar未找到,估计还是spark版本问题

四、elasticsearch镜像

1、elasticsearch watcher(收费)配置exchange邮件提醒

xpack.notification.email.account: 
    local: 
        profile: outlook
        email_defaults:
            from: ${邮箱}
        smtp: 
            auth: true
            host: ${exchange server}
            port: 587
            user: ${域\邮箱前缀}
            starttls.enable: true
            ssl.trust: "*"

secure_password需使用keystore工具add到文件,无需在elasticsearch.yml配置

2、logstash intput中添加type字段,output中可使用if对type进行判断

input {
  redis {
    host => "127.0.0.1"
    port => "6379"
    db => "0"
    password => "redis"
    key => "local_test"
    data_type => "list"
    type => "local_test"
  }
  redis {
    host => "127.0.0.1"
    port => "6379"
    db => "0"
    password => "redis"
    key => "heartbeat"
    data_type => "list"
    type => "heartbeat"
  }   
}

filter{
    if [error]{
        drop{}
    }
}

output {
    if [type] == "local_test" {
          elasticsearch {
            index => "local_test-%{+YYYY.MM.dd}"
            hosts => "https://localhost:9200"
            manage_template => false
            user => logstash_writer
            password => logstash_writer
            ssl => true
            cacert => "D:\\01_software\\logstash-7.8.0\\elasticsearch-ca.pem"
          }
    }
    if [type] == "heartbeat"{
          elasticsearch {
            index => "heartbeat-%{+YYYY.MM.dd}"
            hosts => "https://localhost:9200"
            manage_template => false
            user => logstash_writer
            password => logstash_writer
            ssl => true
            cacert => "D:\\01_software\\logstash-7.8.0\\elasticsearch-ca.pem"
          } 
    }
}

3、若果logstash设置了用户,添加新index注意维护权限
4、elastalert 更改rule yaml会立即生效,不用重启;启动命令python -m elastalert.elastalert,yaml rule folder在config.xml中指定,可以添加--es_debug_trace log.log查看查询es的请求,elastalert-test-rule如果有匹配会打印匹配记录
5、kibana的Visualize组建可以更改后另存为

图片.png

五、win安装redis
六、kettle连接clickhouse

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,547评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,399评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,428评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,599评论 1 274
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,612评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,577评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,941评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,603评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,852评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,605评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,693评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,375评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,955评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,936评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,172评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,970评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,414评论 2 342

推荐阅读更多精彩内容