혹시나 저 같은 이슈를 겪고 있는 분들을 


Hbase와 Hive를 연동할수 있는것처럼 MongoDB 를 Hive에 연동하여 사용할수 있습니다


https://github.com/mongodb/mongo-hadoop/wiki/Hive-Usage


이곳에서 라이브러리를 받아서 사용하시면, 되십니다.


mongo-hadoop-core.2.0.1.jar 

mongo-hadoop-hive-2.0.1.jar 

mongo-java-driver-3.2.1.jar




FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. org/bson/conversions/Bson 


추가적으로 다음 에러는 mongo-java-driver-3.2.1.jar 없어서 나오는 에러 입니다. 저 같은경우 제실수로 mongo-drvier를 사용해서 계속 오류가 났네요


http://rmoff.net/2016/06/15/classnotfoundexception-with-mongodb-hadoop-in-hive/




reference : 써티웨어(Certiware), http://certiware.co.kr

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
  1. test 2016.11.17 09:32 신고

    test

저작자 표시 비영리 변경 금지
신고
이 장소를 Daum지도에서 확인해보세요.
서울특별시 강남구 역삼1동
도움말 Daum 지도
크리에이티브 커먼즈 라이선스
Creative Commons License



Ambari는 Hortonworks에서 개발한 하둡 클러스터를 프로비저닝(노드 / 하둡 컴포넌트 자동 설치), 매니지먼트(HDFS, HIVE 등등을 껏다 켯다, HA 등), 모니터링(HDFS , Hive 등등등)을 위한 아파치에 공개한 오픈소스 관리 도구입니다. 


최근, 암파리 아파치 커뮤니티에서 약간의 변경이 생겨서인재 Ambari 2.2일때는  RPM, apt-get등으로 바로 받을수 있는 주소를 공개 했었는데, 지금은 Ambari를 직접 컴파일하는 방법으로 설치 방법을 공개했습니다


그렇다고, RPM, Apt-get으로 설치를 못하는것은 아닙니다. Hortonworks 공식 홈페이지 다큐멘트를 찾아보면, 바로 패키지 형태로 제공할수 잇는 링크를 제공합니다 



\2016년 10월 19일 기준 암바리 2.4.1.0이 최신버전이고(HDP 2.5) 다음주소에서 암바리 repo주소를 확인할 수 있습니다


Apache Ambari https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.4.1


Ambari Hortonworks Document http://docs.hortonworks.com/HDPDocuments/Ambari-2.4.1.0/bk_ambari-installation/content/download_the_ambari_repo.html


Hortonworks http://hortonworks.com/downloads/#data-platform

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License



자격증 미리보기라는 말이.. 좀 애매하긴 한데..

예전부터 느끼는건 공부하는것과, 시험보는것은 많이 다른것 같습니다. 공부는 말그대로 공부고 시험은, 시험준비를 위해 기출을 풀거나 해서 유형을 파악하는건데, HDPCA라는 녀석은 전혀 파악이 안되더군요. 사실 HDP를 쓰면 쓰겠지만


그런데 호튼웍스(Hortonworks) 쪽에서 AWS에서 미리 테스팅 해볼수 있는 환경을 제공합니다 


PRACTICE EXAM

Hortonworks University recommends that candidates attempt the practice exam to familiarize themselves with the exam environment and also with the types of tasks that appear on the certification exam.

.icon6.png

The practice exam is available in the cloud on Amazon Web Services (AWS)

icon6.png

You will need an AWS account to follow the instructions

icon6.png

We do not charge for the practice exam, but you do have to pay for an AWS instance, which is typically less than $1 an hour

http://ko.hortonworks.com/wp-content/uploads/2015/04/HDPCA-PracticeExamGuide.pdf   [관련 안내 파일]

