完全分布式安装配置

来源:互联网 发布:vb连oracle数据库 编辑:程序博客网 时间:2024/06/10 17:03
<!--此处使用xml形式展示,便于在有些文件编辑工具中格式化展示,表明不同的部分和重点-->
<部分内容参考自 北风网大数据课程>
<!--基础环境配置-->< 1.安装ssh软件配置免密登陆>ssh-keygen  ssh-cpoy-id mini2<2.修改Linux主机名> /etc/sysconfig/network<3.修改IP>  修改IP地址:和HWaddr(mac)地址与上面的文件中的HWaddr地址一样                ONBOOT=yesBOOTPROTO=staticIPADDR=192.168.183.130GATEWAY=192.168.183.2NETMASK=255.255.255.0<注意: 虚拟机在集群搭建好之后,需要把网络是这一次dhcp,测试联通外网之后,再设置成static,这样才能和外网连接通。初步分析:   可能在第一次连接外网的时候拉去了部分需要的信息,之后静态地址使用了这些东西。><4.修改主机名和IP的映射关系>   ######注意######如果你们公司是租用的服务器或是使用的云主机(如华为用主机、阿里云主机等)/etc/hosts里面要配置的是内网IP地址和主机名的映射关系<5.关闭防火墙>    1. Linux防火墙(Iptables)重启系统生效开启: chkconfig iptables on  关闭: chkconfig iptables off  2.Linux防火墙(Iptables) 即时生效,重启后失效开启: service iptables start  关闭: service iptables stop  ------------------------------------------------------------------------------------------------------------安装步骤:<!--1.安装配置zooekeeper集群(在weekend05上)-->1.1解压tar -zxvf zookeeper-3.4.5.tar.gz -C /weekend/1.2修改配置cd /weekend/zookeeper-3.4.5/conf/cp zoo_sample.cfg zoo.cfgvim zoo.cfg修改:dataDir=/weekend/zookeeper-3.4.5/tmp在最后添加:server.1=weekend05:2888:3888server.2=weekend06:2888:3888server.3=weekend07:2888:3888保存退出然后创建一个tmp文件夹mkdir /weekend/zookeeper-3.4.5/tmp再创建一个空文件touch /weekend/zookeeper-3.4.5/tmp/myid最后向该文件写入IDecho 1 > /weekend/zookeeper-3.4.5/tmp/myid1.3将配置好的zookeeper拷贝到其他节点(首先分别在weekend06、weekend07根目录下创建一个weekend目录:mkdir /weekend)scp -r /weekend/zookeeper-3.4.5/ weekend06:/weekend/scp -r /weekend/zookeeper-3.4.5/ weekend07:/weekend/注意:修改weekend06、weekend07对应/weekend/zookeeper-3.4.5/tmp/myid内容weekend06:echo 2 > /weekend/zookeeper-3.4.5/tmp/myidweekend07:echo 3 > /weekend/zookeeper-3.4.5/tmp/myid1.4 启动停止zookeeperzkServer.sh start/stop<!--2.安装配置hadoop集群(在weekend01上操作)-->2、将hadoop包进行解压缩:tar -zxvf hadoop-2.5.0-cdh5.3.6.tar.gz3、对hadoop目录进行重命名:mv hadoop-2.5.0-cdh5.3.6 hadoop4、配置hadoop相关环境变量vi ~/.bashrcexport HADOOP_HOME=/usr/local/hadoopexport PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbinsource ~/.bashrc5、创建/usr/local/data目录 <!--修改core-site.xml--> <property><name>fs.default.name</name>  <value>hdfs://sparkproject1:9000</value></property><property>        <name>ha.zookeeper.quorum</name>        <value>node1:2181,node2:2181,node3:2181</value></property><!---- 修改hdfs-site.xml--><property><name>dfs.name.dir</name><value>/usr/local/data/namenode</value></property><property><name>dfs.data.dir</name><value>/usr/local/data/datanode</value></property><property><name>dfs.tmp.dir</name><value>/usr/local/data/tmp</value></property><property><name>dfs.replication</name><value>2</value></property><!--修改mapred-site.xml--><property><name>mapreduce.framework.name</name><value>yarn</value></property><!-- 修改yarn-site.xml--><property><name>yarn.resourcemanager.hostname</name><value>sparkproject1</value></property><property><name>yarn.nodemanager.aux-services</name><value>mapreduce_shuffle</value></property><!--- 修改slaves文件-->sparkproject2sparkproject3< 在另外两台机器上搭建hadoop>scp -r hadoop root@sparkproject2:/usr/local< 启动hdfs集群>1、格式化namenode:在sparkproject1上执行以下命令,hdfs namenode -format2、启动hdfs集群:start-dfs.sh3、验证启动是否成功:jps、50070端口sparkproject1:namenode、secondarynamenodesparkproject2:datanodesparkproject3:datanode4、hdfs dfs -put hello.txt /hello.txt< 启动yarn集群>1、启动yarn集群:start-yarn.sh2、验证启动是否成功:jps、8088端口sparkproject1:resourcemanager、nodemanagersparkproject2:nodemanagersparkproject3:nodemanagerstart-all.sh启动所有,包括 start-yarn.sh start-dfs.sh<!--3 spark安装--><spark底层是使用scala实现的所以需要下载相对应的scala版本,设置scala的环境变量>< 修改spark-env.sh文件>1、cd /usr/local/spark/conf2、cp spark-env.sh.template spark-env.sh3、vi spark-env.shexport JAVA_HOME=/usr/java/latestexport SCALA_HOME=/usr/local/scalaexport HADOOP_HOME=/usr/local/hadoopexport HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop<slave配置>slaves.template slaves配置内容如下masterworker1worker2< 启动spark脚本 >/opt/spark-2.1.0-bin-hadoop2.7/sbin/start-all.sh< 用yarn-client模式提交spark作业>/usr/local/spark/bin/spark-submit \--class org.apache.spark.example.JavaSparkPi \--master yarn-client \--num-executors 1 \--driver-memory 10m \--executor-memory 10m \--executor-cores 1 \/usr/local/spark/lib/spark-examples-1.5.1-hadoop2.4.0.jar \<  用yarn-cluster模式提交spark作业>/usr/local/spark/bin/spark-submit \--class org.apache.spark.example.JavaSparkPi \--master yarn-cluster \--num-executors 1 \--driver-memory 10m \--executor-memory 10m \--executor-cores 1 \/usr/local/spark/lib/spark-examples-1.5.1-hadoop2.4.0.jar \<!--安装Kafka包 --><kafka也是用scala编写的需要配置scala环境变量>##配置kafkavi /usr/local/kafka/config/server.propertiesbroker.id:依次增长的整数,0、1、2,集群中Broker的唯一idzookeeper.connect=192.168.1.105:2181,192.168.1.106:2181,192.168.1.107:2181##安装slf4j将课程提供的slf4j-1.7.6.zip上传到/usr/local目录下unzip slf4j-1.7.6.zip把slf4j中的slf4j-nop-1.7.6.jar复制到kafka的libs目录下面<  搭建kafka集群>1、按照上述步骤在另外两台机器分别安装kafka。用scp把kafka拷贝到sparkproject2和sparkproject3即可。2、唯一区别的,就是server.properties中的broker.id,要设置为1和2<  启动kafka集群>在三台机器上的kafka目录下,分别执行以下命令:<  nohup bin/kafka-server-start.sh config/server.properties &  ><  测试kafka集群>使用基本命令检查kafka是否搭建成功<设置kafka主题>bin/kafka-topics.sh --zookeeper 192.168.1.105:2181,192.168.1.106:2181,192.168.1.107:2181 --topic TestTopic --replication-factor 1 --partitions 1 --create<启动生产者>bin/kafka-console-producer.sh --broker-list 192.168.1.105:9092,192.168.1.106:9092,192.168.1.107:9092 --topic TestTopic<启动消费者进程>bin/kafka-console-consumer.sh --zookeeper 192.168.1.105:2181,192.168.1.106:2181,192.168.1.107:2181 --topic TestTopic --from-beginning<!--flume安装-->< 修改flume配置文件 ><flume启动使用的是该配置文件,每个flume进程都可以单独配置一个配置文件,名字随意><在配置文件中需要指定zookeeper地址><此处没有实现flume的高可用是单机版的   高可用参考:http://blog.csdn.net/shouhuzhezhishen/article/details/64904848>vi /usr/local/flume/conf/flume-conf.properties#agent1表示代理名称agent1.sources=source1agent1.sinks=sink1agent1.channels=channel1#配置source1agent1.sources.source1.type=spooldiragent1.sources.source1.spoolDir=/usr/local/logsagent1.sources.source1.channels=channel1agent1.sources.source1.fileHeader = falseagent1.sources.source1.interceptors = i1agent1.sources.source1.interceptors.i1.type = timestamp#配置channel1agent1.channels.channel1.type=fileagent1.channels.channel1.checkpointDir=/usr/local/logs_tmp_cpagent1.channels.channel1.dataDirs=/usr/local/logs_tmp#配置sink1agent1.sinks.sink1.type=hdfsagent1.sinks.sink1.hdfs.path=hdfs://sparkproject1:9000/logsagent1.sinks.sink1.hdfs.fileType=DataStreamagent1.sinks.sink1.hdfs.writeFormat=TEXTagent1.sinks.sink1.hdfs.rollInterval=1agent1.sinks.sink1.channel=channel1agent1.sinks.sink1.hdfs.filePrefix=%Y-%m-%d< flume 启动命令>nohup sh flume-ng agent --conf-file ../conf/flume-conf.properties --name agent -Dflume.root.logger=INFO,console &<!--hbase 安装-->< -----------------------hbase_env.sh----------------------------------- >export JAVA_HOME=/usr/jdk/# Extra Java CLASSPATH elements.  Optional.这行代码是错的,需要可以修改为下面的形式#export HBASE_CLASSPATH=/home/hadoop/hbase/confexport JAVA_CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar# 设置垃圾回收机制GC(gabage collection)export HBASE_OPTS="-XX:+UseConcMarkSweepGC"#  true 内部自带的zookeeper  false自己的zookeeperexport HBASE_MANAGES_ZK=false< ---------------------------------hbase-site.xml  非高可用模式----------><configuration><property><name>hbase.rootdir</name><value>hdfs://spark1:9000/hbase</value></property><property><name>hbase.cluster.distributed</name><value>true</value></property><property><name>hbase.zookeeper.quorum</name><value>spark1,spark2,spark3</value></property><property><name>hbase.zookeeper.property.dataDir</name><value>/usr/local/data/hbasezookeeper</value></property><!--设置hbase主备之间时差最大的间隔--><property><name>hbase.master.maxclockskew</name> <value>180000</value></property></configuration>< --------------regionservers文件存放从节点的位置----------------------- >mini3mini4mini5< 启动hbase >start-hbase.sh<!--hive安装--> < 安装mysql >  1、在sparkproject1上安装mysql。2、使用yum安装mysql server。yum install -y mysql-serverservice mysqld startchkconfig mysqld on3、使用yum安装mysql connectoryum install -y mysql-connector-java4、将mysql connector拷贝到hive的lib包中cp /usr/share/java/mysql-connector-java-5.1.17.jar /usr/local/hive/lib5、在mysql上创建hive元数据库,创建hive账号,并进行授权create database if not exists hive_metadata;grant all privileges on hive_metadata.* to 'hive'@'%' identified by 'hive';grant all privileges on hive_metadata.* to 'hive'@'localhost' identified by 'hive';grant all privileges on hive_metadata.* to 'hive'@'spark1' identified by 'hive';flush privileges;use hive_metadata;<  配置hive-site.xml >mv hive-default.xml.template hive-site.xml<property>  <name>javax.jdo.option.ConnectionURL</name>  <value>jdbc:mysql://spark1:3306/hive_metadata?createDatabaseIfNotExist=true</value></property><property>  <name>javax.jdo.option.ConnectionDriverName</name>  <value>com.mysql.jdbc.Driver</value></property><property>  <name>javax.jdo.option.ConnectionUserName</name>  <value>hive</value></property><property>  <name>javax.jdo.option.ConnectionPassword</name>  <value>hive</value></property><  配置hive-env.sh和hive-config.sh >mv hive-env.sh.template hive-env.shvi /usr/local/hive/bin/hive-config.shexport JAVA_HOME=/usr/java/latestexport HIVE_HOME=/usr/local/hiveexport HADOOP_HOME=/usr/local/hadoop<  验证hive是否安装成功 >直接输入hive命令,可以进入hive命令行create table users(id int, name string) load data local inpath '/usr/local/users.txt' into table usersselect name from users 

原创粉丝点击