sudo apt update
sudo apt install ubuntu-desktop
sudo reboot
# 安装samba则安装
sudo apt-get install samba smbfs
# 把当前用户添加到sambashare组里
sudo adduser yourname sambashare
sudo useradd -m hadoop -s /bin/bash
sudo passwd hadoop
sudo adduser hadoop sudo
sudo apt-get update
sudo apt-get install vim
sudo apt-get install openssh-server
ssh localhost
exit # 退出刚才的 ssh localhost
cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost
ssh-keygen -t rsa # 会有提示,都按回车就可以
cat ./id_rsa.pub >> ./authorized_keys # 加入授权
cd /usr/lib
sudo mkdir jvm #创建/usr/lib/jvm目录用来存放JDK文件
cd ~ #进入hadoop用户的主目录
cd Downloads #注意区分大小写字母,刚才已经通过FTP软件把JDK安装包jdk-8u162-linux-x64.tar.gz上传到该目录下
sudo tar -zxvf ./jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm #把JDK文件解压到/usr/lib/jvm目录下
cd ~
vim ~/.bashrc
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_351 # 自己安装java的位置
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
source ~/.bashrc
java -version
sudo tar -zxf ~/下载/hadoop-3.3.4.tar.gz -C /usr/local # 解压到/usr/local中
cd /usr/local/
sudo mv ./hadoop-3.3.4/ ./hadoop # 将文件夹名改为hadoop
# 修改文件权限
sudo chown -R hadoop ./hadoop
sudo chmod -R 777 ./hadoop # 常用这个命令改变权限
cd /usr/local/hadoop
./bin/hadoop version
# 使用gedit更方便
gedit ./etc/hadoop/core-site.xml
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/usr/local/hadoop/tmp</value>
<description>Abase for other temporary directories.</description>
</property>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/name</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>file:/usr/local/hadoop/tmp/dfs/data</value>
</property>
</configuration>
cd /usr/local/hadoop
./bin/hdfs namenode -format
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
cd /usr/local/hadoop
./sbin/start-dfs.sh #start-dfs.sh是个完整的可执行文件,中间没有空格
./bin/hdfs dfs -mkdir -p /user/liuhao
./bin/hdfs dfs -mkdir input
./bin/hdfs dfs -put ./etc/hadoop/*.xml input
./bin/hdfs dfs -ls input
sudo apt-get update #更新软件源
sudo apt-get install mysql-server #安装mysql
service mysql start
service mysql stop
sudo netstat -tap | grep mysql
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
# 在mysqlId里加入语句
skip-grant-tables
# 重启mysql,以root身份进入mysql(输入下面的第二条语句之后直接按回车即可):
service mysql restart
mysql -u root -p
# 先将密码设置为空,刷新之后再将密码修改为准备好的密码(依次输入下列语句)
mysql> use mysql;
mysql> flush privileges;
mysql> UPDATE user SET authentication_string='' WHERE user='root';
mysql> flush privileges;
mysql> mysql> alter user 'root'@'localhost' identified with mysql_native_password by '123';
mysql> quit;
# 重启mysql,并尝试用你设置的密码登录root账户
service mysql restart
mysql -u root -p
mysql -u root -p
sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
character_set_server=utf8
service mysql restart
show variables like "char%";
mysql> show databases;
# MySql刚安装完有两个数据库:mysql和test。
# mysql库非常重要,它里面有MySQL的系统信息,我们改密码和新增用户,实际上就是用这个库中的相关表进行操作。
2、显示数据库中的表
mysql> use mysql; # 打开库,对每个库进行操作就要打开此库
Database changed
mysql> show tables;
3、显示数据表的结构:
describe 表名;
4、显示表中的记录:
select * from 表名;
# 例如:显示mysql库中user表中的纪录。所有能对MySQL用户操作的用户都在此表中。
select * from user;
5、建库:
create database 库名;
# 例如:创建一个名字位aaa的库
mysql> create database aaa;
6、建表:
use 库名;
create table 表名 (字段设定列表);
# 例如:在刚创建的aaa库中建立表person,表中有id(序号,自动增长),xm(姓名),xb(性别),csny(出身年月)四个字段
use aaa;
mysql> create table person (id int(3) auto_increment not null primary key, xm varchar(10),xb varchar(2),csny date);
# 可以用describe命令察看刚建立的表结构。
mysql> describe person;
describe-person
7、增加记录
# 例如:增加几条相关纪录。
mysql>insert into person values(null,'张三','男','1997-01-02');
mysql>insert into person values(null,'李四','女','1996-12-02');
# 注意,字段的值('张三','男','1997-01-02')是使用两个英文的单撇号包围起来,后面也是如此。
# 因为在创建表时设置了id自增,因此无需插入id字段,用null代替即可。
# 可用select命令来验证结果。
mysql> select * from person;
select-from-person
8、修改纪录
# 例如:将张三的出生年月改为1971-01-10
mysql> update person set csny='1971-01-10' where xm='张三';
9、删除纪录
# 例如:删除张三的纪录。
mysql> delete from person where xm='张三';
10、删库和删表
drop database 库名;
drop table 表名;
11、查看mysql版本
# 在mysql5.0中命令如下:
show variables like 'version';
# 或者
select version();
sudo tar -zxvf ./apache-hive-3.1.2-bin.tar.gz -C /usr/local # 解压到/usr/local中
cd /usr/local/
sudo mv apache-hive-3.1.2-bin hive # 将文件夹名改为hive
sudo chmod -R 777 hive # 修改文件权限
vim ~/.bashrc
export HIVE_HOME=/usr/local/hive
export PATH=$PATH:$HIVE_HOME/bin
export HADOOP_HOME=/usr/local/hadoop
source ~/.bashrc
cd /usr/local/hive/conf
# 将hive-default.xml.template重命名为hive-default.xml
mv hive-default.xml.template hive-default.xml
cd /usr/local/hive/conf
vim hive-site.xml
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<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>hive</value>
<description>password to use against metastore database</description>
</property>
</configuration>
<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>hive</value>
<description>password to use against metastore database</description>
</property>
# 需要改成自己数据库的用户名和密码(这里应该是设置Hive自己的密码,MySQL创建数据库根据这个连接Hive),不然hive无法连接数据库!
tar -zxvf mysql-connector-java-5.1.40.tar.gz #解压
#将mysql-connector-java-5.1.40-bin.jar拷贝到/usr/local/hive/lib目录下
cp mysql-connector-java-5.1.40/mysql-connector-java-5.1.40-bin.jar /usr/local/hive/lib
service mysql start #启动mysql服务
mysql -u root -p #登陆shell界面
#这个hive数据库与hive-site.xml中localhost:3306/hive的hive对应,用来保存hive元数据
mysql> create database hive;
#将所有数据库的所有表的所有权限赋给hive用户
# 后面的hive是配置hive-site.xml中配置的连接密码
grant all on *.* to hive@localhost identified by 'hive';
# 高版本MySQL无法按照上述方法修改用户权限,需要分步
create user 'hive'@'%' identified by '123';
grant all privileges on *.* to 'hive'@'%' with grant option;
flush privileges; #刷新mysql系统权限关系表
schematool -dbType mysql -initSchema
start-dfs.sh #启动Hadoop的HDFS
hive #启动hive
注意,我们这里已经配置了PATH,所以,不要把start-all.sh和hive命令的路径加上。如果没有配置PATH,请加上路径才能运行命令,比如,本教程Hadoop安装目录是“/usr/local/hadoop”,Hive的安装目录是“/usr/local/hive”,因此,启动hadoop和hive,也可以使用下面带路径的方式:
cd /usr/local/hadoop #进入Hadoop安装目录
./sbin/start-dfs.sh
cd /usr/local/hive
./bin/hive
sudo tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /usr/local #解压安装文件
cd /usr/local
sudo mv sqoop-1.4.6.bin__hadoop-2.0.4-alpha sqoop #修改文件名
sudo chmod -R 777 sqoop #修改文件夹属主,如果你当前登录用户名不是hadoop,请修改成你自己的用户名
cd sqoop/conf/
cat sqoop-env-template.sh >> sqoop-env.sh #将sqoop-env-template.sh复制一份并命名为sqoop-env.sh
vim sqoop-env.sh #编辑sqoop-env.sh
export HADOOP_COMMON_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=/usr/local/hadoop
export HBASE_HOME=/usr/local/hbase # 可选
export HIVE_HOME=/usr/local/hive
#export ZOOCFGDIR= #如果读者配置了ZooKeeper,也需要在此配置ZooKeeper的路径
export SQOOP_HOME=/usr/local/sqoop
export PATH=$PATH:$SBT_HOME/bin:$SQOOP_HOME/bin
export CLASSPATH=$CLASSPATH:$SQOOP_HOME/lib
# 启动MySQL
service mysql start
# 连接数据库
sqoop list-databases --connect jdbc:mysql://127.0.0.1:3306/ --username root -P
sudo tar -zxf ~/下载/spark-1.6.2-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-1.6.2-bin-without-hadoop/ ./spark
sudo chown -R hadoop:hadoop ./spark # 此处的 hadoop 为你的用户名
cd /usr/local/spark
cp ./conf/spark-env.sh.template ./conf/spark-env.sh
# 编辑spark-env.sh文件(vim ./conf/spark-env.sh),在第一行添加以下配置信息:
export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/bin/hadoop classpath)
cd /usr/local/spark
bin/run-example SparkPi
# 可以通过 grep 命令进行过滤
bin/run-example SparkPi 2>&1 | grep "Pi is"
【参考资料】
MySQL和Hive安装
Spark安装
林子雨老师参考