기본적으로 AWS(https://aws.amazon.com/) 계정이 필요합니다.


1.EC2 선택


HDP on AWS



2. Launch Instance 선택

HDP on AWS


3. Community AMIs 선택

HDP on AWS


4. Hortonworks 검색 ,  Hortonworks HDPCAdministrator_2.3 PracticeExam_v3 - ami-11829421 선택.


HDP on AWS


5. 인스턴스 타입 선택, Next: Configure Instance Details

HDP on AWS

6. 기본설정 사용 , Next: Add Storage

HDP on AWS


7. 기본설정 사용, Next: Tag Instance

HDP on AWS


8. 인스턴스 이름 지정, Next:Configure Security Group

HDP on AWS


9. 보안 설정 (5901 포트 추가 ) review and launch

HDP on AWS



10.private 키 설정,  및 인스턴스 실행  

HDP on AWS






저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

Apache Ambari를 사용하다보면, 암바리 자체를 이용해서 하둡 클러스터를 관리할수도 있지만.

떄로는 필요한 부분에 대하여 커스터마이징하거나, 또는 관리의 편의성을 위해 별도의 앱을 만들어 쓸 수도 있습니다. 



다음은 암바리의 컴포넌트를 API를 이용해서 시작 및 중지하는 방법입니다.


curl -u USER:PASS -i -H 'X-Requested-By: ambari' -X PUT -d  '{"RequestInfo": {"context" :"Stop '"$1"' via REST"}, "Body": {"ServiceInfo": {"state": "INSTALLED"}}}' http://HOST/api/v1/clusters/CLUSTER/services/COMPONENT


curl -u USER:PASS -i -H 'X-Requested-By: ambari' -X PUT -d '{"RequestInfo": {"context" :"Start '"$1"' via REST"}, "Body": {"ServiceInfo": {"state": "STARTED"}}}'  http://HOST/api/v1/clusters/CLUSTER/services/COMPONENT



https://ambari.apache.org

https://cwiki.apache.org/confluence/display/AMBARI/Installation+Guide+for+Ambari+2.2.1




`


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License


사용하는 입장에 따라 다르지만, 직접 Hadoop을 받아서 설정하는 방법도 있지만, HDP(물론 무료!)를 이용해서 필요한 환경을 구축하는 방법도 있습니다.


제 사례를 들어보면 HDFS 부터 YARN,HBase, zookeeper,Hive까지 설치하는데 몇시간이 걸린다면,(물론 스크립트로 만들수도 있찌만) Ambari를 이용해서 HDP를 이용하면 원하는 환경은 바로 구성이 됩니다.


좀더 자세한 설명은 hortonworks.com/hdp/ 와 호튼웍스 공식 문서를 통해서 확인하실수 있습니다.


http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.0.6.0-Win/bk_installing_hdp_for_windows/bk_installing_hdp_for_windows-20140120.pdf


다음 스크린샷은 Ambari 2.2.1(마지막 버전)을 이용해서 HDP 2.3(최신버전은 2.4,,, 최신버전과의 차이점은 SmartSence 가 추가된듯.. 아직 다 안봐서 ,)을 설치하는 설명입니다.


스크린샷은 블로그 포스팅을 위해서 VM 위에서 싱글머신으로 설치하는 예제입니다.


(중간에 찍은 스샷을 날려먹어서.. 호튼웍스 공식 메뉴얼을 보시는면 매우 자세하게 나왔습니다.




설치버전 선택




보통의 아파치 하둡을 설정할때 HOSTS를 입력하는 부분, 아래부분은 SSH 키를 입력 하는 부분입니다.



다음 절차에서 각 해당하는 노드들에 대하여 에이전트를 배포하여 설치를 준비합니다.




다음에 필요한 하둡 컴포넌트를 선택합니다(물론 지금 설치를 안하더라도 나중에 설치가 또 가능합니다.)




NEXT를 눌러서 진행하면 자동으로 하둡 컴포넌트들이 배포가 됩니다.



설치가 완료된 이후의 모습입니다. 물론 그전에 설치하지 않은 하둡컴포넌트 또한 추가가 가능합니다.

저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License

하둡 2버전은 잘모르겠지만.


1버전을 이용할때는 리눅스에서 HDFS에 직접 마운트를 해서 사용하고 싶을때가 있었습니다.


그떄 fuse-dfs를 이용해서 마운트 했는데, 2버전때 없어졌나 했는데.. 제가 HDP(Hortonworks Data Platform)을 이용해서 그런지 잘 안보였던것 같더군요.. cloudera에는 fuse-dfs가 그대로 있던것 같았습니다. 홈페이지에서 보기에는 


http://docs.hortonworks.com/HDPDocuments/HDP2/HDP-2.3.4/bk_hdfs_nfs_gateway/content/hdfs-nfs-gateway-user-guide.html



다른 배포판은 모르겠지만.. 아파치 하둡1을 이용할때는,, fuse-dfs를 사용하기 위해 관련 라이브러리 설치하고 하둡 컴파일 하고 귀찮은 절차가 필요했었는데.. HDP는 이런것은 확실히 편하네요 



사용방법은 간답합니다. 


mount -t nfs -o vers=3,proto=tcp,nolock (NDFS게이트웨이가 있는 노드):/ (마운트 하려는 폴더)




그리고 마운트된 폴더를 접속하면 다음과 같이 마운트가 잘되신것을 확인 할 수 있습니다 


저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License


일단 환경은 HortonWorks HDP 플랫폼 위입니다.



Storm을 Kafaka의 Consumer로 Spout를 만드는데, 이게 오픈소스라 그런지는 몰라도 잔 버그가 많습니다. 


Strom-kafka : ava.lang.RuntimeException:java.lang.RuntimeException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/topics/topic_sdka/partitions


이런 당황스러운 오류가 Spout 쪽에서 날수가 있는데,


스택오버플로우에서는 버전을 맞추라느니, 뭐라느니,  그러는데 


결론은 Kafka, Storm, Zookeeper Restart 한다음에 다시 Topology 를 올리면 정상적으로 작동됩니다.


예전부터 하둡을 공부하면서 느끼는건 영문 자료보다, 중문자료가 볼만한게 정말 많네요 


http://www.aboutyun.com/blog-1328-2341.html (Reference) Thank you!!!


kafka-storm spout拉取数据问题offset out of range(todo)

已有 76 次阅读2015-5-8 14:54

<问题1>kafka-spout在拉取数据的时候,offset超出了范围

日志:

[WARN  2014-12-29 20:40:52 KafkaUtils:185 ASpout:3-MultipleThreadSpoutExecutors] Got fetch request with offset out of range: [232]; retrying with default start offset time from configuration. configured start offset time: [-2] offset: [0]

[WARN  2014-12-29 20:40:52 KafkaUtils:185 ASpout:3-MultipleThreadSpoutExecutors] Got fetch request with offset out of range: [239]; retrying with default start offset time from configuration. configured start offset time: [-2] offset: [0]

解决办法:

1.修改SpoutConfig.zkRoot 值

String zkRoot = "";

SpoutConfig spoutConf = new SpoutConfig(hosts, topic, zkRoot, id);

2.将spoutConf.forceFromStart 设为 true;

原因:

storm启动的时候,默认是从头读取-2,当kafkaspout的task出错时候,会重新启动,这时候offset就会从zk中最老的offset,但kafka数据只会保存一段时间,从zk中读取道德offset的数据可能已经不存在,超过现在的范围。

kafkaspout读取的3种选项

  -2: 从最老的开始读

  -1: 从最近的开始读

  0: 从Zk中读



问题2

日志:

java.lang.RuntimeException:java.lang.RuntimeException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/topics/topic_sdka/partitions
        at storm.kafka.DynamicBrokersReader.getBrokerInfo(DynamicBrokersReader.java:81)


Caused by: java.lang.RuntimeException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/topics/topic_sdka/partitions
        at storm.kafka.DynamicBrokersReader.getNumPartitions(DynamicBrokersReader.java:94)
        at storm.kafka.DynamicBrokersReader.getBrokerInfo(DynamicBrokersReader.java:65)
        ... 13 more
Caused by: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/topics/topic_sdka/partitions
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:111)



问题3:启动kafka server cluster的时候,某个节点启动失败

解决方法:重启所有节点的zookeeper,kafka,问题解决

<详细>

[hadoop@node3 bin]$ ./kafka-topics.sh --create --zookeeper 192.168.11.222:2181,192.168.11.221:2181,192.168.11.220:2181 --replication-factor 1 --partitions 3  --topic topic1
Error while executing topic command org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/ids
org.I0Itec.zkclient.exception.ZkNoNodeException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/ids
        at org.I0Itec.zkclient.exception.ZkException.create(ZkException.java:47)
        at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:685)
        at org.I0Itec.zkclient.ZkClient.getChildren(ZkClient.java:413)
        at org.I0Itec.zkclient.ZkClient.getChildren(ZkClient.java:409)
        at kafka.utils.ZkUtils$.getChildren(ZkUtils.scala:480)
        at kafka.utils.ZkUtils$.getSortedBrokerList(ZkUtils.scala:81)
        at kafka.admin.AdminUtils$.createTopic(AdminUtils.scala:154)
        at kafka.admin.TopicCommand$.createTopic(TopicCommand.scala:86)
        at kafka.admin.TopicCommand$.main(TopicCommand.scala:50)
        at kafka.admin.TopicCommand.main(TopicCommand.scala)
Caused by: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/ids
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:102)
        at org.apache.zookeeper.KeeperException.create(KeeperException.java:42)
        at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1249)
        at org.apache.zookeeper.ZooKeeper.getChildren(ZooKeeper.java:1277)
        at org.I0Itec.zkclient.ZkConnection.getChildren(ZkConnection.java:99)
        at org.I0Itec.zkclient.ZkClient$2.call(ZkClient.java:416)
        at org.I0Itec.zkclient.ZkClient$2.call(ZkClient.java:413)
        at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:675)
        ... 8 more



【resovle】 
1.restart kafka cluster
<node1>
[2015-01-16 13:58:49,929] INFO Initiating client connection, connectString=192.168.11.222:2181,192.168.11.221:2181,192.168.11.220:2181 sessionTimeout=6000 watcher=org.I0Itec.zkclient.ZkClient@68098843 (org.apache.zookeeper.ZooKeeper)
[2015-01-16 13:58:49,950] INFO Opening socket connection to server /192.168.11.221:2181 (org.apache.zookeeper.ClientCnxn)
[2015-01-16 13:58:49,956] INFO Socket connection established to node2.ssjs/192.168.11.221:2181, initiating session (org.apache.zookeeper.ClientCnxn)
[2015-01-16 13:58:49,982] INFO Session establishment complete on server node2.ssjs/192.168.11.221:2181, sessionid = 0x24ac286ad2c0dc6, negotiated timeout = 6000 (org.apache.zookeeper.ClientCnxn)
[2015-01-16 13:58:49,987] INFO zookeeper state changed (SyncConnected) (org.I0Itec.zkclient.ZkClient)
[2015-01-16 13:58:50,032] INFO Registered broker 1 at path /brokers/ids/1 with address 192.168.11.222:9092. (kafka.utils.ZkUtils$)
[2015-01-16 13:58:50,040] INFO [Kafka Server 1], Connecting to ZK: 192.168.11.222:2181,192.168.11.221:2181,192.168.11.220:2181 (kafka.server.KafkaServer)
[2015-01-16 13:58:50,192] INFO Will not load MX4J, mx4j-tools.jar is not in the classpath (kafka.utils.Mx4jLoader$)
[2015-01-16 13:58:50,259] INFO conflict in /controller data: 1 stored data: {"version":1,"brokerid":3,"timestamp":"1421387751644"} (kafka.utils.ZkUtils$)
[2015-01-16 13:58:50,265] FATAL Fatal error during KafkaServerStable startup. Prepare to shutdown (kafka.server.KafkaServerStartable)
java.lang.NumberFormatException: For input string: "{"version":1,"brokerid":3,"timestamp":"1421387751644"}"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:492)
        at java.lang.Integer.parseInt(Integer.java:527)
        at scala.collection.immutable.StringLike$class.toInt(StringLike.scala:229)
        at scala.collection.immutable.StringOps.toInt(StringOps.scala:31)
        at kafka.server.ZookeeperLeaderElector.elect(Unknown Source)
        at kafka.server.ZookeeperLeaderElector.startup(Unknown Source)
        at kafka.controller.KafkaController.startup(Unknown Source)
        at kafka.server.KafkaServer.startup(Unknown Source)
        at kafka.server.KafkaServerStartable.startup(Unknown Source)
        at kafka.Kafka$.main(Unknown Source)
        at kafka.Kafka.main(Unknown Source)
[2015-01-16 13:58:50,271] INFO [Kafka Server 1], Shutting down (kafka.server.KafkaServer)


<good_node2>
[2015-01-16 14:17:57,401] INFO 2 successfully elected as leader (kafka.server.ZookeeperLeaderElector)
[2015-01-16 14:17:57,605] INFO Registered broker 2 at path /brokers/ids/2 with address 192.168.11.221:9092. (kafka.utils.ZkUtils$)
[2015-01-16 14:17:57,625] INFO [Kafka Server 2], started (kafka.server.KafkaServer)
[2015-01-16 14:17:57,779] INFO New leader is 2 (kafka.server.ZookeeperLeaderElector$LeaderChangeListener)




KafkaServer.startup()
kafkaController = new KafkaController(config, zkClient)


restart zk,kafka<node1>
[2015-01-16 15:19:33,273] INFO zookeeper state changed (SyncConnected) (org.I0Itec.zkclient.ZkClient)
[2015-01-16 15:19:33,318] INFO Registered broker 1 at path /brokers/ids/1 with address 192.168.11.222:9092. (kafka.utils.ZkUtils$)
[2015-01-16 15:19:33,319] INFO [Kafka Server 1], Connecting to ZK: 192.168.11.222:2181,192.168.11.221:2181,192.168.11.220:2181 (kafka.server.KafkaServer)
[2015-01-16 15:19:33,474] INFO Will not load MX4J, mx4j-tools.jar is not in the classpath (kafka.utils.Mx4jLoader$)
[2015-01-16 15:19:33,543] INFO conflict in /controller data: 1 stored data: {"version":1,"brokerid":2,"timestamp":"1421389077341"} (kafka.utils.ZkUtils$)
[2015-01-16 15:19:33,549] FATAL Fatal error during KafkaServerStable startup. Prepare to shutdown (kafka.server.KafkaServerStartable)
java.lang.NumberFormatException: For input string: "{"version":1,"brokerid":2,"timestamp":"1421389077341"}"
        at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
        at java.lang.Integer.parseInt(Integer.java:492)
        at java.lang.Integer.parseInt(Integer.java:527)
        at scala.collection.immutable.StringLike$class.toInt(StringLike.scala:229)
        at scala.collection.immutable.StringOps.toInt(StringOps.scala:31)
        at kafka.server.ZookeeperLeaderElector.elect(Unknown Source)
        at kafka.server.ZookeeperLeaderElector.startup(Unknown Source)
        at kafka.controller.KafkaController.startup(Unknown Source)
        at kafka.server.KafkaServer.startup(Unknown Source)
        at kafka.server.KafkaServerStartable.startup(Unknown Source)
        at kafka.Kafka$.main(Unknown Source)
        at kafka.Kafka.main(Unknown Source)



restart node1~node3:zk,kafka
resolved!!<session timeout> 



저작자 표시 비영리 변경 금지
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
1

+ Recent posts

티스토리 툴바