달력

11

« 2017/11 »

  •  
  •  
  •  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  •  
  •  

개놈에 카산드라 -- 연동 짜증난다 ㅋ

Hbase 연동을 먼저좀 해보려고 하다가 실패를 하고 짜증나서 카산드라 연동좀 시도해보고 성공후에 기록남김.


spark 버전 : 1.6.1 ( 하둡 2.7.2를 사용해서 하둡용으로 컴파일된 버전사용 )

cassandra 버전 : 3.4 

cassandra spark java connector 버전 : 1.5버전 사용.

node 수 : 6


cassandra 설치는 쉬우므로 내가 기록할 정보만 기록한다.

나는 6대로 계속 테스트중이므로~~~


참고로 모든 노드의 스펙은 아래와 같다. ( vmware 스펙 ㅋ )


카산드라 설정파일 작업부분.

위의 VM들을 가지고 모든 노드에 각각 아이피를 할당하여 설정한 설정정보만 남긴다.


카산드라의 분산및 리플리케이션을 위한 구성을 위해서 건드려야할 파일리스트 


cassandra.yaml

* 변경위치 : 

- listen_address : 해당노드의 아이피

- rpc_address : 해당노드의 아이피

- seed_provider의 seeds 부분 : 연결된노드 아이피들~~ "111.111.111.111,222.222.222.222" 이런식으로.


cassandra-env.sh

* 변경위치 :

- JVM_OPTS의 hostname 부분 : 해당노드의 아이피


여기까지 변경하고 cassandra를 실행하면 1개의 datacenter 에 1개의 rack 으로 해서 6개의 노드가 생겨지더라.


아래 두개파일로 datacenter 는 몇개로 할지 rack은 몇개로 할지 등을 설정.


cassandra-rackdc.properties


cassandra-topology.properties


카산드라 노드 연결된 상태 확인.

[hadoop@os1 bin]$ ./nodetool status

Datacenter: datacenter1

=======================

Status=Up/Down

|/ State=Normal/Leaving/Joining/Moving

--  Address        Load       Tokens       Owns (effective)  Host ID                               Rack

UN  192.168.0.111  201.03 KB  256          49.5%             e13656b7-1436-4011-bd1d-01042a2d75fc  rack1

UN  192.168.0.112  205.89 KB  256          47.7%             09ef262e-9013-4292-9ea8-98a32ebdadc1  rack1

UN  192.168.0.113  253.59 KB  256          47.7%             bad6d57a-3135-4dff-b546-21887d77aca6  rack1

UN  192.168.0.114  198.71 KB  256          49.3%             c2e5c7bc-b9a1-4751-9e6b-6179b20fc76f  rack1

UN  192.168.0.115  214 KB      256          53.8%             9f9d28e9-7e03-4653-a329-7aba65aaf5f0  rack1

UN  192.168.0.116  219.55 KB  256          52.1%             cffba9e0-19b3-4070-93ba-ecb4e6263e47  rack1


[hadoop@os1 bin]$ 


참고로 노드가 죽으면 DN 으로 바뀌더라;;;


이제 카산드라에 기본 데이터몇개 넣기.

* 설정파일이 로컬이아닌 아이피를 넣으니 cqlsh 만 치면 못찾더라 ㅋ

* 메뉴얼의 굵은글씨만 보고 일단 만들어서 실행 ㅋ


[hadoop@os1 bin]$ ./cqlsh 192.168.0.111

Connected to CASDR at 192.168.0.111:9042.

[cqlsh 5.0.1 | Cassandra 3.4 | CQL spec 3.4.0 | Native protocol v4]

Use HELP for help.

cqlsh> create keyspace keytest with replication = {'class' :'SimpleStrategy','replication_factor' : 3};

cqlsh>

cqlsh> use keytest;

cqlsh:keytest> create table test_table ( id varchar,name varchar,primary key(id));          

cqlsh:keytest> insert into test_table (id,name) values('2','fasdlkffasdffajfkls');

cqlsh:keytest> select *from test_table;


 id | name

----+-------------------------------

  3 | fasdlkfasdfasdfaffasdffajfkls

  2 |           fasdlkffasdffajfkls

  1 |     fasdlkfjafkljfsdklfajfkls


(3 rows)

cqlsh:keytest> 



* 현재 상황은 1~6번까지 노드가 있고 spark는 1번노드에 설치해놓음.

* 인터넷에 떠돌아 다니는 소스를 조합하여 몇몇가지 수정해서 실행함.

* 아래는 콘솔에서 짠 cassandra 테이블 카운트 세는 소스

* 아래소스보면 커넥터를 1.6과 1.5를 테스트하느라 둘다 쓴게 나오는데 1.6 , 1.5어느거 하나만 써도 상관없이 작동하니 신경쓰지말것.

import static com.datastax.spark.connector.japi.CassandraJavaUtil.javaFunctions;


import java.util.ArrayList;

import java.util.List;


import org.apache.spark.SparkConf;

import org.apache.spark.api.java.JavaRDD;

import org.apache.spark.api.java.JavaSparkContext;

import org.apache.hadoop.conf.Configuration;

import org.apache.hadoop.hbase.HBaseConfiguration;

import org.apache.hadoop.hbase.TableName;

import org.apache.hadoop.hbase.client.Result;

import org.apache.spark.api.java.JavaPairRDD;

import org.apache.spark.api.java.function.Function;

import org.apache.hadoop.hbase.io.ImmutableBytesWritable;

import org.apache.hadoop.hbase.mapreduce.TableInputFormat;


import com.datastax.spark.connector.japi.CassandraJavaUtil;

import com.datastax.spark.connector.japi.CassandraRow;




public class test3 {


        public static void main(String[] args)

