Hadoop3 Hive Spark完整安装与实践

大数据实践 Hadoop3 Hive Spark完全安装

  1. 在下载目录下打开终端,移动下载好的文件到/usr/local

    sudo mv 文件名 /usr/local
    
  2. /usr/local中解压文件

    cd /usr/local
    sudo tar -zxvf 文件名
    
  3. 改个名

    sudo mv 文件名 简称
    
  4. 安装一些工具

    sudo apt-get update
    sudo apt-get install -y openssh-client openssh-server vim ssh unzip
    
  5. 安装java

    sudo apt install openjdk-8-jdk openjdk-8-jre
    
  6. 配置java环境变量

    sudo gedit ~/.bashrc
    

    在最后添加

    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    export JRE_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre
    

    保存退出后刷新、验证

    source ~/.bashrc
    java -version
    

Lab 1

Hadoop配置

  1. 给文件夹添加最高权限

    sudo chmod 777 /usr/local/hadoop
    
  2. 给hadoop添加环境变量

    sudo gedit ~/.bashrc
    

    在最后添加

    export HADOOP_HOME=/usr/local/hadoop
    export HADOOP_INSTALL=$HADOOP_HOME
    export HADOOP_MAPRED_HOME=$HADOOP_HOME
    export HADOOP_COMMON_HOME=$HADOOP_HOME
    export HADOOP_HDFS_HOME=$HADOOP_HOME
    export HADOOP_YARN_HOME=$HADOOP_HOME
    export YARN_HOME=$HADOOP_HOME
    export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
    export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
    

    保存退出后刷新、验证

    source ~/.bashrc
    hadoop version
    
  3. 给HDFS的NameNode和DataNode建立文件夹,建立保存日志的文件夹

    mkdir -p $HADOOP_HOME/hdfs/namenode
    mkdir -p $HADOOP_HOME/hdfs/datanode
    mkdir $HADOOP_HOME/logs
    
  4. 进入hadoop的配置文件夹

    cd $HADOOP_HOME/etc/hadoop
    ls
    
  5. 在Hadoop-env.sh中添加JAVA_HOME

    gedit hadoop-env.sh
    

    在最后添加

    export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
    

    保存退出

  6. 配置core-site.xml

    gedit core-site.xml
    

    <configuration>中添加

     <property><name>fs.defaultFS</name><value>hdfs://bigdata-master:9000/</value></property>
    

    保存退出

  7. 配置hdfs-site.xml

    gedit hdfs-site.xml
    

    <configuration>中添加

     <property><name>dfs.namenode.name.dir</name><value>file:///usr/local/hadoop/hdfs/namenode</value><description>NameNode directory for namespace and transaction logs storage.</description></property><property><name>dfs.datanode.data.dir</name><value>file:///usr/local/hadoop/hdfs/datanode</value><description>DataNode directory</description></property><property><name>dfs.replication</name><value>2</value></property>
    

    保存退出

  8. 配置mapred-site.xml

    gedit mapred-site.xml
    

    <configuration>中添加

     <property><name>mapreduce.framework.name</name><value>yarn</value></property><property><name>yarn.app.mapreduce.am.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property><name>mapreduce.map.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property><property><name>mapreduce.reduce.env</name><value>HADOOP_MAPRED_HOME=${HADOOP_HOME}</value></property>
    

    保存退出

  9. 配置yarn-site.xml

    gedit yarn-site.xml
    

    <configuration>中添加

     <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.resourcemanager.hostname</name><value>bigdata-master</value></property>
    

    保存退出

  10. 调整log level (optional)

    gedit log4j.properties
    

    在最后添加

    log4j.logger.org.apache.hadoop.util.NativeCodeLoader=ERROR
    

    保存退出

  11. 免密码登陆

    ssh-keygen -t rsa -P ‘’ -f ~/.ssh/id_rsa
    cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
    chmod 600 ~/.ssh/authorized_keys
    
  12. 初始化Namenode

    hdfs namenode -format
    
  13. 重启一下ssh

    sudo /etc/init.d/ssh restart
    
  14. 运行hadoop

    start-all.sh
    
  15. 查看进程

    jps
    

    打开浏览器,地址栏输入localhost:9870

