Hadoop生态系统搭建(hadoop hive hbase zookeeper oozie sqoop)

2019-03-28 13:58|来源: 网络

详细过程参见官方文档,这里只介绍常见的一些问题:

1、首先是版本的选择,一般选择cloudera 的cdh版,注意相互之间的兼容性,否则出现莫名其妙的问题都不知道怎么解决。

2、配置ssh五密码访问时要注意,.ssh目录的权限问题,跟各个开发包一样,各节点必须一致,否则会出现启动Hadoop时让手动输密码。

3、在配置conf下文件时要注意,某些属性的值必须是hadoop程序有写权限的目录,比如:hadoop.tmp.dir

4、Hadoop-env.sh中要配置JAVA_HOME,不管profile或.bash_profile有没配置

5、hive的配置只要关联正确hadoop的namenode即可,元数据库可用默认的derby,也可通过修改配置实用mysql

6、hbase的master最好不用作regionserver。

7、zk的连接数要改的大一点,默认是30个,并且尽量与hadoop node节点分开,因为hadoop的暂时负担过重等异常会严重影响zk与hbase的正常工作,比如导致zk长时间选举不出leader,hbase 各节点会相继挂掉。

8、安装oozie依赖ext包,因为console会用到这个框架,console的时间默认显示GMT格式,看着很别扭,但不知道怎么改成 GMT +8 北京时间,who can tell me?

9、sqoop解压后,要配置SQOOP_HOME,hdfs需要跟那种类型的RDB交互就下相应的JDBC驱动,放入lib下。

10、hadoop,hbase,需要在各自的集群中每个节点都安装,zookeeper根据需要安装,一般奇数个,数量越多,选举负担中,但数量越少,系统稳定性下降,使用时跟据实际情况选择方案,hive,oozie,sqoop只需要在需要执行客户端程序的机器上安装,只要能连上hadoop。

相关问答

更多
  • riak 华师大的吧- - 下面来简单介绍各个组件的作用: HDFS(Hadoop distribute file system)——Hadoop生态系统的基础组件Hadoop分布式文件系统。它是其他一些工具的基础HDFS的机制是将大量数据分布到计算机集群上,数据一次写入,但可以多次读取用于分析。HDFS让Hadoop可以最大化利用磁盘。 HBase—— 一个构建在HDFS之上的面向列的NoSql数据库,HBase用于对打量数据进行快速读取/写入。HBase将Zookeeper用于自身的管理,以保证其所有组 ...
  • 优先学习hadoop,总体架构先了解清楚,有助于以后细节的具体学习。刘鹏的基本书写的很入门,推荐看一看。炼数成金的hadoop视频教程很不错,值得入门看看。然后就可以学习hadoop权威指南。hadoop源码分析,这个地方有张鑫写的《深入云计算:hadoop源代码分析》,和《hadoop源码分析》,之后就可以学习hive和pig,habse,zookeeper,这时候你如果有一定的数据库知识,会简单一点,如果不知道,那可以去了解一下数据库的知识。等你把这些学会了,新的项目,我想hadoop源码都会的人,应该 ...
  • 这看起来像是一个典型的Sqoop导入Hive作业。 因此,似乎Sqoop已经成功地将数据导入到HDFS中,并且无法将该数据加载到Hive中。 这里有一些关于发生了什么的背景...... Oozie启动一个单独的作业(将在hadoop集群中的任何节点上执行)来运行Sqoop命令。 Sqoop命令启动一个单独的作业来将数据加载到HDFS中。 然后,在Sqoop作业结束时,sqoop运行配置单元脚本将该数据加载到Hive中。 由于这在理论上是从Hadoop集群中的任何节点运行的,因此需要在每个节点上提供hive ...
  • 这个线程帮助我解决了这个问题 https://community.cloudera.com/t5/Batch-Processing-and-Workflow/Oozie-sqoop-action-in-CDH-5-2-Heart-beat-issue/td-p/22181/page/2 在遇到这个错误之后,我陷入了“未能发布flume”的问题,并且这个线程帮助我解决了这个问题 oozie Sqoop操作无法将数据导入配置单元 this thread helped me to resolve the issu ...
  • 对于独立模式,只需按照此HBase指南中提供的步骤操作: http : //hbase.apache.org/book.html#quickstart HBase具有独立模式,可以让初学者轻松上手。 在独立模式下,hbase,hdfs和zk在单个JVM进程中运行。 For standalone mode, just follow the steps provided in this HBase guide:http://hbase.apache.org/book.html#quickstart HBase ...
  • 您必须为启动命令的用户创建一个家庭用户(在HDFS上) 当您启动sqoop命令时,Hadoop将使用HDFS用户映射本地用户,尝试找到/ user / $ {USER.NAME}的主页 由于看起来Hadoop超级用户是hdfs所以你需要这样做: $ su - hdfs 'hadoop fs -mkdir /user/sqoop' $ su - hdfs 'hadoop fs -chown sqoop:hdfs /user/sqoop ' 然后以用户sqoop启动sqoop 另一种方法是将hive'stag ...
  • 你是否将hive-site.xml复制到HDFS?或者你可以使用--target-dir将表导入hdfs路径并将hive表的位置设置为指向该路径 did you copy the hive-site.xml to HDFS ?that will do or you can import the table to hdfs path using --target-dir and set the location of hive table to point that path
  • 1)在路径${nameNode}/user/${user.name}/${examplesRoot}/创建一个目录lib 2)在${nameNode}/user/${user.name}/${examplesRoot}/lib/ path中添加hive-exec jar ,然后重试 1) create a directory lib in path ${nameNode}/user/${user.name}/${examplesRoot}/ 2) add hive-exec jar in ${nameNod ...
  • 我在评论中借助@SamsonScharfrichter设法解决了这个问题。 我明确地在Oozie工作流程中传递了Metastore URL并且它有效: job --meta-connect jdbc:hsqldb:hsql://:12345/sqoop --exec myjob 似乎Oozie试图连接到本地Metastore,因为它没有sqoop-site.xml的副本,因此它不知 ...
  • 您可能希望为shell操作设置环境变量: HADOOP_USER_NAME=${wf:user()} 此外,您似乎要导入多个表,因此您可能希望在每个表的目标目录下创建一个子目录。 You might want to set the environment variable for shell action: HADOOP_USER_NAME=${wf:user()} Also, seems like you are importing multiple tables so you may want to ...