设为首页 收藏本站
查看: 721|回复: 0

[经验分享] 写了个WORD版本,直接拷过来,格式就不修正了。

[复制链接]

尚未签到

发表于 2017-12-17 22:13:49 | 显示全部楼层 |阅读模式
写了个WORD版本,直接拷过来,格式就不修正了。
部署部分都是根据我自身的操作记录的,可能存在记录不全的问题,需要自己百度。
  其他一些是学习的建议,我学的比较快,部署加学习,两星期就搞定了,所以感觉还是靠谱的。
  另外,如果是初学者,建议先花一天时间熟悉下hadoop和spark的生态圈

大数据环境部署............................................................................................................... 1
  一、     部署说明............................................................................................................. 2
  二、     前期准备............................................................................................................. 2
  三、HADOOP部署.......................................................................................................... 2
  a)下载JDK,解压并配置JDK环境............................................................................. 2
  b)修改各台机器的主机名.......................................................................................... 3
  c)配置MASTER到各SLAVE的无密登录..................................................................... 3
  d)安装HADOOP.......................................................................................................... 3
  e)创建HADOOP结点................................................................................................. 3
  f)修改配置文件.......................................................................................................... 3
  g)使用pscp命令将主机上的修改同步到从机........................................................... 5
  h)格式化namenode................................................................................................... 6
  i)启动hadoop............................................................................................................. 6
  j)验证分布式集群...................................................................................................... 6
  四、SPARK部署............................................................................................................... 6
  a)安装SCALA.............................................................................................................. 6
  b)下载SPARK,解压,编辑conf/spark-env.sh文件,加入下面的配置参数............. 7
  c)配置slaves文件...................................................................................................... 7
  d)        同步配置到从机............................................................................................... 7
  e)启动Spark分布式集群并查看信息......................................................................... 7
  f)测试SPARK集群...................................................................................................... 7
  五、HIVE部署................................................................................................................. 7
  a)下载HIVE源码包,最新版自行去官网下载........................................................... 7
  b)配置环境变量......................................................................................................... 8
  c)安装MYSQL............................................................................................................. 8
  d)配置HIVE................................................................................................................ 9
  六、SPARKSQL部署....................................................................................................... 12
  七、开发环境部署........................................................................................................ 12
  八、集群监控................................................................................................................ 12
  九、spark rdd................................................................................................................. 13
  十、spark streaming....................................................................................................... 13
一、         部署说明
  a)          使用HADOOP分布式管理数据,一台作为主机,三台作为从机,后续再扩展
  b)          使用HIVE构建分区外表,与HDFS上的文件做映射
  c)          使用SPARKSQL调用HIVE表提升性能
  d)          使用SPARK的其他功能,流处理、机器学习、图像处理等,这些内容后续增加
  e)          部署SCALA\JAVA\PYTHON开发环境便于管理和实现功能
二、                                                                   前期准备
  a)          四台性能稍高的机器,磁盘500G,CPU4核32G(目前测试环境没有按照这个配置)
  b)          使用CENTOS6.8 DVD版本制作启动盘并按照系统
  c)          系统启动后进入图形界面配置网络(刚开始先在外网环境部署)
  d)          永久关闭防火墙chkconfigiptables off
  e)          安装一些库 yum install  lrzszopenssh-server
  f)           安装pssh,下载压缩包编译安装即可。
  g)          上面在机房操作,后续可以回到工位用XSHELL进行连接;也可以安装VNC控制图形界面,一般不需要
三、         HADOOP部署
  注:hadoop shell需要掌握,http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_shell.html
a)下载JDK,解压并配置JDK环境
  编译 vim /etc/profile
  JAVA_HOME=/root/software/jdk1.8.0_111
  JRE_HOME=/root/software/jdk1.8.0_111/jre
  PATH=$JAVA_HOME/bin:$PATH:JRE_HOME/bin
  CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

  export JAVA_HOME JRE_HOME PATH>  生效 source /etc/profile