HDFS操作

  1. 在图形界面的Utilities-Browse the file system可以看到可视化的HDFS文件目录

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-y3LvqMsR-1604631818431)(/Users/yiger/Library/Application Support/typora-user-images/截屏2020-11-05 下午2.54.01.png)]

  2. 添加一个目录

    hadoop fs -mkdir /user/用户名/wordcount/input
    
  3. 上传一个文件到该HDFS目录中(以README.txt为例)

    cd $HADOOP_HOME
    hadoop fs -copyFromLocal README.txt /user/用户名/wordcount/input
    # hadoop fs -ls -R
    

MapReduce操作 (optional)

Lab2

Hive配置

  1. 给文件夹添加最高权限

    sudo chmod 777 /usr/local/hive
    
  2. 给hadoop添加环境变量

    sudo gedit ~/.bashrc
    

    在最后添加

    export HIVE_HOME=/usr/local/hive
    export PATH=$PATH:$HIVE_HOME/bin
    

    保存退出后刷新、验证

    source ~/.bashrc
    hive --version
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V43bAb7q-1604631818434)(/Users/yiger/Desktop/截屏2020-11-05 下午3.26.41.png)]

  3. 进入hive的配置文件夹

    cd $HIVE_HOME/conf
    ls
    
  4. 重命名模板文件并复制一个用户自定义配置文件hive-site.xml

    mv hive-default.xml.template hive-default.xml
    cp hive-default.xml hive-site.xml
    
  5. 编辑hive-site.xml

    gedit hive-site.xml
    

    <configuration>中添加

      <property><name>javax.jdo.option.ConnectionURL</name><value>jdbc:mysql://localhost: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.cj.jdbc.Driver</value><description>Driver class name for a JDBC metastore</description></property><property><name>javax.jdo.option.ConnectionUserName</name><value>hive</value><description>username to use against metastore database</description></property><property><name>javax.jdo.option.ConnectionPassword</name><value>密码</value><description>password to use against metastore database</description></property>
    

    密码设置尽量复杂,如:Mysql@123

    保存后退出

  6. 安装mysql

    sudo apt-get install mysql-server
    

    进入mysql shell创建用户并授权

    sudo mysql
    

    查看当前database、用户

    show databases;
    select user from mysql.user;
    

    如果有Navicat、DataGrip等工具可以建立一个允许全网访问的用户’external_test’@’%'并在本机上尝试连接

    添加一个hive用户并授最高权限,检查用户表

    grant all privileges on *.* to 'hive'@'localhost' identified by '密码'; 
    select user from mysql.user;
    

    退出exit;

  7. 配置mysql jdbc

    在虚拟机中打开https://dev.mysql.com/downloads/connector/j/选择对应版本下载

  8. 解压到/usr/local/mysql_jdbc目录

    sudo dpkg-deb --extract 文件名 /usr/local/mysql_jdbc
    

    进入解压好的文件夹并找到jar包

    cd /usr/local/mysql_jdbc/usr/share/java
    ls
    

    把这个jar包拷贝到hive里

    cp 文件名 /usr/local/hive/lib
    
  9. 重启mysql并进入shell

    service mysql stop
    service mysql start
    sudo mysql
    

    创建数据库

    create database hive;
    show databases;
    
  10. 删除版本冲突的包

    cd /usr/local/hive/lib
    rm -rf guava-19.0.jar
    

    利用schematool初始化元数据配置 更改到mysql中

    schematool -dbType mysql -initSchema
    

    启动hive

    hive
    

Hive操作

  1. 查看数据库

    show databases;
    
  2. 创建数据库

    create database test_hive;
    

    在hdfs中查看

  3. 创建表

    create table if not exists usr(
    id bigint,
    name string,
    age int);
    
  4. 查看表

    show tables in test_hive;
    
  5. 删库

    drop database test_hive;
    

Lab3

