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中查看

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值