b)修改各台机器的主机名
  vim /etc/sysconfig/network 修改HOSTNAME
  vim /etc/hosts 配置如下
  *.*.*.180 Master.Hadoop
  *.*.*.182 Slave1.Hadoop
  *.*.*.183 Slave2.Hadoop
  *.*.*.184     ave3.Hadoop
c)配置MASTER到各SLAVE的无密登录
  ssh-keygen -t rsa
  scp /root/.ssh/id_rsa.pub root@Slave1.Hadoop:/home
  cat /home/id_rsa.pub >> /root/.ssh/authorized_keys
  chmod 600 authorized_keys
d)安装HADOOP
  下载并解压
  添加HADOOP环境变量
  编辑 vim /etc/profile
  export HADOOP_INSTALL=/usr/local/hadoop
  export PATH=$PATH:$HADOOP_INSTALL/bin
  export PATH=$PATH:$HADOOP_INSTALL/sbin
  export HADOOP_MAPRED_HOME=$HADOOP_INSTALL
  export HADOOP_COMMON_HOME=$HADOOP_INSTALL
  export HADOOP_HDFS_HOME=$HADOOP_INSTALL
  export YARN_HOME=$HADOOP_INSTALL
  export HADOOP_HOME=/usr/local/hadoop
  生效 source /etc/profile
e)创建HADOOP结点
  在各台机器的HADOOP目录下创建tmpdfsdfs/data dfs/name
f)修改配置文件
  vim hadoop-env.sh 指定JAVA_HOME
  vim yarn-env.sh 指定JAVA_HOME
  vim mapred-env.sh 指定JAVA_HOME
  配置slaves文件
  添加从节点的机器名
  修改core-site.xml
  <configuration>
  <property>
  <name>fs.defaultFS</name>
  <value>hdfs://Master.Hadoop:9000/</value>
  </property>
  <property>
  <name>hadoop.tmp.dir</name>
  <value>/usr/local/hadoop/tmp</value>
  <description>Abase for other temporary directories. </description>
  </property>
  </configuration>
  修改hdfs-site.xml
  <configuration>
  <property>
  <name>dfs.namenode.name.dir</name>
  <value>/usr/local/hadoop/dfs/name</value>
  </property>
  /*配置datanode的数据存储目录*/
  <property>
  <name>dfs.datanode.data.dir</name>
  <value>/usr/local/hadoop/dfs/data</value>
  </property>
  /*配置副本数*/
  <property>
  <name>dfs.replication</name>
  <value>2</value>
  </property>
  </configuration>
  修改mapred-site.xml
  <configuration>
  <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
  </property>
  </configuration>
  修改yarn-site.xml
  <configuration>
  <property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
  </property>
  <property>
  <name>yarn.nodemanager.auxservices.mapreduce.shuffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
  <property>
  <name>yarn.resourcemanager.address</name>
  <value>Master.Hadoop:8032</value>
  </property>
  <property>
  <name>yarn.resourcemanager.scheduler.address</name>
  <value>Master.Hadoop:8030</value>
  </property>
  <property>
  <name>yarn.resourcemanager.resource-tracker.address</name>
  <value>Master.Hadoop:8031</value>
  </property>
  <property>
  <name>yarn.resourcemanager.admin.address</name>
  <value>Master.Hadoop:8033</value>
  </property>
  <property>
  <name>yarn.resourcemanager.webapp.address</name>
  <value>Master.Hadoop:8088</value>
  </property>
  <property>
  <name>yarn.nodemanager.resource.memory-mb</name>
  <value>2048</value>
  </property>
  <property>
  <name>yarn.nodemanager.resource.cpu-vcores</name>
  <value>1</value>
  </property>
  </configuration>
g)使用pscp命令将主机上的修改同步到从机
  命令格式:pscp -h host.txt 本机路径远程路径
  Host.txt为从机的主机名
  其中将/etc/profile传过去后需要source /etc/profile生效
h)格式化namenode
  hadoopnamenode -format