        {


                SparkConf conf = new SparkConf(true)

                .set("spark.cassandra.connection.host","192.168.0.111")

                .setMaster("spark://192.168.0.111:7077")

                .setAppName("casr")

                .setJars(new String[]{"/apps/spark/lib/spark-cassandra-connector-java_2.10-1.6.0-M1.jar","/apps/spark/lib/spark-cassandra-connec

tor_2.10-1.6.0-M1.jar"})

                .setSparkHome("/apps/spark");



                JavaSparkContext sc = new JavaSparkContext(conf);


                sc.addJar("/home/hadoop/classes/cassandra-driver-core-3.0.0.jar");

                sc.addJar("/home/hadoop/classes/guava-19.0.jar");

                JavaRDD<CassandraRow> cassandraRdd = CassandraJavaUtil.javaFunctions(sc)

                        .cassandraTable("keytest", "test_table")

                        .select("name");


                                        System.out.println("row count:"+ cassandraRdd.count()); // once it is in RDD, we can use RDD 



               }

}


위의것을 컴파일후 실행하면 아래처럼 실행되더라.

[hadoop@os1 ~]$ java test3

Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties

SLF4J: Class path contains multiple SLF4J bindings.

SLF4J: Found binding in [jar:file:/home/hadoop/classes/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: Found binding in [jar:file:/home/hadoop/classes/logback-classic-1.1.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]

SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.

SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]

16/04/08 00:53:19 INFO SparkContext: Running Spark version 1.6.1

16/04/08 00:53:20 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable

16/04/08 00:53:20 INFO SecurityManager: Changing view acls to: hadoop

16/04/08 00:53:20 INFO SecurityManager: Changing modify acls to: hadoop

16/04/08 00:53:20 INFO SecurityManager: SecurityManager: authentication disabled; ui acls disabled; users with view permissions: Set(hadoop); users with modify permissions: Set(hadoop)

16/04/08 00:53:21 INFO Utils: Successfully started service 'sparkDriver' on port 54330.

16/04/08 00:53:22 INFO Slf4jLogger: Slf4jLogger started

16/04/08 00:53:22 INFO Remoting: Starting remoting

16/04/08 00:53:22 INFO Remoting: Remoting started; listening on addresses :[akka.tcp://sparkDriverActorSystem@192.168.0.111:34441]

16/04/08 00:53:22 INFO Utils: Successfully started service 'sparkDriverActorSystem' on port 34441.

16/04/08 00:53:22 INFO SparkEnv: Registering MapOutputTracker

16/04/08 00:53:22 INFO SparkEnv: Registering BlockManagerMaster

16/04/08 00:53:22 INFO DiskBlockManager: Created local directory at /tmp/blockmgr-e91fb4d5-8f1e-45b5-9631-2af967164aff

16/04/08 00:53:22 INFO MemoryStore: MemoryStore started with capacity 1077.8 MB

16/04/08 00:53:22 INFO SparkEnv: Registering OutputCommitCoordinator

16/04/08 00:53:23 INFO Utils: Successfully started service 'SparkUI' on port 4040.

16/04/08 00:53:23 INFO SparkUI: Started SparkUI at http://192.168.0.111:4040

16/04/08 00:53:23 INFO HttpFileServer: HTTP File server directory is /tmp/spark-d02efafe-ae00-4eaa-9cfc-0700e5848dd3/httpd-c8f30120-f92a-4ec9-922f-c201e94998af

16/04/08 00:53:23 INFO HttpServer: Starting HTTP Server

16/04/08 00:53:23 INFO Utils: Successfully started service 'HTTP file server' on port 48452.

16/04/08 00:53:23 INFO SparkContext: Added JAR /apps/spark/lib/spark-cassandra-connector-java_2.10-1.6.0-M1.jar at http://192.168.0.111:48452/jars/spark-cassandra-connector-java_2.10-1.6.0-M1.jar with timestamp 1460044403426

16/04/08 00:53:23 INFO SparkContext: Added JAR /apps/spark/lib/spark-cassandra-connector_2.10-1.6.0-M1.jar at http://192.168.0.111:48452/jars/spark-cassandra-connector_2.10-1.6.0-M1.jar with timestamp 1460044403435

16/04/08 00:53:23 INFO AppClient$ClientEndpoint: Connecting to master spark://192.168.0.111:7077...

16/04/08 00:53:23 INFO SparkDeploySchedulerBackend: Connected to Spark cluster with app ID app-20160408005323-0013

16/04/08 00:53:23 INFO AppClient$ClientEndpoint: Executor added: app-20160408005323-0013/0 on worker-20160407175148-192.168.0.111-57563 (192.168.0.111:57563) with 8 cores

16/04/08 00:53:23 INFO SparkDeploySchedulerBackend: Granted executor ID app-20160408005323-0013/0 on hostPort 192.168.0.111:57563 with 8 cores, 1024.0 MB RAM

16/04/08 00:53:23 INFO Utils: Successfully started service 'org.apache.spark.network.netty.NettyBlockTransferService' on port 44940.

16/04/08 00:53:23 INFO NettyBlockTransferService: Server created on 44940

16/04/08 00:53:23 INFO BlockManagerMaster: Trying to register BlockManager

16/04/08 00:53:23 INFO BlockManagerMasterEndpoint: Registering block manager 192.168.0.111:44940 with 1077.8 MB RAM, BlockManagerId(driver, 192.168.0.111, 44940)

16/04/08 00:53:23 INFO BlockManagerMaster: Registered BlockManager

16/04/08 00:53:23 INFO AppClient$ClientEndpoint: Executor updated: app-20160408005323-0013/0 is now RUNNING

16/04/08 00:53:24 INFO SparkDeploySchedulerBackend: SchedulerBackend is ready for scheduling beginning after reached minRegisteredResourcesRatio: 0.0

16/04/08 00:53:24 INFO SparkContext: Added JAR /home/hadoop/classes/cassandra-driver-core-3.0.0.jar at http://192.168.0.111:48452/jars/cassandra-driver-core-3.0.0.jar with timestamp 1460044404233

16/04/08 00:53:24 INFO SparkContext: Added JAR /home/hadoop/classes/guava-19.0.jar at http://192.168.0.111:48452/jars/guava-19.0.jar with timestamp 1460044404244

16/04/08 00:53:24 INFO NettyUtil: Found Netty's native epoll transport in the classpath, using it

16/04/08 00:53:25 INFO Cluster: New Cassandra host /192.168.0.111:9042 added

16/04/08 00:53:25 INFO Cluster: New Cassandra host /192.168.0.112:9042 added

16/04/08 00:53:25 INFO LocalNodeFirstLoadBalancingPolicy: Added host 192.168.0.112 (datacenter1)

16/04/08 00:53:25 INFO Cluster: New Cassandra host /192.168.0.113:9042 added

16/04/08 00:53:25 INFO LocalNodeFirstLoadBalancingPolicy: Added host 192.168.0.113 (datacenter1)

16/04/08 00:53:25 INFO Cluster: New Cassandra host /192.168.0.114:9042 added

16/04/08 00:53:25 INFO LocalNodeFirstLoadBalancingPolicy: Added host 192.168.0.114 (datacenter1)

16/04/08 00:53:25 INFO Cluster: New Cassandra host /192.168.0.115:9042 added

16/04/08 00:53:25 INFO LocalNodeFirstLoadBalancingPolicy: Added host 192.168.0.115 (datacenter1)

16/04/08 00:53:25 INFO Cluster: New Cassandra host /192.168.0.116:9042 added

16/04/08 00:53:25 INFO LocalNodeFirstLoadBalancingPolicy: Added host 192.168.0.116 (datacenter1)

16/04/08 00:53:25 INFO CassandraConnector: Connected to Cassandra cluster: CASDR

16/04/08 00:53:26 INFO SparkContext: Starting job: count at test3.java:44

16/04/08 00:53:26 INFO DAGScheduler: Got job 0 (count at test3.java:44) with 7 output partitions

16/04/08 00:53:26 INFO DAGScheduler: Final stage: ResultStage 0 (count at test3.java:44)

16/04/08 00:53:26 INFO DAGScheduler: Parents of final stage: List()

16/04/08 00:53:26 INFO DAGScheduler: Missing parents: List()

16/04/08 00:53:26 INFO DAGScheduler: Submitting ResultStage 0 (CassandraTableScanRDD[1] at RDD at CassandraRDD.scala:15), which has no missing parents

16/04/08 00:53:26 INFO MemoryStore: Block broadcast_0 stored as values in memory (estimated size 7.3 KB, free 7.3 KB)

16/04/08 00:53:26 INFO MemoryStore: Block broadcast_0_piece0 stored as bytes in memory (estimated size 3.8 KB, free 11.1 KB)

16/04/08 00:53:26 INFO BlockManagerInfo: Added broadcast_0_piece0 in memory on 192.168.0.111:44940 (size: 3.8 KB, free: 1077.7 MB)

16/04/08 00:53:26 INFO SparkContext: Created broadcast 0 from broadcast at DAGScheduler.scala:1006

16/04/08 00:53:26 INFO DAGScheduler: Submitting 7 missing tasks from ResultStage 0 (CassandraTableScanRDD[1] at RDD at CassandraRDD.scala:15)

16/04/08 00:53:26 INFO TaskSchedulerImpl: Adding task set 0.0 with 7 tasks

16/04/08 00:53:27 INFO SparkDeploySchedulerBackend: Registered executor NettyRpcEndpointRef(null) (os1.local:56503) with ID 0

16/04/08 00:53:27 INFO BlockManagerMasterEndpoint: Registering block manager os1.local:53103 with 511.1 MB RAM, BlockManagerId(0, os1.local, 53103)

16/04/08 00:53:27 INFO TaskSetManager: Starting task 0.0 in stage 0.0 (TID 0, os1.local, partition 0,NODE_LOCAL, 26312 bytes)

16/04/08 00:53:27 INFO TaskSetManager: Starting task 1.0 in stage 0.0 (TID 1, os1.local, partition 1,NODE_LOCAL, 26222 bytes)

16/04/08 00:53:27 INFO TaskSetManager: Starting task 5.0 in stage 0.0 (TID 2, os1.local, partition 5,NODE_LOCAL, 26352 bytes)

16/04/08 00:53:28 INFO BlockManagerInfo: Added broadcast_0_piece0 in memory on os1.local:53103 (size: 3.8 KB, free: 511.1 MB)

16/04/08 00:53:31 INFO TaskSetManager: Starting task 2.0 in stage 0.0 (TID 3, os1.local, partition 2,ANY, 26312 bytes)

16/04/08 00:53:31 INFO TaskSetManager: Starting task 3.0 in stage 0.0 (TID 4, os1.local, partition 3,ANY, 21141 bytes)

16/04/08 00:53:31 INFO TaskSetManager: Starting task 4.0 in stage 0.0 (TID 5, os1.local, partition 4,ANY, 23882 bytes)

16/04/08 00:53:31 INFO TaskSetManager: Starting task 6.0 in stage 0.0 (TID 6, os1.local, partition 6,ANY, 10818 bytes)

16/04/08 00:53:32 INFO TaskSetManager: Finished task 6.0 in stage 0.0 (TID 6) in 1106 ms on os1.local (1/7)

16/04/08 00:53:33 INFO TaskSetManager: Finished task 1.0 in stage 0.0 (TID 1) in 5530 ms on os1.local (2/7)

16/04/08 00:53:33 INFO TaskSetManager: Finished task 3.0 in stage 0.0 (TID 4) in 1945 ms on os1.local (3/7)

16/04/08 00:53:33 INFO TaskSetManager: Finished task 0.0 in stage 0.0 (TID 0) in 6015 ms on os1.local (4/7)

16/04/08 00:53:33 INFO TaskSetManager: Finished task 5.0 in stage 0.0 (TID 2) in 5959 ms on os1.local (5/7)

16/04/08 00:53:33 INFO TaskSetManager: Finished task 4.0 in stage 0.0 (TID 5) in 2150 ms on os1.local (6/7)

16/04/08 00:53:33 INFO TaskSetManager: Finished task 2.0 in stage 0.0 (TID 3) in 2286 ms on os1.local (7/7)

16/04/08 00:53:33 INFO DAGScheduler: ResultStage 0 (count at test3.java:44) finished in 7.049 s

16/04/08 00:53:33 INFO TaskSchedulerImpl: Removed TaskSet 0.0, whose tasks have all completed, from pool 

16/04/08 00:53:33 INFO DAGScheduler: Job 0 finished: count at test3.java:44, took 7.435243 s

16/04/08 00:53:34 INFO CassandraConnector: Disconnected from Cassandra cluster: CASDR

16/04/08 00:53:35 INFO BlockManagerInfo: Removed broadcast_0_piece0 on 192.168.0.111:44940 in memory (size: 3.8 KB, free: 1077.8 MB)

row count:3 <--------- 요기 요거가 나온답 ㅋ

16/04/08 00:53:35 INFO BlockManagerInfo: Removed broadcast_0_piece0 on os1.local:53103 in memory (size: 3.8 KB, free: 511.1 MB)

16/04/08 00:53:35 INFO SparkContext: Invoking stop() from shutdown hook

16/04/08 00:53:35 INFO ContextCleaner: Cleaned accumulator 1

16/04/08 00:53:35 INFO SparkUI: Stopped Spark web UI at http://192.168.0.111:4040

16/04/08 00:53:35 INFO SparkDeploySchedulerBackend: Shutting down all executors

16/04/08 00:53:35 INFO SparkDeploySchedulerBackend: Asking each executor to shut down

16/04/08 00:53:35 INFO MapOutputTrackerMasterEndpoint: MapOutputTrackerMasterEndpoint stopped!

16/04/08 00:53:35 INFO MemoryStore: MemoryStore cleared

16/04/08 00:53:35 INFO BlockManager: BlockManager stopped

16/04/08 00:53:35 INFO BlockManagerMaster: BlockManagerMaster stopped

16/04/08 00:53:35 INFO OutputCommitCoordinator$OutputCommitCoordinatorEndpoint: OutputCommitCoordinator stopped!

16/04/08 00:53:35 INFO SparkContext: Successfully stopped SparkContext

16/04/08 00:53:35 INFO ShutdownHookManager: Shutdown hook called

16/04/08 00:53:35 INFO ShutdownHookManager: Deleting directory /tmp/spark-d02efafe-ae00-4eaa-9cfc-0700e5848dd3/httpd-c8f30120-f92a-4ec9-922f-c201e94998af

16/04/08 00:53:35 INFO RemoteActorRefProvider$RemotingTerminator: Shutting down remote daemon.

16/04/08 00:53:35 INFO ShutdownHookManager: Deleting directory /tmp/spark-d02efafe-ae00-4eaa-9cfc-0700e5848dd3

16/04/08 00:53:35 INFO RemoteActorRefProvider$RemotingTerminator: Remote daemon shut down; proceeding with flushing remote transports.

[hadoop@os1 ~]$


주의사항

위에 저 빨간 글씨인 row count 나오게 하려고 별짓을 다했다. ㅋ

이 클래스안에서 실행되는 spark와 cassandra는 새로 이 두놈에 접속을 하여 자바에서 설정된 환경설정을 따라서 

실행되는것으로 보인다.

java 소스상에 보면 setJars 를 통해서 jar파일위치를 추가해주었다.

그랬더니 길고긴 닭질을 끝내고 성공하게 됨;;;; 

그렇게 서버를 만져도 자꾸 망각하게되는 부분. ㅎㅎ;;;


저작자 표시
신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설

Hadoop 설치후 파일몇개 올려보고 할게 없다.
Map Reduce테스트나 자바콘솔로 테스트하고 말곤 그닥 당장은 할게 없었다.

실제 Hadoop을 기반으로한 DB를 만들어서 뭔가를 해봐야한다는 생각에 이것저것 찾아본 결과. HBASE~ 찾았다.

Google 에서 쓴다고들하는데 그건 내가 알바아니고.
일단 사용해보고 이것저것 테스트좀 해보기위해서 설치부터 해봐야것다.

나의 성능좋은(?) 서버에 이전에 설치한 Hadoop 과 함께 HBASE를 올려보도록한다.

내가 보기엔 아래와 같은 상태같다. 아니면 댓글누군가 달겠지;;;

Hadoop의 HDFS에 HBase를 올린다라고 생각하면 되고. 단.
Hbase간의 분산시스템은 zookeeper가 해준다라고 생각하면 될것같다.

 

위에서 보면 알겠지만 서버로 구축한다면 6대다.
물론 local에 설치해도 된다만 저럴수도 있겠다 싶어서 저렇게 해보려한다.
zookeeper도 사실 서버를 나누고 싶었는데 이상하게 에러나는곳이 있어서 일단 그건 나중에... 안되면 안되는갑다 하고 넘어가련다...

아래 스펙의 Vmware 이미지를 3개를 또 준비한다. ( 원래는 cloudera HA 테스트를 해보려 했으나. 내가 cloud서비스를 할것도 아니고 .. 큰 관심도 없고 해서 테스트하려다가 말았다. 그때 준비한것을 사용하는중)

 

위처럼 3개를 구성해서 기존 Hadoop 에 올리면 아래처럼 6개의 이미지를 돌리게되는 상황.....

위는 설치하면 저렇게 버벅일것이다를 보여주는것뿐이고...
이제 본격적인 설치를 해보자.

 

1. vmware 구성
CPU : 2core
RAM : 2GB
HDD : 20GB * 2
로 구성된 리눅스 vmware image를 3개를 준비한다.

 

2. 아이피 할당.
기존 Hadoop ( HDFS )은 전에 설치한것이니 아이피만 확인.
hadoop (master) : 192.168.0.141
hadoop (slave1) : 192.168.0.142
hadoop (slave2) : 192.168.0.143

신규 이번 Hbase 를 위한 아이피.
아이피옆의 괄호는 hostname
hbase (master) : 192.168.0.144 (hbase1)
hbase (slave1) : 192.168.0.145 (hbase2)
hbase (slave2) : 192.168.0.146 (hbase3)

위의 그림에서 잠깐 나온 zookeeper 가 hbase를 분산해서 관리하게 해주는 시스템으로 보여진다.
이 예기인 즉슨 이놈이 각 서버를 통신을 한다는 예기다.
설치문서를 봐선 딱히 서버간의 ssh 설정을 하지는 않는다.
아마도 특정포트를 가지고 서로 통신하는가본데 설치의 용이함을 위해서 그냥 ssh 설정을 해도 되지 않을까?????

 

3. 소스 준비 (당연히 각 3대서버에
http://www.apache.org 에 다 있다. 없는게 없다.
내가 받은 버전은 아래와 같다.

hbase : http://apache.tt.co.kr/hbase/ => hbase-0.94.0.tar.gz
zookeeper : http://apache.tt.co.kr/zookeeper/ => zookeeper-3.3.5.tar.gz
java : http://java.oracle.com => 1.7 ( hadoop  설치할때 사용한 jdk )

 

4. zookeeper 설치.
oracle 11g 도 그렇고 이것도 그렇고 일단 기본적으로
DB라는것이 올라가기전에 클러스터구성을 먼저하고나서 그 위에 DB를 올린다.

소유자는 hadoop 계정으로 그냥 이어서 하도록하겠다. 하고싶은대로 아무거나 해도 된다.

 

ㄱ. zookeeper 압축을 풀고나서 /usr/local/zookeeper 로 옮긴다.

 

ㄴ. zookeeper안의 conf디렉토리에 zoo_sample.cfg 를 복사해서 같은위치 zoo.cfg로 둔다.
기본값에서 수정,추가 한것은 dataDir , server1 , server2 , server3 이다.
* 지금와서 안것인데 dataDir에는 딱히 대단한 데이터가 쌓이는것은 없었다. 단지 용량이 생각보다 큰 로그파일이 생기다 보니 필요에 따라서 디스크를 새로 할당해줘야할상황이 올것같다.
* 설치하고 띄울때 에러가나서 이것저것하면서 확인했는데 이상하게 주석이랑 같이 인식을 하는부분이 있어서 주석을 다 지워버렸다.
* start하는 소스를 보면 알겠지만 이상하게 변수를 주석있는 부분까지 자꾸 인식하여 승질나서 주석을 다 지워버렸다.
* 아래 server.1 같은것은 분산서버목록 2888,3888이것은 포트 대역이거나 포트일것이다.

 

[hadoop@hbase2 conf]$ cat zoo.cfg
tickTime=2000
initLimit=5
syncLimit=3
dataDir=/home/hadoop/zookeeper/data
clientPort=2181
server.1=hbase1:2888:3888
server.2=hbase2:2888:3888
server.3=hbase3:2888:3888

 

ㄷ. 위에 설정된 /home/hadoop/zookeeper/data 에 디렉토리를 만들어주고 myid 라는 파일명으로 파일하나를 생성한다.
생성후 파일안에 숫자를 넣어주는데 그 숫자는 위의 설정파일에 server.1 이라는 이름에 숫자 1 이것을 넣어준다.
* 숫자를 안쓰니까 java에러가 났다. 숫자느라고.

192.168.0.144(hbase1) 서버의 /home/hadoop/zookeeper/data/myid 파일안에 1이라고 해주고
192.168.0.145(hbase2) 서버의 /home/hadoop/zookeeper/data/myid 파일안에 2이라고 해주고
192.168.0.146(hbase3) 서버의 /home/hadoop/zookeeper/data/myid 파일안에 3이라고 해준다.

 

ㄹ. 시동
설정은 끝났으며 이제 구동한다.
* 물론 path를 잡아주엇기때문에 난 아래 박스처럼 시작한다. 경로는 귀찮아서 다 안쓴다.
/usr/local/zookeeper/bin/zkServer.sh start
* hadoop 처럼 난 master에서 구동하면 다 실행될줄 알았다. 그래서 왜이렇게 안뜨나 했는데 샹~ ( 각각서버에서 시작을 다 해줄것 )
로그파일또는 out파일을 보면서 에러를 잡으면서 하는데 자꾸 에러가나서 그냥 수동으로 띄웠더니 에러가 안남....

서버 1
[hadoop@hbase1 ~]$ zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper/conf/zoo.cfg
Starting zookeeper ... STARTED

서버 2
[hadoop@hbase2 ~]$ zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper/conf/zoo.cfg
Starting zookeeper ... STARTED

서버3
[hadoop@hbase3 ~]$ zkServer.sh start
JMX enabled by default
Using config: /usr/local/zookeeper/conf/zoo.cfg
Starting zookeeper ... STARTED


아래 4622 번의 QuorumPeerMain 이 떠있으면 정상. ( 4622는 pid니까 신경끄시길 -_- )
[hadoop@hbase3 ~]$ jps
5199 Jps
4622 QuorumPeerMain
[hadoop@hbase3 ~]$

 

ㅁ. hbase 설치

별것없다 이것역시 압축풀고 옮겨준다.
나는 경로를 /usr/local/hbase 이렇게.

 

ㅂ. hbase 환경설정

1. hbase-env.sh 

사실 아래는 난 수정하지 않았다.
혹시나해서 export JAVA_HOME만 주석을 풀고 내 자바경로를 잡아준것이 다일뿐.
* 쉘파일을 뒤져보니 환경설정을 로드하고나서 hbase가 뜨는것을 확인했다. 그러므로 서버자체에
JAVA_HOME이 잘설정되어있으면 문제가 없다는뜻인것이다.

몇몇사이트를 뒤져보니 설정하게 되어있던데 그때는 로드가 안되었거나 또는 다른문제가 있었겠지...

파일 /usr/local/hbase/conf/hbase-env.sh 안에를 수정한다. ( 주석을 풀어주는면서 내용 수정한다. )

export JAVA_HOME="경로"
export HBASE_CLASSPATH="conf경로"
export HBASE_MANAGES_ZK=false

2. hbase-site.xml
실제로 내가 수정한 파일은 이것 하나라고 봐야맞다.
처음에는 비어있다(주석빼고) 

하나 하나 채워주기로 했다.
아래의 property 를 전부 추가했다.

<configuration>

<!-- hadoop 위치 설정 -->
<property>
        <name>hbase.rootdir</name>
        <value>hdfs://master1:9000/hbase</value>
</property>

<!-- hadoop 포트 설정. 정확한 용도 모른 -->
<property>
        <name>hbase.master</name>
        <value>hbase1:60000</value>
</property>

<!-- 분산으로 설정할꺼에여~~~~ 라고 알려줌 -->
<property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
</property>
<!-- 몇개가 분산으로 될꺼에요 라고 알려줌 -->

<property>
        <name>dfs.replication</name>
        <value>3</value>
</property>

<!-- 
zookeeper 설정 - 이것이 문제가 되었었다. 문서를 찾아보면 zookeeper는 서버를 따로 두고 해도 된다고 했었다 물론 공식문서말고... 헌데 다른서버에 두고 아래 value값을 그 호스트이름을 써주니까 start할때 저 서버에서 hbase를 찾는것을 확인했다.
없으니 당연히 에러 그래서 hbase와 같은곳에 뒀다. 
-->
<property>
        <name>hbase.zookeeper.quorum</name>
        <value>hbase1,hbase2,hbase3</value>
</property>

<!-- 포트 설정 1 -->
<property>
        <name>hbase.zookeeper.peerport</name>
        <value>2888</value>
</property>

<!-- 포트 설정 2 -->
<property>
        <name>hbase.zookeeper.leaderport</name>
        <value>3888</value>
</property>
</configuration>

 

ㅅ. 시작

/usr/local/hbase/bin/start-hbase.sh 시작
hbase2: starting zookeeper, logging to /usr/local/hbase/bin/../logs/hbase-hadoop-zookeeper-hbase2.out
hbase1: starting zookeeper, logging to /usr/local/hbase/bin/../logs/hbase-hadoop-zookeeper-hbase1.out
hbase3: starting zookeeper, logging to /usr/local/hbase/bin/../logs/hbase-hadoop-zookeeper-hbase3.out
starting master, logging to /usr/local/hbase/logs/hbase-hadoop-master-hbase1.out
hbase3: starting regionserver, logging to /usr/local/hbase/bin/../logs/hbase-hadoop-regionserver-hbase3.out
hbase2: starting regionserver, logging to /usr/local/hbase/bin/../logs/hbase-hadoop-regionserver-hbase2.out

* 시작했다 종료했다 반복하다 보니 자바에러가 났다.
* 물론 정상적으로 작동은 했다. 
* Address already in use 이런 오류가 튀어나오던데 예상컨데 zookeeper를 hbase가 컨트롤 해주는듯한것같기도 하고...
* 일단 정상

/usr/local/hbase/bin/stop-hbase.sh 종료 
stopping hbase.........
hbase2: no zookeeper to stop because kill -0 of pid 4768 failed with status 1
hbase3: no zookeeper to stop because kill -0 of pid 4701 failed with status 1
hbase1: no zookeeper to stop because kill -0 of pid 5520 failed with status 1

 

확인
서버 master
[hadoop@hbase1 ~]$ jps
5591 HMaster
6263 Jps
5318 QuorumPeerMain

서버 slave1
[hadoop@hbase2 data]$ jps
5722 Jps
5600 HRegionServer
4683 QuorumPeerMain
[hadoop@hbase2 data]$

 

ㅇ. 테스트

[hadoop@hbase1 bin]$ hbase shell
HBase Shell; enter 'help<RETURN>' for list of supported commands.
Type "exit<RETURN>" to leave the HBase Shell
Version 0.94.0, r1332822, Tue May  1 21:43:54 UTC 2012

hbase(main):001:0>

모 사이트 테스트 내용을 따라해봤다. ( http://confluence.openflamingo.org/pages/viewpage.action?pageId=754451 )

hbase(main):001:0> create 'testtbl' , {name=>'col1'},{name=>'col2'},{name=>'col3'}
NameError: undefined local variable or method `name' for #<Object:0x70faf7c7>

hbase(main):002:0> create 'testtbl', {NAME=>'COL1'},{NAME=>'COL2'},{NAME=>'COL3'}
0 row(s) in 1.7030 seconds

hbase(main):003:0> put 'testtbl','10001','COL1','10001',20090929
0 row(s) in 0.1530 seconds

hbase(main):004:0> put 'testtbl','10001','COL2','30',20090929
0 row(s) in 0.0290 seconds

hbase(main):005:0> put 'testtbl','10001','COL3','TESTMAN',20090929
0 row(s) in 0.0240 seconds

hbase(main):007:0> get 'testtbl' ,'10001'
COLUMN                           CELL                                                                                      
 COL1:                           timestamp=20090929, value=10001                                                           
 COL2:                           timestamp=20090929, value=30                                                              
 COL3:                           timestamp=20090929, value=TESTMAN                                                         
3 row(s) in 0.0290 seconds

hbase(main):008:0> list
TABLE                                                                                                                      
testtbl                                                                                                                    
1 row(s) in 0.0370 seconds

hbase(main):009:0>

 

ㅈ. 끝.
DB구성은 완료되었고. HDFS위에 HBASE를 올렸다.
그러면 그게 보이나????
HADOOP에서 제공하는 관리자 화면으로 보면 hbase가 보인다.

위에 보이나? hbase와 테스트시 만든 testtbl이 보인다.
이파일을 HADOOP이 관리를 하게 되나보다.

이제 DB도 구성되었고 본격적으로 개발을 하나 하도록한다.
개발 오랜만에해서 -_-; 잘될라나...

신고

'OpenSource(Bigdata&distribution&Network) > BigData' 카테고리의 다른 글

log파일 flume으로 hdfs에 저장하기  (2) 2015.10.02
Hadoop Hbase 이용한 데이터 적재및 결과 DB전송  (0) 2015.09.17
Hive java connection 설정  (0) 2012.08.04
Hive로 결정.  (0) 2012.07.31
Hbase 설치.  (0) 2012.07.29
hadoop 설치  (2) 2012.06.18
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설

HADOOP 설치.

1대의 서버급 PC에 HADOOP 을 우선 여기저기 널려있는 문서를 찾아서 설치부터 하기로 했다.
RDB와의 유연한 연동 테스트를 위해서 스트레스 테스트를 위해서 설치부터 진행한다.

1. vmware OS 준비
CPU : 2
RAM : 2GB
HDD : 20GB
로 세팅하여 3대를 준비한다.

2. 기본 설치준비 사항. (2012.06.18일 기준 최신버전을 다 받았다)
OS 는 리눅스 (Cent OS 5.7로 선택)
apache-hadoop : 1.03
jdk : 1.7.0_05 ( 64bit )

 


3. 설치전 ( 이렇게 생겨먹은 형태로 설치하려고 한다. )

오라클 RAC를 설치할때와 마찬가지로 SSH 로 각 3대를 인증없이 로그인되도록 만들고나서
1:N 구조 형태로 연결을 한다.


IP : 192.168.0.141 ( master )
IP : 192.168.0.142 ( slave1 )
IP : 192.168.0.143 ( slave2 )
master나 slave이름은 호스트이름으로 정하기로 한다. ( 남들도 그렇게 하드라고... )

설치 파일도 그렇고 메모리도 그렇고 기본설치할때는 생각보다 메모리를 적게 먹는다.
오라클처럼 GUI가 제공되는것은 아니지만 오픈소스만의 좀 있어보이는 설치방식(?) 도 마음에 든다 

 

4. 기본 공통 설치 ( 각 OS 이미지에 공통으로 적용될것을 먼저 진행하여 복사를 한다.

ㄱ. JDK 1.7 풀어서 원하는곳에 넣기. ( /usr/local/java/j2se ) 
ㄴ. hadoop 소스파일 풀어서 원하는곳에 넣기. ( /usr/local/hadoop )
ㄷ. 환경설정파일 수정.

- hosts 파일 수정

[hadoop@master conf]$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1                 localhost.localdomain localhost
192.168.0.141           master
192.168.0.142           slave1
192.168.0.143           slave2

    - profile 또는 해당 사용자의 profile ( 나는 그냥 전체 적용시켜버리겠다 )
    /etc/profile 에 아래 내용 추가

    HADOOP_HOME=/usr/local/hadoop
    JAVA_HOME=/usr/local/java/j2se
    CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib/ext
    PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin
    export HADOOP_HOME_WARN_SUPPRESS=" " # 파티션 포멧할때 에러가 나서 사이트 검색해서 추가함.
    export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE INPUTRC JAVA_HOME CLASSPATH HADOOP_HOME

 

 

ㄹ. 디렉토리 생성
   
 -  네임노드용 디렉토리와, 작업용, 데이터용 디렉토리를 생성한다. ( 원래는 네임노드는 name만 데이터노드는 data만 있으면 되는데 귀찮아서;;; 한군데 다 만들고 그냥 vm-image clone 함.

     $>mkdir -p /home/hadoop/work/mapred/system
    $>mkdir -p /home/hadoop/work/data
    $>mkdir -p /home/hadoop/work/name
    $>chmod 755 /home/hadoop/work/data 
    #위의 chmod 를 한것은? 
    
네임노드가 올라오지 않고 에러가 자꾸 나서 찾아보고나서 권한수정
    위 작업이 없이 그냥 하둡을 실행하면.

    아래와 같은log4j에러가 찍힌다. 혹시 보게되면 이것을 꼭 해주길;;;
     WARN org.apache.hadoop.hdfs.DFSClient: Error Recovery for block null bad datanode[0] nodes == null
     WARN org.apache.hadoop.hdfs.DFSClient: Could not get block locations. Source file "/home/hadoop/work/mapred/system/jobtracker.info" - Aborting...
     WARN org.apache.hadoop.mapred.JobTracker: Writing to file hdfs://192.168.0.141:9000/home/hadoop/work/mapred/system/jobtracker.info failed!
     WARN org.apache.hadoop.mapred.JobTracker: FileSystem is not ready yet!
     WARN org.apache.hadoop.mapred.JobTracker: Failed to initialize recovery manager.
org.apache.hadoop.ipc.RemoteException: java.io.IOException: File /home/hadoop/work/mapred/system/jobtracker.info could only be replicated to 0 nodes, instead of 1
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:1558)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.addBlock(NameNode.java:696)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:563)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1388)
        at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:1384)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAs(Subject.java:415)
        at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1121)
        at org.apache.hadoop.ipc.Server$Handler.run(Server.java:1382)

        at org.apache.hadoop.ipc.Client.call(Client.java:1070)
        at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)
        at $Proxy5.addBlock(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:82)
        at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:59)
        at $Proxy5.addBlock(Unknown Source)
        at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.locateFollowingBlock(DFSClient.java:3510)
        at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.nextBlockOutputStream(DFSClient.java:3373)
        at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream.access$2600(DFSClient.java:2589)
        at org.apache.hadoop.hdfs.DFSClient$DFSOutputStream$DataStreamer.run(DFSClient.java:2829)

 

5. 각 os image 부팅후 각 서버별로 설정 (참고 : 지금 설치하는 사용자는 hadoop이라는 사용자로 설치한다. )

ㄱ. ssh 설정 
     각서버를 패스워드 없이 드나들고 , hadoop 이 각 노드와의 처리를 위해서 노인증처리 작업을 한다.

     - 아래 작업은 3대중에 1곳만 한다. (어차피 복사할거라..) 
     - hadoop 계정으로 로그인후 ( 로그인 되어있으면 말고.. )
     $> cd [Enter] ( 홈디렉토리 이동 )
    $> ssh-keygen -t rsa [Enter]
     $> [Enter][Enter][Enter][Enter][Enter][Enter] ....
     * 이렇게 하고나서 다시 프롬프트가 나오면 확인차
     $> ls -al [Enter]
     * .ssh 라는 이름의 숨겨진 디렉토리가 보일것이다.
     $> cd .ssh [Enter]
    $> cp id_rsa.pub authorized_keys [Enter]

     * 이제 다른 서버로 접속 ( master에서 설치했다면 slave1 이나 slave2 로 접속한다.) 
     $> ssh slave1 
     [어쩌고 저쩌고] yes/no ? 물을것이다.  
     한번도 들어와 본적이 없는곳이라면 물어보겠지 일종의 암호를 저장하시겠습니까? 와 비슷한... (암호를 저장하는것은 아니다!)
     - yes 하면 패스워드를 물을것이 들어가본다.
     - 잘 들어가지면 다시 나온다.
     $>exit [Enter]
     해당 .ssh 디렉토리내부를 다른서버에 복사

     * 위의 작업을 한곳을 제외한 나머지곳에는 ssh-keygen -t rsa 명령어 치고 엔터나치면서 .ssh 디렉토리를 생성하고나서.

     $>scp * hadoop@slave1:.ssh [Enter]
     * 그러면 패스워드 한번 묻고 복사가 될것이다.

     * 그렇게 하고나서 다시 ssh master 나 ssh 아이피등 어찌되었든 3개의 서버를 와따갔다해보면 
     yes/no ? 최초에 한번묻고 패스워드는 안물어 볼 것이다.( 이래야 정상인데;;; )

 

  ㄴ. Hadoop 관련 설정 ( 내 하둡 위치 : /usr/local/hadoop )

      - conf 디렉토리 안에 설정파일 몇가지를 수정한다.
      - hadoop-env.sh 
        #JAVA_HOME 수정후 주석풀기.
        #HADOOP_HEAPSIZE 주석풀기. 
        #HADOOP_SSH_OPTS 주석풀기. [data노드가 연결이 안되어서 이것저것 찾아보다가 이부분도 풀었다;;]


- core-site.xml
 <configuration>
 <property>
        <name>fs.default.name</name>
        <value>hdfs://192.168.0.141:9000</value>
 </property>
 </configuration>

 

- hdfs-site.xml
  <configuration>
        <property>
                <name>dfs.replication</name>
                <value>2</value>
        </property>
        <property>
                <name>dfs.name.dir</name>
                <value>/home/hadoop/work/name</value>
        </property>
        <property>
                <name>dfs.data.dir</name>
                <value>/home/hadoop/work/data</value>
        </property>
        <property>
                <name>dfs.support.append</name>
                <value>true</value>
        </property>
</configuration>

 

mapred-site.xml
  <configuration>
    <property>
        <name>mapred.map.child.java.opts</name>
        <value>-Xmx200m </value>
    </property>
    <property>
        <name>mapred.reduce.child.java.opts</name>
        <value>-Xmx200m </value>
    </property>
    <property>
        <name>mapred.job.tracker</name>
        <value>hdfs://192.168.0.141:9001</value>
    </property>
    <property>
        <name>mapred.system.dir</name>
        <value>/home/hadoop/work/mapred/system</value>
    </property>
</configuration>


 

- slaves
  192.168.0.142
  192.168.0.143

위 설정파일(4가지)도 각 서버에 전부 적용해도 된다. 여기다가 쓴이유는..... 아무생각없이 작성하다가;;; 여기다가 썼다; 

 

6. hadoop 띄우기[완료]

ㄱ. 시작전 포멧
     위에서 path를 hadoop밑의bin디렉토디도 추가했다면
     $> hadoop namenode -format [Enter]

     사실 위의 명령어를 한번 딱치면 format 이 실패했다고 떠버렸다. 처음이라 그런가 하여 다시 시도하면 바로 성공;;; 

12/06/19 12:29:40 INFO namenode.NameNode: STARTUP_MSG: 
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG:   host = master/192.168.0.141
STARTUP_MSG:   args = [-format]
STARTUP_MSG:   version = 1.0.3
STARTUP_MSG:   build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.0 -r 1335192; compiled by 'hortonfo' on Tue May  8 20:31:25 UTC 2012
************************************************************/
Re-format filesystem in /home/hadoop/work/name ? (Y or N) Y # 다시 시도한 흔적 ㅎㅎ;
12/06/19 12:29:42 INFO util.GSet: VM type       = 64-bit
12/06/19 12:29:42 INFO util.GSet: 2% max memory = 17.77875 MB
12/06/19 12:29:42 INFO util.GSet: capacity      = 2^21 = 2097152 entries
12/06/19 12:29:42 INFO util.GSet: recommended=2097152, actual=2097152
12/06/19 12:29:43 INFO namenode.FSNamesystem: fsOwner=hadoop
12/06/19 12:29:43 INFO namenode.FSNamesystem: supergroup=supergroup
12/06/19 12:29:43 INFO namenode.FSNamesystem: isPermissionEnabled=true
12/06/19 12:29:43 INFO namenode.FSNamesystem: dfs.block.invalidate.limit=100
12/06/19 12:29:43 INFO namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)
12/06/19 12:29:43 INFO namenode.NameNode: Caching file names occuring more than 10 times
12/06/19 12:29:43 INFO common.Storage: Image file of size 112 saved in 0 seconds.
12/06/19 12:29:43 INFO common.Storage: Storage directory /home/hadoop/work/name has been successfully formatted.
12/06/19 12:29:43 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at master/192.168.0.141
************************************************************/

 

 

ㄴ.  시작[완료]

$>start-all.sh [Enter]
starting namenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-hadoop-namenode-master.out
192.168.0.142: starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave1.out
192.168.0.143: starting datanode, logging to /usr/local/hadoop/libexec/../logs/hadoop-hadoop-datanode-slave2.out
192.168.0.141: starting secondarynamenode, logging to /usr/local/hadoop/libexec/../logs/hadoop-hadoop-secondarynamenode-master.out
starting jobtracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-hadoop-jobtracker-master.out
192.168.0.142: starting tasktracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave1.out
192.168.0.143: starting tasktracker, logging to /usr/local/hadoop/libexec/../logs/hadoop-hadoop-tasktracker-slave2.out

위 메세지 마냥 각 연결된 노드를 전부 띄워주는것 같다 [선지식이 없는 상태에서 하다보니 추측만 할뿐]

* 실제로 start-all.sh 파일을 열어보면 두개의 실행을 해주는것을 확인했다. [아래는 start-all.sh 파일]
     
bin=`dirname "$0"`
bin=`cd "$bin"; pwd`

if [ -e "$bin/../libexec/hadoop-config.sh" ]; then
  . "$bin"/../libexec/hadoop-config.sh
else
  . "$bin/hadoop-config.sh"
fi

# start dfs daemons
"$bin"/start-dfs.sh --config $HADOOP_CONF_DIR

# start mapred daemons
"$bin"/start-mapred.sh --config $HADOOP_CONF_DIR

      하나는 분산파일시스템 시작인것 같고. 하나는 맵리듀스인지 나발인지 올리는것 같다;;;;

 

 

ㄷ. 확인

     이것도 관리자같은것이 있다[Oracle이나 MSSQL 같은 EM 은 아니고 그냥 상태 파악용??? 현황판?]

 http://192.168.0.141:50070

 

 

 

http://192.168.0.141:50030 

- 두개의 노드가 live하다라든가 [ 두개 노드 datanode만 말하는것 같다. ]
- 용량이 어쩌구 저쩌구 되어있고. [ heap 인걸보니 아마도 파일을 메모리에 올려놓고 사용하는 양을 예기하는것 같은데... ]

 

* 이제부터 책과 함께 이것저것 하면서 파봐야한다.

* 자바로 띄우는걸 보니 자바로 접근하는것이 상당히 유연할듯한데. 개인적으로 자바를 별로 안좋아라 해서 약간 걱정이다.

* 프로젝트있을때만 한 자바.... 개놈에 자바.... 아무튼 오라클과 hadoop 테스트 때문에 불가피하게 또 해야겠다.... (-.ㅜ)

 

신고

'OpenSource(Bigdata&distribution&Network) > BigData' 카테고리의 다른 글

log파일 flume으로 hdfs에 저장하기  (2) 2015.10.02
Hadoop Hbase 이용한 데이터 적재및 결과 DB전송  (0) 2015.09.17
Hive java connection 설정  (0) 2012.08.04
Hive로 결정.  (0) 2012.07.31
Hbase 설치.  (0) 2012.07.29
hadoop 설치  (2) 2012.06.18
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설
2010.09.25 12:56

Grid Control 10g Agent Oracle/10g. Oracle Application2010.09.25 12:56

Grid Control 를 이용하여 전혀 다른 외부서버를 관리할수있다.
Agent만 설치하면 Grid Control에 연결되어 중앙에서 편하게 관리가 가능하다.

Enterprise Manager를 봤을때 충분하게 생길수있는 기능인것 같다.

Grid Control을 설치한 서버 oracle1.oracle.com 을 이용하여
새로운 전혀다른 호스트 oracle2.oracle.com 에 agent를 설치하고 oracle1.oracle.com 에
접속하여 새로운 호스트가 등록된다.

Agent 가 설치될 환경.
VMware 7.1 + Oracle Enterprise Linux 4 update 8 32 Bit
( 오라클 10g 설치한상태이며 prod 라는 이름의 DB를 생성한상태이다. )
물론 /etc/hosts 에는 grid control의 정보가 들어있다.

1. agent를 설치할테니. 4번째것 선택.



2. 설치경로 선택.


3. 역시나 스펙확인 - agent만 설치하기에 sysstat 은 필요가 없나보다. ㅎㅎ;;


4. Grid Control 서버위치 입력.


5. 패스워드 입력.


6. 설치요약


7. 인스톨 고고~


8. 역시나 root 가 무언갈 해줘야한다.

[root@oracle2 ~]# /u01/app/oracle/OracleHomes/agent10g/root.sh
Running Oracle10 root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/OracleHomes/agent10g

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]:

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.

[root@oracle2 ~]#

9. 설치후 configure 설정 - agent라서 각종 여러가지가 나왔던것이 1개로 줄어버렸다.



10. 설치완료~


11. oracle1.oracle.com의 grid control 에 접속해보면~
oracle2.oracle.com 이 자동으로 등록이 되어있다.


12. 음... prod.oracle.com 도 등록이 되어있다.
자동으로 다 찾는구나.....



신고

'Oracle > 10g. Oracle Application' 카테고리의 다른 글

Grid Control 10g Agent  (0) 2010.09.25
Grid Control 10g 설치.  (0) 2010.09.22
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설
2010.09.22 22:59

Grid Control 10g 설치. Oracle/10g. Oracle Application2010.09.22 22:59

설치사양 : VMWARE 7.1 + Oracle Enterprise Linux 4 update 8 32Bit
(2cpu, 1GB RAM, 20GB HDD)



그리드 컨트롤을 설치하는데 제약사항이 좀있더라.

1-1. 기존에 있는 DB를 가지고 grid Control을 설치할경우 emca 명령어로 em을 drop 시켜야한다.
(그냥 생성했더니. sysman 이 생성되서 그러나보다. - 아니면 어찌하여튼간에 em 관련 뭔가가 설치가 되었다는 소리였으니.)

1-2. 리스너 관련 에러.



위의 두가지 해결책 :
emca -deconfig dbcontrol db -repos drop;



2. SGA 사이즈는 최소 270메가 이상정도 되어야한다. ( 편하게 300M )
(DBCA로 DB를 설치할때 적게 줬더니 이런에러도 나버렸다.)


해결책 :
alter system set sga_max_size = 300m scope=spfile;
alter system set sga_target = 300m scope=spfile;

3. shared_server 구성에 필요한 dispatchers parameter 를 확인한다.
최적의 성능을 위해서 비워라.


해결책 : alter system set dispatchers ='' scope=both;


4. RPM sysstat 을 설치할것.
rpm -Uvh sysstat~~~~~~

5. DBMS_SHARED_POOL package 가 필요하다.

해결책 : $ORACLE_HOME/rdbms/admin/dbmspool.sql 을 실행.

6. 세션 caching 수 늘려야하는 문제


해결책 : alter system set session_cached_cursors = 200 scope=spfile;
위의 사항은 내가 겪은 내용이다 분명 이것말고도 설치도중에 또 생길지 모른다.


위의 에러를 방지하기위한 기본설정을 마치고 설치 해본다.



1. DBCA로 만들어놓은 EMREP 를 사용해본다.


2. 설치경로 설정.


3. 각종 설정 여부 체크 ( 위의 sysstat 체크는 여기서 한다. )


4. database host name 


5. 각종 외부 커넥션 관련 설정 ( 이메일도 없고.... 메타링크 정보도 필요없고.... )


6. 패스워드 설정 - 오라클 대표 패스워드인 oracle이 안된다.~ oracle1 ~은 되네....


7. 설치요약.


8. 설치되고있는중~~~


9. 설치가 되면 역시나 root가 해줘야할일이 생긴다.

[root@oracle1 RPMS]# /u01/app/oracle/product/10.2.0/gc/oms10g/allroot.sh

Starting to execute allroot.sh .........

Starting to execute /u01/app/oracle/product/10.2.0/gc/oms10g/root.sh ......
Running Oracle10 root.sh script...
\nThe following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/10.2.0/gc/oms10g

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: n
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: n
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: n

Adding entry to /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished execution of  /u01/app/oracle/product/10.2.0/gc/oms10g/root.sh ......


Starting to execute /u01/app/oracle/product/10.2.0/gc/agent10g/root.sh ......
Running Oracle10 root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/10.2.0/gc/agent10g

Enter the full pathname of the local bin directory: [/usr/local/bin]:
The file "dbhome" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: n
The file "oraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: n
The file "coraenv" already exists in /usr/local/bin.  Overwrite it? (y/n)
[n]: n

Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.
Finished product-specific root actions.
Finished execution of  /u01/app/oracle/product/10.2.0/gc/agent10g/root.sh ......[root@oracle1 RPMS]#


10. 설치후 각종 설정 화면. ( 정말 오래걸린다...... 지겹다...... ) 



OMS Configuration에서 에러가 났다.
Configuration assistant "OMS Configuration" failed 

로그를 보니 아래와 같은 에러.

[24-09-2010 19:07:37] Creating repos user ...
DECLARE
*
ERROR at line 1:
ORA-01119: error in creating database file
'/u01/app/oracle/product/10.2.0/gc/oms10g/oradata/mgmt.dbf'
ORA-27040: file create error, unable to create file
Linux Error: 2: No such file or directory
ORA-06512: at line 44

생각없이 처음 설정에서 oradata를 그냥 넘어갔더니....
osm10g 밑으로 oradata 디렉토리가 없다.
그래서 직접 oradata todtjd
[oracle@oracle1 oms10g]$ mkdir oradata
그리고나서 retry

..... 또 기다린다..... 아..... 오래걸리네....



이제 설치를 마치고...


지랄맞은 브라우저 제한.... 그냥 윈도우에서 되게 해야것네;;;

설치끝~

db 올리고~~
/u01/app/oracle/product/gc/oms10g/opmn/bin/opmnctl startall
/u01/app/oracle/product/gc/agent10g/bin/emctl start agent

짠~~~

신고

'Oracle > 10g. Oracle Application' 카테고리의 다른 글

Grid Control 10g Agent  (0) 2010.09.25
Grid Control 10g 설치.  (0) 2010.09.22
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설

10GB만 추가해 보자.

첫번째 노드에서 하드디스크를 추가.

 

기존 4개디스크에서 더 추가를해서 5,6번이 생겼다.

그리고 scsi1:5.deviceType = "disk" 를 추가하고

각 4개노드의 vmx 파일에다가 다 추가를 한다.

 

scsi1:5.present = "TRUE"
scsi1:5.fileName = "M:\vm_asmdisk\disk5\asmdisk5.vmdk"
scsi1:5.mode = "independent-persistent"
scsi1:5.deviceType = "disk"


scsi1:6.present = "TRUE"
scsi1:6.fileName = "M:\vm_asmdisk\disk6\asmdisk6.vmdk"
scsi1:6.mode = "independent-persistent"
scsi1:6.deviceType = "disk"

 

부팅하하고

[root@rac1 ~]# fdisk -l

 

첫번째 추가된하드.

Disk /dev/sdg: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdg doesn't contain a valid partition table

 

두번째 추가된하드.

Disk /dev/sdh: 5368 MB, 5368709120 bytes
255 heads, 63 sectors/track, 652 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/sdh doesn't contain a valid partition table

 

FDISK 로 Format 작업.

[root@rac1 ~]# fdisk /dev/sdg
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-652, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-652, default 652):
Using default value 652

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
[root@rac1 ~]#

 

[root@rac1 ~]# fdisk /dev/sdh
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel. Changes will remain in memory only,
until you decide to write them. After that, of course, the previous
content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-652, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-652, default 652):
Using default value 652

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

[root@rac1 ~]#

 

[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL5 /dev/sdg1
Marking disk "VOL5" as an ASM disk:                        [  OK  ]
[root@rac1 ~]# /etc/init.d/oracleasm createdisk VOL6 /dev/sdh1   
Marking disk "VOL6" as an ASM disk:                        [  OK  ]
[root@rac1 ~]# /etc/init.d/oracleasm listdisks                
VOL1
VOL2
VOL3
VOL4
VOL5
VOL6
[root@rac1 ~]# 


신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설

이제 4노드를 설치하려고 한다.

3노드의 OS설치본을 복사해서

설정을 4노드에 맞게 바꾸고나서.

 

설치~~~

 

CRS , DB instance 관련 파일 설치 후

이제 netca 와 dbca 실행하는데

 

에러가 발생했다.

(일단 파일 생성은 되었으나 instance 시작이 안되었다는 소리일테니 재부팅해서 다시 확인하기로

결정)


rac4-> crs_stat -t
Name           Type           Target    State     Host       
------------------------------------------------------------
ora.devdb.db   application    ONLINE    ONLINE    rac1       
ora....b1.inst application    ONLINE    ONLINE    rac1       
ora....b2.inst application    ONLINE    ONLINE    rac2       
ora....b3.inst application    ONLINE    ONLINE    rac3       
ora....b4.inst application    OFFLINE   OFFLINE              
ora....SM1.asm application    ONLINE    ONLINE    rac1       
ora....C1.lsnr application    ONLINE    ONLINE    rac1       
ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
ora.rac1.ons   application    ONLINE    ONLINE    rac1       
ora.rac1.vip   application    ONLINE    ONLINE    rac1       
ora....SM2.asm application    ONLINE    ONLINE    rac2       
ora....C2.lsnr application    ONLINE    ONLINE    rac2       
ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
ora.rac2.ons   application    ONLINE    ONLINE    rac2       
ora.rac2.vip   application    ONLINE    ONLINE    rac2       
ora....SM3.asm application    ONLINE    ONLINE    rac3       
ora....C3.lsnr application    ONLINE    ONLINE    rac3       
ora.rac3.gsd   application    ONLINE    ONLINE    rac3       
ora.rac3.ons   application    ONLINE    ONLINE    rac3       
ora.rac3.vip   application    ONLINE    ONLINE    rac3       
ora....SM4.asm application    ONLINE    UNKNOWN   rac4       
ora....C4.lsnr application    ONLINE    ONLINE    rac4       
ora.rac4.gsd   application    ONLINE    ONLINE    rac4       
ora.rac4.ons   application    ONLINE    ONLINE    rac4       
ora.rac4.vip   application    ONLINE    ONLINE    rac4 

 

젠장할 일이다. 문제가 뭘까 우선 희망을 가지고 일단 재부팅을 해보기로 했다.

 

노드가 많아서 그런지 동시에 4개노드를 구동시키면 가끔씩 instance 가 안뜨는 일이 발생했었다.

내PC에서 4개노드가 버벅거린다.

 

그래도 쓸만한 pc인데 말이지.

 

본인 PC는 그래도 쓸만하다.

 

그러고 보니 내 pc사양을 적은 적이 없어서 적는다.

 

OS : window 7 64 Bit

CPU : Intel(R) Core(TM)2 Quad CPU Q9550 @2.83z 2.67Hz

RAM : 8.00 GB

 

실제 vmware 에서 사용하는 각 노드 이미지파일과 공유디스크 이미지 파일도 별도로 구성했다.

랩터 - 벨로시랩터 136기가 10,000RPM 이라

그래도 잘돌아가는편이다.


에디터나 동영상프로그램(야동?) 기타 스크린샷 뜨는 프로그램, CRT,vmware 띄웠을때의

메모리 사용량.

 

이제 vmware 의 각노드를 띠우련다.

1.번노드.


2번 노드.


3번 노드.


4번 노드.



음 설치당시에 오류가 났었으나 재부팅을 하니 이상없이 asm , instance 가 전부 올라왔다.

rac4-> crs_stat -t
Name           Type           Target    State     Host       
------------------------------------------------------------
ora.devdb.db   application    ONLINE    ONLINE    rac1       
ora....b1.inst application    ONLINE    ONLINE    rac1       
ora....b2.inst application    ONLINE    ONLINE    rac2       
ora....b3.inst application    ONLINE    ONLINE    rac3       
ora....b4.inst application    ONLINE    ONLINE    rac4       
ora....SM1.asm application    ONLINE    ONLINE    rac1       
ora....C1.lsnr application    ONLINE    ONLINE    rac1       
ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
ora.rac1.ons   application    ONLINE    ONLINE    rac1       
ora.rac1.vip   application    ONLINE    ONLINE    rac1       
ora....SM2.asm application    ONLINE    ONLINE    rac2       
ora....C2.lsnr application    ONLINE    ONLINE    rac2       
ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
ora.rac2.ons   application    ONLINE    ONLINE    rac2       
ora.rac2.vip   application    ONLINE    ONLINE    rac2       
ora....SM3.asm application    ONLINE    ONLINE    rac3       
ora....C3.lsnr application    ONLINE    ONLINE    rac3       
ora.rac3.gsd   application    ONLINE    ONLINE    rac3       
ora.rac3.ons   application    ONLINE    ONLINE    rac3       
ora.rac3.vip   application    ONLINE    ONLINE    rac3       
ora....SM4.asm application    ONLINE    ONLINE    rac4       
ora....C4.lsnr application    ONLINE    ONLINE    rac4       
ora.rac4.gsd   application    ONLINE    ONLINE    rac4       
ora.rac4.ons   application    ONLINE    ONLINE    rac4      

ora.rac4.vip   application    ONLINE    ONLINE    rac4 

 

아! 한가지 더 난 ora.devdb.db 의 node에 따라서 달라지는 줄 알았는데 그건 아닌것 같다.

우연의 일치로 node3 에선 그랬지만 node4 는 그렇지 않았다.

 
이제~~~ 오라클 4노드로  이것저것 여러가지를 테스트를 해야것다. ~~~` 끝~

신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설

2개노드에서 4번노드를 실패하고

재부팅을 해본결과 1번노드가 죽었다.......

4번노드는 뭐 당연히 실패했으니 죽은상태고.

 

그래서 다시 2노드 상태에서 노드 1개만 더 추가해보기로 했다.

 

헌데 설치과정에서 이런메세지를 봤다.

 

node3 에서 crs 설치 성공후 




위와 같은 메세지가 나와서 일단 걱정되어 NO를 선택했더니 위와같은 상태로 실패.

 

그래서 일단 다시 시도해서 YES를 눌러서 진행을 해서 성공.

 

엇!!!!!!!!!!!!!!! 그랬더니.

rac3-> crs_stat -t
Name           Type           Target    State     Host       
------------------------------------------------------------
ora.devdb.db   application    ONLINE    ONLINE    rac2       
ora....b1.inst application    ONLINE    ONLINE    rac1       
ora....b2.inst application    ONLINE    ONLINE    rac2       
ora....b3.inst application    ONLINE    ONLINE    rac2       
ora....SM1.asm application    ONLINE    ONLINE    rac1       
ora....C1.lsnr application    ONLINE    ONLINE    rac1       
ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
ora.rac1.ons   application    ONLINE    ONLINE    rac1       
ora.rac1.vip   application    ONLINE    ONLINE    rac1       
ora....SM2.asm application    ONLINE    ONLINE    rac2       
ora....SM3.asm application    ONLINE    ONLINE    rac2       
ora....C2.lsnr application    ONLINE    ONLINE    rac2       
ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
ora.rac2.ons   application    ONLINE    ONLINE    rac2       
ora.rac2.vip   application    ONLINE    ONLINE    rac2       
ora....C3.lsnr application    ONLINE    ONLINE    rac3       
ora.rac3.gsd   application    ONLINE    ONLINE    rac3       
ora.rac3.ons   application    ONLINE    ONLINE    rac3       
ora.rac3.vip   application    ONLINE    ONLINE    rac3   

 

아니 이런 골때린 상황~~~~ b3.inst 가 rac2 ...    

 

 

젠장. 마지막이라는 심정으로 다시 설치했다.

그런데 . 이번에는 정상.

 

rac3-> crs_stat -t
]Name           Type           Target    State     Host       
------------------------------------------------------------
ora.devdb.db   application    ONLINE    ONLINE    rac3       
ora....b1.inst application    ONLINE    ONLINE    rac1       
ora....b2.inst application    ONLINE    ONLINE    rac2       
ora....b3.inst application    ONLINE    ONLINE    rac3       
ora....SM1.asm application    ONLINE    ONLINE    rac1       
ora....C1.lsnr application    ONLINE    ONLINE    rac1       
ora.rac1.gsd   application    ONLINE    ONLINE    rac1       
ora.rac1.ons   application    ONLINE    ONLINE    rac1       
ora.rac1.vip   application    ONLINE    ONLINE    rac1       
ora....SM2.asm application    ONLINE    ONLINE    rac2       
ora....C2.lsnr application    ONLINE    ONLINE    rac2       
ora.rac2.gsd   application    ONLINE    ONLINE    rac2       
ora.rac2.ons   application    ONLINE    ONLINE    rac2       
ora.rac2.vip   application    ONLINE    ONLINE    rac2       
ora....SM3.asm application    ONLINE    ONLINE    rac3       
ora....C3.lsnr application    ONLINE    ONLINE    rac3       
ora.rac3.gsd   application    ONLINE    ONLINE    rac3       
ora.rac3.ons   application    ONLINE    ONLINE    rac3       
ora.rac3.vip   application    ONLINE    ONLINE    rac3       
rac3->

 

정상화면을 볼수가 있었다. 절차는 같았다.

그래서 예상해보건데~

 

이건 실패의 경우

ora.devdb.db   application    ONLINE    ONLINE    rac2       
ora....b1.inst application    ONLINE    ONLINE    rac1       
ora....b2.inst application    ONLINE    ONLINE    rac2       
ora....b3.inst application    ONLINE    ONLINE    rac2    

 

이건 성공의 경우

ora.devdb.db   application    ONLINE    ONLINE    rac3       
ora....b1.inst application    ONLINE    ONLINE    rac1       
ora....b2.inst application    ONLINE    ONLINE    rac2       
ora....b3.inst application    ONLINE    ONLINE    rac3   

 

ora.devdb.db 가 어떤노드냐에 따라서 결정되는것인가??? 하고 예상해본다.

정확하진 않지만 같은 방법으로 설치를 다시 했음에도 불구하고

처음은 저런 결과가 . 두번째는 또 저런결과가 나온걸 봐선.

그렇게 밖에 상상이 되지 않는다.

신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설

netca

1. cluster configration 선택 후 다음

2. 전체노드 선택 후 다음

3. Listener configuration 선택 후 다음

4. Reconfigure 선택 후 다음

5. TCP만 선택후 다음. ( TCPS 설정 안했으니.... )

6. Use the standard port number of 1521 선택 후 다음

7. No ( 클러스터용리스너만 변경시킬거라 다른건 필요없음. ) 선택 후 다음.

 

Oracle Net Services Configuration:
Configuring Listener:LISTENER
rac1...
rac2...
rac3...
rac4...
Listener configuration complete.

 

8. Listener configuration default 선택. Finish 선택 완료.

 

 

 

 

dbca 구성.

1. Oracle Real Application Clusters database 선택

2. Instance Management 선택

3. Add an Instance 선택

4. sys 계정 정보 입력.

5. 현재 운영중인 node 보여준다. [다음]

6. rac3 node의 instance name 등록 ( 기본값 SID = devdb3 )

 

 

다른 작업이 또있다. rac4 작업도 해야하기에

Do you want to perform another operation ? Yes~선택

다시 위의 2번 항목이 있는곳으로 이동.

2. Instance Management 선택

3. Add an Instance 선택

4. sys 계정 정보 입력.

5. 현재 운영중인 node 보여준다. 방금 추가된 rac3 도 나온다.

6. rac4 와 sid devdb4 설정.

 

헛 오류난다. ㅡ_ㅡ;;;;




3번노드까진 성공했는데 샹~~~~ 리부팅하고 dbca를 다시 한번 시도 해보자.

노드가 3개가 정상연결된후 다시 dbca를 시도해봐야겠다.

 

[oracle@rac1 bin]$ crs_stat -t
Name           Type           Target    State     Host
------------------------------------------------------------
ora.devdb.db   application    ONLINE    ONLINE    rac1
ora....b1.inst application    ONLINE    ONLINE    rac1
ora....b2.inst application    ONLINE    ONLINE    rac2
ora....b3.inst application    ONLINE    ONLINE    rac3
ora....b4.inst application    ONLINE    OFFLINE
ora....SM1.asm application    ONLINE    ONLINE    rac1
ora....C1.lsnr application    ONLINE    ONLINE    rac1
ora.rac1.gsd   application    ONLINE    ONLINE    rac1
ora.rac1.ons   application    ONLINE    ONLINE    rac1
ora.rac1.vip   application    ONLINE    ONLINE    rac1
ora....SM2.asm application    ONLINE    ONLINE    rac2
ora....C2.lsnr application    ONLINE    ONLINE    rac2
ora.rac2.gsd   application    ONLINE    ONLINE    rac2
ora.rac2.ons   application    ONLINE    ONLINE    rac2
ora.rac2.vip   application    ONLINE    ONLINE    rac2
ora....SM3.asm application    ONLINE    ONLINE    rac3
ora....C3.lsnr application    ONLINE    ONLINE    rac3
ora.rac3.gsd   application    ONLINE    ONLINE    rac3
ora.rac3.ons   application    ONLINE    ONLINE    rac3
ora.rac3.vip   application    ONLINE    ONLINE    rac3
ora....C4.lsnr application    ONLINE    ONLINE    rac4
ora.rac4.gsd   application    ONLINE    ONLINE    rac4
ora.rac4.ons   application    ONLINE    ONLINE    rac4
ora.rac4.vip   application    ONLINE    ONLINE    rac4

신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설

$ORACLE_HOME/oui/bin/addNode.sh



각노드 둘다 실행.

[root@rac3 ~]# /u01/app/oracle/product/10.2.0/db_1/root.sh
Running Oracle10 root.sh script...

The following environment variables are set as:
    ORACLE_OWNER= oracle
    ORACLE_HOME=  /u01/app/oracle/product/10.2.0/db_1

Enter the full pathname of the local bin directory: [/usr/local/bin]:
   Copying dbhome to /usr/local/bin ...
   Copying oraenv to /usr/local/bin ...
   Copying coraenv to /usr/local/bin ...


Creating /etc/oratab file...
Entries will be added to the /etc/oratab file as needed by
Database Configuration Assistant when a database is created
Finished running generic part of root.sh script.
Now product-specific root actions will be performed.

 

여기까지가 database 설치 완료

신고
Posted by ORACLE,DBA,BIG,DATA,JAVA 흑풍전설