大数据

一.安装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 ,追加


    phoenix.query.timeoutMs
    36000000

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注意维护权限
五、win安装redis

你可能感兴趣的:(大数据)