i)启动hadoop
  sbin/start-all.sh
  查看是否配置和启动成功
  主机上jps
  9555 Jps
  8405 ResourceManager
  8006 NameNode
  8221 SecondaryNameNode
  从机上jps
  24728 NodeManager
  24606 DataNode
  25423 Jps
  可以去MASTER:8088上查看运行情况
j)验证分布式集群
  在hdfs文件系统上创建两个目录
  hadoop fs -mkdir -p /data/wordcount
  hadoop fs -mkdir -p /output
  上传一个文本文件
  hadoop fs -put xxx.txt /data/wordcount
  执行自带的WORDCOUNT例子
  hadoop ***examples***.jar wordcount /data/wordcount/ /output/wordcount
四、SPARK部署
a)安装SCALA
  Vim /etc/profile
  export SCALA_HOME=/home/chengxu/scala-2.10.4/scala-2.10.4
  export PATH=${SCALA_HOME}/bin:$PATH
  source /etc/profile
b)下载SPARK,解压,编辑conf/spark-env.sh文件,加入下面的配置参数
  export SCALA_HOME=/path/to/scala-2.10.4
  export SPARK_WORKER_MEMORY=7g
  export SPARK_MASTER_IP=172.16.0.140
  export MASTER=spark://172.16.0.140:7077
c)配置slaves文件
  Slave1
  Slave2
  Slave3
  Slave4
  Slave5
d)同步配置到从机
e)启动Spark分布式集群并查看信息
  Start-all.sh并jps查看信息:
  -bash-4.1# jps
  23526 Jps
  2127 Master
  7396 NameNode
  7594 SecondaryNameNode
  7681  ourceManager
f)测试SPARK集群
  通过SPARK-SHELL读取hdfs文件,并计算单词个数,细节不再赘述
五、HIVE部署
a)下载HIVE源码包,最新版自行去官网下载
  wgethttp://mirrors.cnnic.cn/apache/hive/hive-1.2.1/apache-hive-1.2.1-bin.tar.gz
  tar -zxf apache-hive-1.2.1-bin.tar.gz -C /usr/local
b)配置环境变量
  Vi /etc/profile
  HIVE_HOME=/home/hadoop/apache-hive-1.2.1-bin
  PATH=$PATH:$HIVE_HOME/bin
  export HIVE_NAME PATH
  source /etc/profile
c)安装MYSQL
  i.              安装依赖包
  yum install gccgcc-c++ ncurses-devel  -y
  ii.              安装cmake
  # wget http://www.cmake.org/files/v2.8/cmake-2.8.12.tar.gz
  # tar zxvf cmake-2.8.12.tar.gz
  # cd cmake-2.8.12
  # ./bootstrap
  # make && make install
  iii.              创建用户的相应目录
  # groupaddmysql
  # useradd -g mysqlmysql
  # mkdir -p /data/mysql/
  # mkdir -p /data/mysql/data/
  # mkdir -p /data/mysql/log/
  iv.              获取mysql安装包并安装
  # wget http://dev.mysql.com/get/downloads/mysql/mysql-5.6.25.tar.gz
  # tar zxvf mysql-5.6.25.tar.gz
  # cd mysql-5.6.25
  # cmake \
  -DCMAKE_INSTALL_PREFIX=/data/mysql \
  -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \
  -DDEFAULT_CHARSET=utf8 \
  -DDEFAULT_COLLATION=utf8_general_ci \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
  -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
  -DMYSQL_DATADIR=/data/mysql/data \
  -DMYSQL_TCP_PORT=3306 \
  -DENABLE_DOWNLOADS=1
  如果报错找不到CMakeCache.txt则说明没安装ncurses-devel
  # make && make install
  v.              修改目录权限
  # chmod +w /data/mysql/
  # chown -R mysql:mysql /data/mysql/
  # ln -s /data/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18
  # ln -s /data/mysql/mysql.sock /tmp/mysql.sock
  vi.              初始化数据库
  # cp /data/mysql/support-files/my-default.cnf /etc/my.cnf
  # cp /data/mysql/support-files/mysql.server /etc/init.d/mysqld
  # /data/mysql/scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf --basedir=/data/mysql --datadir=/data/mysql/data
  vii.              启动mysql服务
  # chmod +x /etc/init.d/mysqld
  # service mysqld start
  #ln –s /data/mysql/bin/mysql /usr/bin/
  viii.              初始化密码
  修改MySQL的配置文件(默认为/etc/my.cnf),在[mysqld]下添加一行skip-grant-tables
  重启mysql
  再次进入MySQL命令行mysql -uroot -p,输入密码时直接回车,就会进入MySQL数据库了,这个时候按照常规流程修改root密码即可
  密码修改完毕后,删掉配置文件中的那行,并且重启MySQL服务,新密码就生效了
  ix.              创建hive数据库
  mysql>create database hive;