Spark配置

  1. 给文件夹添加最高权限

    sudo chmod 777 /usr/local/spark
    
  2. 给hadoop添加环境变量

    sudo gedit ~/.bashrc
    

    在最后添加

    export SPARK_HOME=/usr/local/spark
    export PATH=$PATH:$SPARK_HOME/bin
    

    保存退出后刷新

    source ~/.bashrc
    
  3. 进入spark的配置文件夹

    cd $SPARK_HOME/conf
    ls
    

    使用三个模板文件

    mv spark-defaults.conf.template spark-defaults.conf
    mv slaves.template slaves
    mv spark-env.sh.template spark-env.sh
    
  4. 启动spark并检验

    cd /usr/local/spark/sbin
    ./start-all.sh
    jps
    

Lab4

SparkSQL配置

  1. 进入spark的配置文件夹

    cd $SPARK_HOME/conf
    

    打开spark-defaults.conf

    gedit spark-defaults.conf
    

    在最后添加

    spark.sql.warehouse.dir hdfs://localhost:9000/user/hive/warehouse
    

    保存退出

  2. 复制hadoop、hive配置文件到spark中

    cp /usr/local/hive/conf/hive-site.xml  /usr/local/spark/conf
    cp /usr/local/hadoop/etc/hadoop/core-site.xml /usr/local/spark/conf
    cp /usr/local/hadoop/etc/hadoop/hdfs-site.xml /usr/local/spark/conf
    

    复制jdbc到spark中

    cp /usr/local/hive/lib/mysql-connector-java-x.x.x.jar  /usr/local/spark/jars
    
  3. 启动spark-sql

    spark-sql
    

SparkSQL操作

  1. 查看数据库

    show databases;
    
  2. 创建数据库

    create database test_sparksql;
    
  3. 在hdfs中查看

pyspark操作

  1. 进入pyspark

    pyspark
    
  2. 统计词频

    textFile = spark.read.text("wordcount/input/README.txt")
    textFile.count()
    
  3. 使用spark.sql执行sql语句

    df = spark.sql("show databases")
    df.show()
    
  4. 建库

    spark.sql("create database test_pyspark_sql")
    
  5. 在hdfs中查看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/418323.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

搭建hexo博客并部署到github上

hexo是由Node.js驱动的一款快速、简单且功能强大的博客框架&#xff0c;支持多线程&#xff0c;数百篇文章只需几秒即可生成。支持markdown编写文章&#xff0c;可以方便的生成静态网页托管在github上。 感觉不错。 前端人员都在用github分享自己的代码。所以想着用hexo部署到g…

前端学习(2004)vue之电商管理系统电商系统之阻止页签切换

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

XML入门

1 XML入门 1.1 引入 HTML:负责网页的结构 CSS&#xff1a;负责网页的样式&#xff08;美观&#xff09; Javascript&#xff1a;负责在浏览器端与用户进行交互。 负责静态的网页制作的语言 HTML语言特点&#xff1a; 1&#xff09;由标签组成。 <title> <p>…

动态规划之力扣股票类问题

注意&#xff1a;123和124是一个思路&#xff0c;他们和后面的两题思路不一样。123 124的思路主线是k次&#xff0c;所以对某天的股票&#xff0c;第k次买入 第k-1次卖出p(这里的max操作先省略)&#xff0c;第k次卖出第k次买入后p&#xff1b; 后两题主要是天数的关系&#x…

前端学习(2005)vue之电商管理系统电商系统之获取动态参数列表

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

分布式技术一周技术动态 2016.07.10

分布式系统实践 1. 剖析Elasticsearch集群&#xff1a;存储模型和读写操作 https://mp.weixin.qq.com/s?__bizMzA5NzkxMzg1Nw&mid2653159983&idx1&sna79206bac0f14d61b47620ceed6cb0da&scene0&key77421cf58af4a6535cd92e6d57c51e9de6a6de948c6455bdd581f7…

Mysql存储结构B树与B+树与索引

首先要说明的是&#xff0c;B-树和B树是指同一个结构&#xff0c;并没有所谓的B减树&#xff0c;两种树是B-树和B树。 Mysql存储结构是一个B树。 1.存储结构与索引 众所周知&#xff0c;索引是关系型数据库中给数据库表中一列或多列的值排序后的存储结构&#xff0c;它是一种…

