1. zookeeper
- 配置
- cp app/ochadoop-och3.0.0-SNAPSHOT/zookeeper-3.4.5-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/conf/zoo_sample.cfg app/ochadoop-och3.0.0-SNAPSHOT/zookeeper-3.4.5-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/conf/zoo.cfg
- vim app/ochadoop-och3.0.0-SNAPSHOT/zookeeper-3.4.5-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/conf/zoo.cfg
- dataDir=/home/cdh5/tmp/zookeeper
- clientPort=2183
- server.1=ocdata09:2888:3888
- mkdir -p /home/cdh5/tmp/zookeeper
- vim /home/cdh5/tmp/zookeeper/myid
- echo "1" > /home/cdh5/tmp/zookeeper/myid
- 初始化操作:
或者 ./runRemoteCmd.sh '~/och200/zookeeper/bin/zkServer-initialize.sh --myid=1' zoo
- 分发配置
- ./deploy.sh app/ochadoop-och3.0.0-SNAPSHOT/zookeeper-3.4.5-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/conf/zoo.cfg app/ochadoop-och3.0.0-SNAPSHOT/zookeeper-3.4.5-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/conf/ zoo
- ./runRemoteCmd.sh "app/ochadoop-och3.0.0-SNAPSHOT/zookeeper-3.4.5-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/bin/zkServer.sh start" zoo
- ./runRemoteCmd.sh 'echo ruok | nc localhost 2183' zoo
- ./runRemoteCmd.sh "app/ochadoop-och3.0.0-SNAPSHOT/zookeeper-3.4.5-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/bin/zkServer.sh stop" zoo
- 启动
- 验证
- 停止
2. HDFS
- 配置hadoop
- hdfs-site.xml
- <property>
- <name>dfs.nameservices</name>
- <value>cdh5cluster</value>
- <description>
- Comma-separated list of nameservices.
- </description>
- </property>
- <property>
- <name>dfs.datanode.address</name>
- <value>0.0.0.0:50011</value>
- <description>
- The datanode server address and port for data transfer.
- If the port is 0 then the server will start on a free port.
- </description>
- </property>
- <property>
- <name>dfs.datanode.http.address</name>
- <value>0.0.0.0:50076</value>
- <description>
- The datanode http server address and port.
- If the port is 0 then the server will start on a free port.
- </description>
- </property>
- <property>
- <name>dfs.datanode.ipc.address</name>
- <value>0.0.0.0:50021</value>
- <description>
- The datanode ipc server address and port.
- If the port is 0 then the server will start on a free port.
- </description>
- </property>
- <property>
- ()
- <name>dfs.nameservices</name>
- <value>cdh5cluster</value>
- </property>
- <property>
- (命名空间中所有NameNode的唯一标示名称。可以配置多个,使用逗号分隔。该名称是可以让DataNode知道每个集群的所有NameNode.当前,每个集群最多只能配置两个NameNode)
- <name>dfs.ha.namenodes.cdh5cluster</name>
- <value>nn1,nn2</value>
- <description></description>
- </property>
- <property>
- <name>dfs.namenode.name.dir</name>
- <value>file:///data1/cdh5/dfs/name</value>
- <description>Determines where on the local filesystem the DFS name node should store the name table.If this is a comma-delimited list of directories,then name table is replicated in all of the directories,for redundancy.</description>
- <final>true</final>
- </property>
- <property>
- <name>dfs.datanode.data.dir</name>
- <value>file:///data1/cdh5/dfs/data,file:///data2/cdh5/dfs/data,file:///data3/cdh5/dfs/data</value>
- <final>true</final>
- </property>
- <property>
- <name>dfs.replication</name>
- <value>3</value>
- </property>
- <property>
- <name>dfs.permission</name>
- <value>true</value>
- </property>
- <property>
- <name>dfs.datanode.hdfs-blocks-metadata.enabled</name>
- <value>true</value>
- <description>
- Boolean which enables backend datanode-side support for the experimental DistributedFileSystem*getFileVBlockStorageLocations API.
- </description>
- </property>
- <property>
- <name>dfs.permissions.enabled</name>
- <value>false</value>
- <description>
- If "true", enable permission checking in HDFS.
- If "false", permission checking is turned off,
- but all other behavior is unchanged.
- Switching from one parameter value to the other does not change the mode,
- owner or group of files or directories.
- </description>
- </property>
- <property>
- (每个NAMENODE监听的RPC地址)
- <name>dfs.namenode.rpc-address.cdh5cluster.nn1</name>
- <value>ocdata09:8030</value>
- <description>节点NN1的RPC地址</description>
- </property>
- <property>
- <name>dfs.namenode.rpc-address.cdh5cluster.nn2</name>
- <value>ocdata08:8030</value>
- <description>节点NN2的RPC地址</description>
- </property>
- <property>
- <name>dfs.namenode.http-address.cdh5cluster.nn1</name>
- <value>ocdata09:50082</value>
- <description>节点NN1的HTTP地址</description>
- </property>
- <property>
- <name>dfs.namenode.http-address.cdh5cluster.nn2</name>
- <value>ocdata08:50082</value>
- <description>节点NN2的HTTP地址</description>
- </property>
- <property>
- (这是NameNode读写JNs的uri。通过这个uri,NameNodes可以读写edit log内容。URI的格式”qjournal://host1:port1;host2:port2;host3:port3/journalId”。这里的host1、host2、host3指的是Journal Node的地址,这里必须是奇数个,至少3个;其中journaId是集群的唯一标示符,对于多个联邦命名空间,也使用同一个journaId。配置如下J
- <name>dfs.namenode.shared.edits.dir</name>
- <value>qjournal://ocdata05:8488;ocdata06:8488;ocdata07:8488/cdh5cluster</value>
- <description>采用3个journalnode节点存储元数据,这是IP与端口</description>
- </property>
- <property>
- <name>dfs.journalnode.edits.dir</name>
- <value>/home/cdh5/journaldata/jn</value>
- <description>journaldata的存储路径</description>
- </property>
- <property>
- <name>dfs.journalnode.rpc-address</name>
- <value>0.0.0.0:8488</value>
- </property>
- <property>
- <name>dfs.journalnode.http-address</name>
- <value>0.0.0.0:8483</value>
- </property>
- <property>
- <name>dfs.client.failover.proxy.provider.cdh5cluster</name>
- <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
- <description>该类用来判断哪个namenode处于生效状态</description>
- </property>
- <property>
- <name>dfs.ha.fencing.methods</name>
- <value>shell(/bin/true)</value>
- </property>
- <property>
- <name>dfs.ha.fencing.ssh.connect-timeout</name>
- <value>10000</value>
- </property>
- <property>
- <name>dfs.ha.automatic-failover.enabled</name>
- <value>true</value>
- <description>
- Whether automatic failover is enabled. See the HDFS High
- Availability documentation for details on automatic HA
- configuration.
- </description>
- </property>
- <property>
- <name>ha.zookeeper.quorum</name>
- <value>ocdata09:2183</value>
- <description>1个zookeeper节点</description>
- </property>
- <property>
- <name>dfs.datanode.max.xcievers</name>
- <value>4096</value>
- </property>
- <property>
- <name>dfs.datanode.max.transfer.threads</name>
- <value>4096</value>
- <description>
- Specifies the maximum number of threads to use for transferring data
- in and out of the DN.
- </description>
- </property>
- <property>
- <name>dfs.blocksize</name>
- <value>64m</value>
- <description>
- The default block size for new files, in bytes.
- You can use the following suffix (case insensitive):
- k(kilo), m(mega), g(giga), t(tera), p(peta), e(exa) to specify the size (such as 128k, 512m, 1g, etc.),
- Or provide complete size in bytes (such as 134217728 for 128 MB).
- </description>
- </property>
- <property>
- <name>dfs.namenode.handler.count</name>
- <value>20</value>
- <description>The number of server threads for the namenode.</description>
- </property>
- <property>
- (这是一个描述集群中NameNode节点的URI(包括协议、主机名称端口号—)集群里面的每一台机器都要知道NAMENODE的地址。DataNode节点会先在NAMENODE上注册,这样它们的数据才可以被使用。独立的客户端程序通过这个URI跟DATANODE交互,以取得文件的块列表。)
- <name>fs.defaultFS</name>
- <value>hdfs://cdh5cluster</value>
- </property>
- <property>
- (hadoop文件系统依赖的基础配置,很多路径都依赖它。如果hdfs-site.xml中不配置namenode和datanode的存放位置,默认就放在这个路径中)
- <name>hadoop.tmp.dir</name>
- <value>/home/cdh5/tmp/hadoop/hadoop-${user.name}</value>
- </property>
- <property>
- core-site.xml
(对本地jar包进行加载)
- <name>io.native.lib.available</name>
- <value>true</value>
- <description>Should native hadoop libraries, if present, be used.</description>
- </property>
- (压缩和解压编码类列表,用逗号分隔,这些类是使用java ServiceLoader加载,如果不设置就为null)
- <property>
- <name>io.compression.codecs</name> <value>org.apache.hadoop.io.compress.GzipCodec,org.apache.hadoop.io.compress.SnappyCodec</value>
- </property>
- ocdata05
- ocdata06
- ocdata07
- ocdata08
- ocdata09
- ocdata05
- ocdata06
- export JAVA_HOME=/home/cdh5/app/jdk1.7.0_21
- ./deploy.sh app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/etc/hadoop app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/etc all
- slaves
- masters
- hadoop-env.sh
- 分发
- 初始化HDFS:
主节点执行
app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/bin/hdfs zkfc -formatZK
./runRemoteCmd.sh 'app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/sbin/hadoop-daemon.sh start journalnode' jn
app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/bin/hdfs namenode -format -initializeSharedEdits
app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/sbin/hadoop-daemon.sh start namenode
备节点执行
app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/bin/hdfs namenode -bootstrapStandby
完成
app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/sbin/hadoop-daemon.sh stop namenode
./runRemoteCmd.sh 'app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/sbin/hadoop-daemon.sh stop journalnode' jn
- 启动HDFS
- app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/sbin/start-dfs.sh
- http://10.1.253.99:50082/dfshealth.html (active)
- http://10.1.253.98:50082/dfshealth.html (standby)
- http://10.1.253.97:8483/journalstatus.jsp
- http://10.1.253.96:8483/journalstatus.jsp
- http://10.1.253.95:8483/journalstatus.jsp
- app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/sbin/stop-dfs.sh
- 验证:
- 停止HDFS
3. Yarn
配置YARN
- mapred-site.xml
- cp app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/etc/hadoop/mapred-site.xml.template app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/etc/hadoop/mapred-site.xml
- vim app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/etc/hadoop/mapred-site.xml
- <property>
- <name>mapreduce.framework.name</name>
- <value>yarn</value>
- </property>
- <property>
- <name>mapreduce.shuffle.port</name>
- <value>8350</value>
- </property>
- <property>
- <name>mapreduce.jobhistory.address</name>
- <value>0.0.0.0:10121</value>
- </property>
- <property>
- <name>mapreduce.jobhistory.webapp.address</name>
- <value>0.0.0.0:19868</value>
- </property>
- <property>
- <name>mapreduce.jobtracker.http.address</name>
- <value>0.0.0.0:50330</value>
- </property>
- <property>
- <name>mapreduce.tasktracker.http.address</name>
- <value>0.0.0.0:50360</value>
- </property>
- vim app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/etc/hadoop/yarn-site.xml
- <!-- Resource Manager Configs -->
- <property>
- <name>yarn.resourcemanager.connect.retry-interval.ms</name>
- <value>2000</value>
- </property>
- <property>
- <name>yarn.resourcemanager.ha.enabled</name>
- <value>true</value>
- </property>
- <property>
- <name>yarn.resourcemanager.ha.automatic-failover.enabled</name>
- <value>true</value>
- </property>
- <property>
- <name>yarn.resourcemanager.ha.automatic-failover.embedded</name>
- <value>true</value>
- </property>
- <property>
- <name>yarn.resourcemanager.cluster-id</name>
- <value>yarn-rm-cluster</value>
- </property>
- <property>
- <name>yarn.resourcemanager.ha.rm-ids</name>
- <value>rm1,rm2</value>
- </property>
- <property>
- <description>Id of the current ResourceManager. Must be set explicitly on each ResourceManager to the appropriate value.</description>
- <name>yarn.resourcemanager.ha.id</name>
- <value>rm1</value>
- <!-- rm1上配置为rm1, rm2上配置rm2 -->
- </property>
- <property>
- <name>yarn.resourcemanager.recovery.enabled</name>
- <value>true</value>
- </property>
- <property>
- <name>yarn.resourcemanager.store.class</name>
- <value>org.apache.hadoop.yarn.server.resourcemanager.recovery.ZKRMStateStore</value>
- </property>
- <property>
- <name>yarn.resourcemanager.zk.state-store.address</name>
- <value>ocdata09:2183</value>
- </property>
- <property>
- <name>yarn.resourcemanager.zk-address</name>
- <value>ocdata09:2183</value>
- </property>
- <property>
- <name>yarn.app.mapreduce.am.scheduler.connection.wait.interval-ms</name>
- <value>5000</value>
- </property>
- <!-- RM1 configs -->
- <property>
- <name>yarn.resourcemanager.address.rm1</name>
- <value>ocdata08:23140</value>
- </property>
- <property>
- <name>yarn.resourcemanager.scheduler.address.rm1</name>
- <value>ocdata08:23130</value>
- </property>
- <property>
- <name>yarn.resourcemanager.webapp.address.rm1</name>
- <value>ocdata08:23188</value>
- </property>
- <property>
- <name>yarn.resourcemanager.resource-tracker.address.rm1</name>
- <value>ocdata08:23125</value>
- </property>
- <property>
- <name>yarn.resourcemanager.admin.address.rm1</name>
- <value>ocdata08:23141</value>
- </property>
- <property>
- <name>yarn.resourcemanager.ha.admin.address.rm1</name>
- <value>ocdata08:23142</value>
- </property>
- <!-- RM2 configs -->
- <property>
- <name>yarn.resourcemanager.address.rm2</name>
- <value>ocdata09:23140</value>
- </property>
- <property>
- <name>yarn.resourcemanager.scheduler.address.rm2</name>
- <value>ocdata09:23130</value>
- </property>
- <property>
- <name>yarn.resourcemanager.webapp.address.rm2</name>
- <value>ocdata09:23188</value>
- </property>
- <property>
- <name>yarn.resourcemanager.resource-tracker.address.rm2</name>
- <value>ocdata09:23125</value>
- </property>
- <property>
- <name>yarn.resourcemanager.admin.address.rm2</name>
- <value>ocdata09:23141</value>
- </property>
- <property>
- <name>yarn.resourcemanager.ha.admin.address.rm2</name>
- <value>ocdata09:23142</value>
- </property>
- <!-- Node Manager Configs -->
- <property>
- <description>Address where the localizer IPC is.</description>
- <name>yarn.nodemanager.localizer.address</name>
- <value>0.0.0.0:23344</value>
- </property>
- <property>
- <description>NM Webapp address.</description>
- <name>yarn.nodemanager.webapp.address</name>
- <value>0.0.0.0:23999</value>
- </property>
- <property>
- <name>yarn.nodemanager.aux-services</name>
- <value>mapreduce_shuffle</value>
- </property>
- <property>
- <name>yarn.nodemanager.aux-services.mapreduce_shuffle.class</name>
- <value>org.apache.hadoop.mapred.ShuffleHandler</value>
- </property>
- <property>
- <name>yarn.nodemanager.local-dirs</name>
- <value>/tmp/pseudo-dist/yarn/local</value>
- </property>
- <property>
- <name>yarn.nodemanager.log-dirs</name>
- <value>/tmp/pseudo-dist/yarn/log</value>
- </property>
- ./deploy.sh app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/etc/hadoop app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/etc all
- app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/sbin/start-yarn.sh
- yarn-site.xml
- 分发
- Yarn的启动停止 YARN不需要初始化,登录主节点执行
cdh5 yarn的ha需要手动启动备节点
./runRemoteCmd.sh "cd app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/sbin; ./yarn-daemon.sh start resourcemanager" rm2
验证
http://10.1.253.98:23188/cluster (有节点列表,active)
http://10.1.253.99:23188/cluster (无节点列表,standby)
app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/bin/hadoop jar app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/share/hadoop/mapreduce/hadoop-mapreduce-client-jobclient-*-tests.jar TestDFSIO -write -nrFiles 40 -fileSize 20MB
停止YARN
app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/sbin/stop-yarn.sh
手动停止备节点
./runRemoteCmd.sh "cd app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/sbin; ./yarn-daemon.sh stop resourcemanager" rm2
4. hive
- 配置
- cp hive-env.sh.template hive-env.sh
- vim hive-env.sh
- export HADOOP_HOME=/home/cdh5/app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT
- cp hive-default.xml.template hive-site.xml
- vim hive-site.xml
删除其他配置项,只保留:
<property>
(配置元数据库,一般为mysql)
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql://10.1.252.69:3306/cdh5?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=UTF-8</value>
</property>
<property>
(配置元数据库的Driver)
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
(配置元数据库的名称)
<name>javax.jdo.option.ConnectionUserName</name>
<value>cdh5</value>
<description>username to use against metastore database</description>
</property>
<property>
(配置元数据库的密码)
<name>javax.jdo.option.ConnectionPassword</name>
<value>cdh5</value>
<description>password to use against metastore database</description>
</property>
- 元数据库配置
- CREATE USER cdh5 IDENTIFIED BY 'cdh5';
- CREATE DATABASE cdh5;
- alter database cdh5 character set latin1;
- grant all privileges on *.* to cdh5@"%" identified by "cdh5";
- flush privileges;
- scp mysql-connector-java-5.1.26.jar cdh5@10.1.253.99:/home/cdh5/app/ochadoop-och3.0.0-SNAPSHOT/hive-0.12.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/lib/
- ./deploy.sh app/ochadoop-och3.0.0-SNAPSHOT/hive-0.12.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT app/ochadoop-och3.0.0-SNAPSHOT/ hive
- nohup ./hiveserver2 &
- jdbc:
- jdbc:hive2://10.1.253.99:10000/default
- org.apache.hive.jdbc.HiveDriver
- lib: Hadoop和hive下所有jar包
- !connect jdbc:hive2://10.1.253.99:10000/default
- Enter username:dmp
- Enter password:dmp
- show tables;
- --------------
- | tab_name |
- --------------
- | shaoaq_test |
- --------------
- select * from shaoaq_test;
- -----
- | id |
- -----
- -----
- 上传jdbc jar包
- 分发
- 启动
- 验证
5. hbase
- 配置
- vim app/ochadoop-och3.0.0-SNAPSHOT/hbase-0.96.1.1-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/conf/regionservers
- ocdata05
- ocdata06
- ocdata07
- vim app/ochadoop-och3.0.0-SNAPSHOT/hbase-0.96.1.1-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/conf/backup-masters
- ocdata08
- vim app/ochadoop-och3.0.0-SNAPSHOT/hbase-0.96.1.1-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/conf/hbase-site.xml
- <property>
- <name>hbase.rootdir</name>
- <value>hdfs://cdh5cluster/hbase</value>
- </property>
- <property>
- <name>hbase.cluster.distributed</name>
- <value>true</value>
- </property>
- <property>
- <name>hbase.zookeeper.quorum</name>
- <value>ocdata09</value>
- </property>
- <property>
- <name>hbase.zookeeper.property.clientPort</name>
- <value>2183</value>
- </property>
- <property>
- <name>hbase.regionserver.port</name>
- <value>60328</value>
- </property>
- <property>
- <name>hbase.regionserver.info.port</name>
- <value>62131</value>
- </property>
- vim app/ochadoop-och3.0.0-SNAPSHOT/hbase-0.96.1.1-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/conf/hbase-env.sh
- export JAVA_HOME=/home/cdh5/app/jdk1.7.0_51
- export HBASE_CLASSPATH=/home/cdh5/app/ochadoop-och3.0.0-SNAPSHOT/hadoop-2.2.0-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/etc/hadoop
- export HBASE_HOME=/home/cdh5/app/hbase
- export HADOOP_HOME=/home/cdh5/app/hadoop
- export HADOOP_CONF_DIR=${HADOOP_HOME}/conf
- export HBASE_LIBRARY_PATH=${HBASE_HOME}/lib/native
- export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:${HBASE_HOME}/lib/native
- export HBASE_MANAGES_ZK=false
- ./deploy.sh app/ochadoop-och3.0.0-SNAPSHOT/hbase-0.96.1.1-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/conf app/ochadoop-och3.0.0-SNAPSHOT/hbase-0.96.1.1-cdh5.0.0-beta-2-och3.0.0-SNAPSHOT/ all
- ./start-hbase.sh
- ./hbase shell
- create 'hb_test', 'cf'
- put 'hb_test','row1','cf:a','123'
- get 'hb_test','row1'
- COLUMN CELL
- cf:a timestamp=1395204538429, value=123
- 1 row(s) in 0.0490 seconds
- quit
- ./stop-hbase.sh
- 分发配置
- 启动
- 验证
- 停止
5. spark
spark当前可解压即用,yarn-client模式无需分发,只需修改客户端若干配置;
- spark-1.1.0 on yarn的几个配置说明如下:
- vim spark-env.sh
- MASTER:部署模式,yarn-client/yarn-cluster/local
- HADOOP_CONF_DIR:(必填)hadoop配置文件目录
- SCALA_HOME:scala安装路径
- SPARK_EXECUTOR_INSTANCES:spark申请的yarn worker总数
- SPARK_EXECUTOR_CORES:每个worker申请的vcore数目
- SPARK_EXECUTOR_MEMORY:每个worker申请的内存大小
- SPARK_DRIVER_MEMORY:spark申请的appMaster内存大小
- SPARK_YARN_APP_NAME:yarn中显示的spark任务名称
- SPARK_YARN_QUEUE:spark任务队列
- SPARK_SUBMIT_LIBRARY_PATH:spark任务执行时需要的库目录,如hadoop的native目录
- SPARK_CLASSPATH:spark任务的classpath
- SPARK_JAVA_OPTS:JVM进程参数,如gc类型、gc日志、dmp输出等
- SPARK_HISTORY_OPTS:spark history-server配置参数,一般需要指定webUI端口、记录个数以及Event存储目录等
- vim spark-defaults.conf
- spark.local.dir:spark任务执行时的本地临时目录
- spark.yarn.executor.memoryOverhead:每个worker的堆外内存大小,单位MB,yarn模式下需配置以防止内存溢出
- spark.eventLog.enabled:是否记录Spark事件,用 于应用程序在完成后重构webUI
- spark.eventLog.dir:保存日志相关信息的路径,可以是hdfs://开头的HDFS路径,也可以是file://开头的本地路径,都需要提前创建
- spark.eventLog.compress:是否压缩记录Spark事件,前提spark.eventLog.enabled为true,默认使用snappy
- 启停thrift-server:
使用spark-sql/thrift-server组件前需将hive-site.xml复制到$SPARK_HOME/conf目录下以使用hive的元数据和若干配置如server端口,可能需要去掉其中的一些多余或不支持的配置项,请留意;
$SPARK_HOME/sbin/start-thriftserver.sh
$SPARK_HOME/sbin/stop-thriftserver.sh
- 启停history-server:
- $SPARK_HOME/sbin/start-history-server.sh
- $SPARK_HOME/sbin/stop-history-server.sh
- 注意:
- 如hadoop中启用了lzo压缩需将hadoop-lzo-*.jar复制到SPARK_HOME/lib/目录下;
- SPARK-1.1.0版本中spark-examples-*.jar关联的thrift版本与spark-assembly-*.jar不一致,需删除;
- 配置样例:
spark-env.sh
MASTER="yarn-client"
SPARK_HOME=/home/ochadoop/app/spark
SCALA_HOME=/home/ochadoop/app/scala
JAVA_HOME=/home/ochadoop/app/jdk
HADOOP_HOME=/home/ochadoop/app/hadoop
HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
SPARK_EXECUTOR_INSTANCES=50
SPARK_EXECUTOR_CORES=2
SPARK_EXECUTOR_MEMORY=4G
SPARK_DRIVER_MEMORY=3G
SPARK_YARN_APP_NAME="Spark-1.1.0"
#export SPARK_YARN_QUEUE="default"
SPARK_SUBMIT_LIBRARY_PATH=$SPARK_LIBRARY_PATH:$HADOOP_HOME/lib/native
SPARK_JAVA_OPTS="-verbose:gc -XX:-UseGCOverheadLimit -XX: UseCompressedOops -XX:-PrintGCDetails -XX: PrintGCTimeStamps $SPARK_JAVA_OPTS -XX: HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/ochadoop/app/spark/`date %m%d%H%M%S`.hprof"
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=1000 -Dspark.history.fs.logDirectory=hdfs://testcluster/eventLog"
spark-defaults.conf
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.local.dir /data2/ochadoop/data/pseudo-dist/spark/local,/data3/ochadoop/data/pseudo-dist/spark/local
spark.io.compression.codec snappy
spark.speculation false
spark.yarn.executor.memoryOverhead 512
#spark.storage.memoryFraction 0.4
spark.eventLog.enabled true
spark.eventLog.dir hdfs://testcluster/eventLog
spark.eventLog.compress true
如下命令都是用root身份安装,或者在命令前加上sudo 采用yum安装方式安装 yum install mysql #安装mysql客户端 yum install mysql-server #安装mysql服务端 判断MySQL是否已经安装好: chkconfig --list|grep mysql 启动mysql服务: service mysqld start或者/etc/init.d/mysqld start 检查是否启动mysql服务: /etc/init.d/mysqld status 设置MySQL开机启动: chkconfig mysqld on 检查设置MySQL开机启动是否配置成功: chkconfig --list|grep mysql 显示2 3 4 5为on 创建root管理员 mysqladmin -uroot password root 登录 mysql -uroot -proot