d)配置HIVE
  x.              修改配置文件
  进入到hive的配置文件目录下,找到hive-default.xml.template,cp份为hive-default.xml
  另创建hive-site.xml并添加参数
  <configuration>
  <property>
  <name>javax.jdo.option.ConnectionURL</name>
  <value>jdbc:mysql://Master.Hadoop:3306/hive?createDatabaseIfNotExist=true</value>
  <description>JDBC connect string for a JDBC metastore</description>
  </property>
  <property>
  <name>javax.jdo.option.ConnectionDriverName</name>
  <value>com.mysql.jdbc.Driver</value>

  <description>Driver>  </property>
  <property>
  <name>javax.jdo.option.ConnectionUserName</name>
  <value>root</value>
  <description>username to use against metastore database</description>
  </property>
  <property>
  <name>javax.jdo.option.ConnectionPassword</name>
  <value>123456</value>
  <description>password to use against metastore database</description>
  </property>
  <property>
  <name>hive.metastore.schema.verification</name>
  <value>false</value>
  <description>
  Enforce metastore schema version consistency.
  True: Verify that version information stored in metastore matches with one from Hive jars.  Also disable automatic
  schema migration attempt. Users are required to manully migrate schema after Hive upgrade which ensures
  proper metastore schema migration. (Default)
  False: Warn if the version information stored in metastore doesn't match with one from in Hive jars.
  </description>
  </property>
  <property>
  <name>datanucleus.fixedDatastore</name>
  <value>false</value>
  </property>
  <property>
  <name>datanucleus.autoCreateSchema</name>
  <value>true</value>
  </property>
  <property>
  <name>datanucleus.autoCreateTables</name>
  <value>true</value>
  </property>
  <property>
  <name>datanucleus.autoCreateColumns</name>
  <value>true</value>
  </property>
  </configuration>
  xi.              JDBC下载
  wgethttp://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.36.tar.gz
  cp mysql-connector-java-5.1.33-bin.jar apache-hive-1.2.1-bin/lib/
  xii.              Hive客户端配置
  拷贝/etc/profile和hive到从机
  修改hive-site.xml
  <configuration>
  <property>
  <name>hive.metastore.uris</name>
  <value>thrift://hadoop-master:9083</value>
  </property>
  </configuration>
  xiii.              Hive启动
  hive --service metastore&
  这个终端不能关闭
[hadoop@hadoop-master~]$jps

  10288 RunJar  #多了一个进程
  9365 NameNode
  9670 SecondaryNameNode
  11096 Jps
  9944 NodeManager
  9838 ResourceManager
  9471 DataNode
  xiv.              Hive服务器端访问
  执行hive进入HIVE模式并创建hive数据库
  创建测试文本test_20170120.txt
  数据内容为:
  why$99
  zpp$100
  将该文本文件上传到HDFS
  创建分区外表
[iyunv@Masterlocal]# hive -e "use fmrt;

  > create external table hivetest(
  > name string,
  > age int
  > )partitioned by(day_p string)
  > row format delimited fields terminated by '$'
  > STORED AS TEXTFILE;"
  映射HDFS文件
  alter table hivetest add partition(day_p='20170120') location '/data/20170120';
  查询表
  hive> select * from hivetest;
  OK
  why 99   20170120
  zpp  100 20170120
  Time taken: 0.105 seconds, Fetched: 2 row(s)
  xv.              Hive客户端访问
  使用hive命令登录并查询
  xvi.              HIVE分区的使用
  http://www.cnblogs.com/lovelanglangyou/p/5534296.html
  一般使用分区外表