前端学习(2006)vue之电商管理系统电商系统之绘制商品参数的复选框

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

酒厂选址(codevs 1507)

题目描述 Description Abstinence&#xff08;戒酒&#xff09;岛的居民们酷爱一种无酒精啤酒。以前这种啤酒都是从波兰进口&#xff0c;但今年居民们想建一个自己的啤酒厂。岛上所有的城市都坐落在海边&#xff0c;并且由一条沿海岸线的环岛高速路连接。酒厂的投资者收集了关于…

spring入门笔记

记录&#xff1a; 一。程序耦合 以下体现了程序耦合&#xff1a; 1.注册驱动 2.获取链接 3.获取操作数据库的预处理对象 4.执行sql&#xff0c;得到数据集 5.遍历结果集 6.释放资源 二。IOC 工厂模式为读取配置文件&#xff0c;&#xff08;id-name&#xff09;通过文…

struts2.0标签库

用过struts1.x的人都知道&#xff0c;标签库有html、bean、logic、tiles&#xff0c;而struts2.0里的标签却没有分类&#xff0c;只用在jsp头文件加上<% taglib prefix"s" uri"/struts-tags" %>就能使用struts2.0的标签库 下面就介绍下每个标签的用法…

前端学习(2007)vue之电商管理系统电商系统之优化复选框的样式

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

MapReduce改造fp-growth算法

1. FP-Growth算法弊端 FP-Growth算法是挖掘频繁项集最常用的算法之一&#xff0c;其是基于迭代FP-Tree生成频繁项集的关联规则算法。此算法仅进行两次数据集扫描&#xff0c;递归迭代构建FP-Tree(FP条件树)&#xff0c;当FP-Tree中只有一个单分支时&#xff0c;递归迭代构建结…

《一线架构师实践指南》—— 读后总结

之前总觉得架构是一件很高大上的工作&#xff0c;跟普通的编码设计不太一样。前一段实践&#xff0c;自己也尝试做过架构的工作&#xff0c;可惜经验不足导致架构非常混乱。这里读完这本书&#xff0c;大体上对架构的工作有所了解&#xff0c;也稍微摸清了些门道。 我理解的架构…

随机排列实现 -shuffle算法

随机排列实现 -shuffle算法 洗牌算法&#xff08;shuffle&#xff09;&#xff1a;原理是&#xff0c;一个数A&#xff0c;随机选一个在这个数A之前的下标&#xff0c;将这个下标对应数字与A对换&#xff1b;之后不再考虑最后的这一个数&#xff1b; 类似于无放回的抽签问题&…

前端学习(2008)vue之电商管理系统电商系统之获取静态属性列表

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

转载_递归树求递归算法的时间复杂度

递归算法时间复杂度的计算方程式一个递归方程&#xff1a; 在引入递归树之前可以考虑一个例子&#xff1a; T(n) 2T(n/2) n2 迭代2次可以得&#xff1a; T(n) n2 2(2T(n/4) (n/2) 2) 还可以继续迭代&#xff0c;将其完全展开可得&#xff1a; T(n) n2 2((n/2) 2 2((n/2…

[转]Eclipse Java注释模板设置详解

原文链接&#xff1a;http://blog.csdn.net/ahhsxy/archive/2009/09/11/4542682.aspx 设置注释模板的入口&#xff1a; Window->Preference->Java->Code Style->Code Template 然后展开Comments节点就是所有需设置注释的元素啦。现就每一个元素逐一介绍&#xff1a…

前端学习(2011)vue之电商管理系统电商系统之初步使用upload上传组件

目录结构 router.js import Vue from vue import Router from vue-router import Login from ./components/Login.vue import Home from ./components/Home.vue import Welcome from ./components/Welcome.vue import Users from ./components/user/Users.vue import Right fr…

为什么使用Deque而不使用Stack构造栈

为什么使用Deque而不使用Stack构造栈 Class Stack<E> java.lang.Object java.util.AbstractCollection<E> java.util.AbstractList<E> java.util.Vector<E> java.util.Stack<E> 实现的所有接口 Serializable &#xff0c; Cloneable &#xff…