六、SPARKSQL部署
  在spark/conf目录下创建hive-site.xml文件,内容如下:
  <configuration>
  <property>
  <name>hive.metastore.uris</name>
  <value>thrift://Master.Hadoop:9083</value>
  <description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
  </property>
  </configuration>
七、开发环境部署
  PYTHON环境:
  下载python3.5源码,安装前需要先安装这些库
  yum install zlib-devel openssl-devel
  否则安装的时候,pip3会无法安装
  然后编译安装源码即可
  https://www.zhihu.com/question/30279880这是出错的一些处理
  最近特别迷jupyter,贼好用,远程访问的配置方法如下:
  http://www.cnblogs.com/zhanglianbo/p/6109939.html
  Scala环境:
  建议使用SBT,具体步骤网上搜索,此处省略
八、集群监控
  Hadoop监控页面
  http://*.*.*.180:8088/cluster
  spark监控页面
  http://*.*.*.180:8080/
  具体监控页面上去多点点,多看看就行。
  此处只是开个头,具体需要到网上再找文章深入学习
九、spark rdd
  参考官网http://spark.apache.org/docs/latest/programming-guide.html,
  不懂的地方再找中文更详细的例子
  不需要一次性记住,多写写代码,自然就会记住一些常用的。
  其他一些不用记住,熟悉即可,后续知道哪里去查就行
  我写了一些使用的例子,设计到基本的算子操作,spark_sql操作等等
  代码路径在Master /root/code:
  Study.py
  Spark python API需要一定的掌握 https://www.iteblog.com/archives/1395.html
  孰能生巧,多写写代码
十、spark streaming
  官网学习http://spark.apache.org/docs/latest/streaming-programming-guide.html,
  然后部署flume和kafaka
  Zookeeper集群配置
  Kafka集群配置
  使用python模拟kafka生产者传递数据
  编写sparkstreaming 代码作为kafka接受者
  这方面涉及很多概念,如果英文读起来吃力,可查找中文资料
  我写了一个例子,代码在Master结点的/root/code下:
  kafkaProducer.py userBehaviorMsgProducer.py webPagePopularityValueCalculator.py
  spark实时处理的典型例子是日志系统,《基于FlumeKafkaSpark-的分布式日志流处理系统的设计与实现》对此有非常好的介绍;
  高彦杰的《spark 大数据分析实践》里面有详细的配置和应用说明;
  下面是知乎上的一些看法:
  https://www.zhihu.com/question/36688175/answer/68692597
  目前MASTER上的例子,我参考了如下内容进行部署和代码测试:
  https://www.ibm.com/developerworks/cn/opensource/os-cn-spark-practice2/
  里面用的scala语言,我改成了python,语法参考如下:
  http://blog.csdn.net/chuliuxiangjiao/article/details/46838545
  里面用到了updateStateByKey原语,具体用法参考官网:
  http://spark.apache.org/docs/latest/streaming-programming-guide.html
  ---------------------------------------------------我是分割线--------------------------------------------------
  附:着重说明!!!!
  Spark官网得全部看完
  IBM developerWorks的文章很好,多搜搜
  查看文献是提升能力的重要方式,我下载了部分文献可供参考
  Spark自带的代码都需要看一遍,在MASTER上我改了很多内容
  Spark 机器学习 MLLib放在《机器学习开发与应用》内一并介绍
  SPARKGraphX 由于暂时不支持PYTHON,所以还未学习

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-425181-1-1.html 上篇帖子: 主流开源SQL(on Hadoop)总结 下篇帖子: Kylin安装问题--/home/hadoop-2.5.1/contrib/capacity-scheduler/.jar (No such file or
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表